Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 107 комментариев

Иван Брежнев
Иван Брежнев
Делаю вот так

// Подключаем
define('MODX_API_MODE', true);
require 'index.php';

// Включаем обработку ​ошибок
$modx->getService('error','error.modError'​;);
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
$modx->setLogTa​rget(XPDO_CLI_MODE? 'ECHO': 'HTML');

if ​(!isset($modx->miniShop) || !is_object($modx->miniShop)) {
​$modx->getService('minishopext','miniShopExt', ​$modx->getOption('core_path').'components/minishop/model/​minishop/', $scriptProperties);
if (!($modx->miniShop ​instanceof miniShopExt)) return '';
}

И ​ничего не происходит (
Василий Наумкин
Василий Наумкин
Быстрее, думаю, оттого, что не запускается парсер для вывода страницы и обработки плейсхолдеров.

Последствий никаких. Но лично мне удобнее с Ajax работать при вызове страницы.
Снаружи я подключаюсь, когда надо серьезно поработать с БД (ипорт-экспорт и все такое)
Иван Брежнев
Иван Брежнев
Создал в корне файл ajax.php, добавил в него строки для подключения MODX API, добавил функции чисто для теста, те через которые раньше делал запросы AJAX'ом по вашей статье про AJAX.

И получается что так запрос выполняется быстрее.
В среднем 100-120 мс, а через сниппет вызванный в ресурсе 150-200

Интересно почему, и какие могут быть печальные последствия использования такого метода?
Настроил VDS хостиг (Слабенький 300cpu; 256 озу), к сожалению не видел как работает админка до проделанной работы, но после… просто ужас. Не ужто не хватает этого хостинга (на обычном виртуальном все на много быстрее )
revo 2.2.4 Чистая.
Про комментируйте…
Василий Наумкин
Василий Наумкин
В таких случаях я смотрю исходник и делаю как там.

Вот исходник автоапдейта системных параметров — https://github.com/modxcms/revolution/blob/develop/core/model/modx/processors/system/settings/updatefromgrid.class.php

Процессору шлется строка data, он его принимает, проверяет, преобразует из JSON в массив и выставляет переменные объекта.

Очень красиво.
Виталий Киреев
Виталий Киреев
Почти освоил эту штуку. Только не получается сделать автоапдейт из таблицы (это как в системных настройках — меняешь и сразу запоминается). В методе modObjectUpdateProcessor::initialize() оказывается пустым $this->object и все тут…
Василий Наумкин
Василий Наумкин
Не подскажу.

Это перевод, а не лично мой опыт работы. Я пока только getlist пробовал погонять по исходникам самого MODX, проблем с префиксом не было, все нормально работало.

Могу посоветовать поглядеть продвинутые компоненты, которые используют эти «классные» процессоры.
Articles например — https://github.com/splittingred/Articles/tree/develop/core/components/articles/processors
Виталий Киреев
Виталий Киреев
А куда это вставить то можно, если идет class MessageGetListProcessor extends modObjectGetListProcessor {...} а потом сразу return MessageGetListProcessor;

Нашел в ошибках, что этот процессор запрашивает таблицу, начинающуюся на modx_ хотя у меня в схеме без него. В сниппетах все прекрасно работало. Подскажите, пожалуйста, где убирается этот префикс?