Alexander V · 15 июля 2016, 16:34 А в чём собственно проблема? Просто кому-то захотелось маркет завести, привели пример. Вопросы / Зачем копировать сайт ModStore.pro ? 9 0 1
Воеводский Михаил · 07 апреля 2016, 17:47 Самое простое — поставить ресурсу галку «Контейнер». Иной вариант — в Типах файлов для HTML убрать расширение. Вопросы / Pdomenu 4 +1 1
Сергей Шлоков · 22 марта 2016, 20:06 На вскидку. ... // Я бы заменил getCollection() на newQuery(). Быстрее и меньше памяти жрет. $rows = $pdo->getCollection('modResource', $q); $output = ''; // Нужно указать название чанка $chunk= $modx->getChunk('чанк'); foreach ($rows as $row) { // В чанке плейсхолдеры должны совпадать с именами ключей массива $row $modx->setPlaceholders($row); $modx->getParser()->processElementTags('', $chunk, false, false, '[[', ']]', array(), 10); $modx->getParser()->processElementTags('', $chunk, true, true, '[[', ']]', array(), 10); $output .= $chunk; $modx->unsetPlaceholders($row); }На 30 объектах время сократится раза в 2. Вопросы / Медленный getChunk 22 -1 1
Василий Наумкин · 19 ноября 2015, 10:23 My quick example: <?php $tplWrapper = '@INLINE <ul>{{+output}}</ul>'; $tplYear = '@INLINE <li>{{+year}}<sup>({{+count}})</sup><ul>{{+resources}}</ul></li>'; $tplMonth = '@INLINE <li>{{+month}}<sup>({{+count}})</sup><ul>{{+resources}}</ul></li>'; $tpl = '@INLINE <li><a href="{{+uri}}">{{+pagetitle}}</a></li>'; $pdo = $modx->getService('pdoFetch'); $resources = $pdo->getCollection( 'modResource', array('published' => true, 'deleted' => false), array('parents' => 0, 'sortby' => 'createdon', 'sortdir' => 'DESC') ); $tree = array(); foreach ($resources as $resource) { $year = date('Y', $resource['createdon']); $month = date('m', $resource['createdon']); $tree[$year][$month][] = $resource; } $output = ''; foreach ($tree as $year => $months) { $tmp1 = ''; $count = 0; foreach ($months as $month => $resources) { $tmp2 = ''; foreach ($resources as $resource) { $tmp2 .= $pdo->getChunk($tpl, $resource); $count++; } $tmp1 .= $pdo->getChunk($tplMonth, array( 'month' => $month, 'count' => count($resources), 'resources' => $tmp2, )); } $output .= $pdo->getChunk($tplYear, array( 'year' => $year, 'count' => $count, 'resources' => $tmp1, )); } return $pdo->getChunk($tplWrapper, array('output' => $output)); Result: Вопросы / Archive 11 +7 10
Сергей Шлоков · 29 октября 2015, 19:38 Правильно Иван пишет. Нужно перехватывать через javascript. Самый просто вариант, переопределить эти функции дерева. Создаешь js файл. Ext.onReady(function () { var tree = Ext.getCmp('modx-tree-resource'); // Это стандартная функция из файла modx.tree.resource.js tree.quickUpdate = function(itm,e,cls){ MODx.Ajax.request({ url: MODx.config.connector_url ,params: { action: 'resource/get' ,id: this.cm.activeNode.attributes.pk } ,listeners: { 'success': {fn:function® { var pr = r.object; pr.class_key = cls; var w = MODx.load({ xtype: 'modx-window-quick-update-modResource' ,record: pr ,listeners: { 'success':{fn:function® { this.refreshNode(this.cm.activeNode.id); var newTitle = '<span dir="ltr">' + r.f.findField('pagetitle').getValue() + ' (' + w.record.id + ')</span>'; w.setTitle(w.title.replace(/<span.*\/span>/, newTitle)); },scope:this} ,'hide':{fn:function() {this.destroy();}} } }); w.title += ': <span dir="ltr">' + w.record.pagetitle + ' ('+ w.record.id + ')</span>'; w.setValues(r.object); w.show(e.target,function() { Ext.isSafari ? w.setPosition(null,30) : w.center(); },this); },scope:this} } }); }Подключаешь его в плагине на событие OnManagerPageBeforeRender. Тут же и быстрое создание переопределить. Добавляй сюда нужный код. Например, можно переопределить процессор на свой и там делай что надо. Все зависит от задачи. Вопросы / Есть ли события на "Быстро создать" и "Быстро обновить"? 15 +2 1
Василий Наумкин · 29 октября 2015, 09:32 pdoTools логирует ошибки Fenom на уровне 1 (LOG_LEVEL_ERROR). Я бы, на твоём месте, разобрался, почему журнал системы не работает. Вопросы / Fenom и toPlaceholder 20 0 2
Василий Наумкин · 14 октября 2015, 05:19 Весь where — это второй параметр при вызове функции. Так что указывать нужно вот так: <?php $pdo = $modx->getService('pdoFetch'); $resources = $pdo->getCollection('modResource', array( 'parent' => 9, 'published' => false ), array( 'limit' => 3, 'sortdir' => 'DESC', 'processTVs' => true, 'tvPrefix' => 'tv.' ) ); Вопросы / where в сниппете 1 +1 1
Максим Кузнецов · 04 октября 2015, 20:55 &titleField=`[[*meta_title]]` Вопросы / Вопрос по pdoTitle 14 0 1
Сергей Шлоков · 04 октября 2015, 12:48 Со времен Evolution в любом сниппете можно сделатьinclude 'file.php';В сниппете да, а в ресурсе, чанке, шаблоне? И без фильтров и других примочек MODX. Есть статические элементы, есть Gitify, есть установочные пакетыСтатические элементы, как мы знаем от Евгения Борисова, на продакшене нужно отключать. Gitify для меня как высшая математика. Для простых пользователей очень сложно. Установочные пакеты — мейби. Короче, без серьёзного профита в удобстве или скорости это просто любопытный эксперимент, не более. Мне кажется так удобнее и практичнее для разработки. Раз, создал файл. Два, в ресурсе его просто вызываешь как обычно. Все как и было, только файл не в базе, а на диске. Отредактировал, нажал F5 и все сразу обновилось. Используя статические элементы, например, нужно сначала кэш почистить. По скорости, допустим, сниппеты кэшируются, а чанки нет. За ними нужно лезть в базу. С этого нужно было начинать. Без серьёзного улучшения производительности говорить не о чем.Согласен, но у меня нет больших и сложных компонентов. А мне кажется, на маленьких данных преимуществ не будет видно. Но попробую ради интереса. П.С. Даже просто ради эксперимента, мне понравилось. Готовые решения / Загружаем сниппеты и чанки с диска 32 +1 1
Сергей Шлоков · 18 сентября 2015, 19:56 Эх, мне бы на десять лет назад слетать, я бы тоже знал это. :) Безопасность / Почему не стоит использовать target=''_blank'' 14 0 1
VueTools 1.2.0: единая тема PrimeVue для компонентов MODX 3 Над Minishop2 более работа не ведется, только проблемы с безопасностью будут браться в работу. По Minishop3 подумаем — нужно ли это в ядре или сделать отдельным дополнением.
Админка не пускает внутрь, просто перегружаясь. РЕШЕНО Сама с таким столкнулась Нужно изменить в системных параметрах (раздел: сессии и куки) anonymous_sessions Да
Сайт тормозит сервер, грузит процессор на 100% Спасибо, подразобрался, просто 100 ботов одновременно сидели на сайте. А так, минимального тарифа всегда хватало. Процессор QEMU Virtual CPU version 2.5+ 2596.990 MHz Операти...
mxHeadless &mdash; REST API для MODX 3 без лишнего 1) Кастомная валидация Из коробки есть whitelist полей и базовая проверка типов. Свою логику сверху навешиваете через Extension API: OnMxHeadlessBeforeRequest / свой middlewar...
Открытое письмо руководству MODX и команде MODX Revolution (Русская версия) Николай, по твоему комментарию — полностью согласен. Выше писал о другом. А то, что не принимаются улучшения по существующей «кодовой базе» MODx — это да. Это проблема с которо...
[Решено] Обновление MODX 3.2.2 компонент FetchIt ломает сайт PHP 8.3 Уррра! Благодарим! И посылаем лучи добра!
[Tickets] Версия 1.14.0-pl — первый релиз с апреля 2022 Иван, ещё после обновления автоматически не заполняются поля introtext с выставленным ограничением в 500 символов. Без ограничения — заполняются.
modxkit/testbench - тесты дополнений MODX 3 на живом ядре, в том числе в CI MODX 3.0.x не поддерживается. Не «руки не дошли», а измеренная причина: ядро 3.0.x не поднимается в API-режиме полноценно. modX::reloadConfig() двумя соседними строками дважды вклю...
ModxMinify - Error 500 @Илья Уткин привет! github.com/Sterc/modx-minify давай обновим версию в сторе?
Иной вариант — в Типах файлов для HTML убрать расширение.
На 30 объектах время сократится раза в 2.
Result:
Подключаешь его в плагине на событие OnManagerPageBeforeRender. Тут же и быстрое создание переопределить.
Добавляй сюда нужный код. Например, можно переопределить процессор на свой и там делай что надо. Все зависит от задачи.
Я бы, на твоём месте, разобрался, почему журнал системы не работает.
Статические элементы, как мы знаем от Евгения Борисова, на продакшене нужно отключать.
Gitify для меня как высшая математика. Для простых пользователей очень сложно. Установочные пакеты — мейби.
Мне кажется так удобнее и практичнее для разработки. Раз, создал файл. Два, в ресурсе его просто вызываешь как обычно. Все как и было, только файл не в базе, а на диске. Отредактировал, нажал F5 и все сразу обновилось. Используя статические элементы, например, нужно сначала кэш почистить.
По скорости, допустим, сниппеты кэшируются, а чанки нет. За ними нужно лезть в базу.
Согласен, но у меня нет больших и сложных компонентов. А мне кажется, на маленьких данных преимуществ не будет видно. Но попробую ради интереса.
П.С. Даже просто ради эксперимента, мне понравилось.