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

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

Иван Брежнев
Иван Брежнев
Получается что вот это кусок кода
// Получаем сниппет miniShop, если не можем — ошибка
if (!$snippet = $modx->getObject('modSnippet',array('name'=>'cart'))) {return 'Error: can`t found miniShop snippet';}

// Нам нужны параметры сниппета
$scriptProperties = $snippet->getProperties();
Кушает 650 кб
Василий Наумкин
Василий Наумкин
Василий Наумкин
Василий Наумкин
Я переименовываю сниппет.
Я подключаю в переименованном сниппете расширенный класс.
Тот в свою очередь запускает оригинальный класс.

При обновлении перезаписываются оригинальный сниппет и оригинальный класс, а расширенные — нет.

Оригинальный сниппет больше вообще не используется, только расширенный — после каждого обновления его можно просто удалять.
Иван Брежнев
Иван Брежнев
Глянул что в базе данных настройки сниппетов хранятся в сериализованном виде, можно их и одним запросом достать, и не будет объекта modSnippet. Но тут получается зачем нам тогда API MODX

Хочется делать сразу более менее оптимально
Василий Наумкин
Василий Наумкин
Лично я переименовываю miniShop в miniShopExt, меняю вызов класса и дописываю нужные методы, а все параметры остаются.

А ваш метод ничем не хуже, главное, чтобы сниппет miniShop никуда не делся, иначе будет fatal error.
Ну и минимум на пару операций с БД выходит больше (достать сниппет, а потом его параметры).