Готовые решения
Информер загруженных изображений для ms2Gallery

Для чего:
Если вы часто обновляете одни и те же альбомы и хотите уведомить об этом пользователей и/или в самом ресурсе хотите задокументировать хронологию обновлений.
Redis Cache (xPDORedisCache)
Решил попробовать использовать redis кэш для modx
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
создал класс xPDORedisCache, особо не заморачивался переписал мемкеш класс, но возникает проблема, идет пустая выдача и в логе:
modExtensionPackage::loadCache() is not a valid static method.в общем логе:[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: Invalid argument supplied for foreach() in /var/www/core/model/modx/modcontext.class.php on line 101
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Warning: array_merge(): Argument #2 is not an array in /var/www/core/model/modx/modx.class.php on line 2306
[Fri Apr 08 23:00:11 2016] [error] [client 130.193.37.24] PHP Fatal error: Class 'modUser_' not found in /var/www/core/xpdo/xpdo.class.php on line 770Есть какие идеи куда копать?UPD: 2016-04-10
Решение далось легко, забыл указать сериализацию
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
Устанавливается в /core/xpdo/cache/
в настройках cache_handler = cache.xPDORedisCache
Доступные опции:
redis_server — строка с данными для подключения 'localhost:6379'
redis_auth — пароль для аутентификации
redis_db — целое число >= 0
cache_prefix — по желанию, по сути если задать в redis_db разные значения для разных сайтов, будет то, что надо
Код xpdorediscache.class.php ниже:
"register_globals" установлен в ON
«register_globals» установлен в ON в вашем конфигурационном файле php.ini. Эта настройка делает ваш сайт намного более подверженным XSS атакам. Свяжитесь со службой поддержки вашего хостинга и спросите, как устранить эту проблему.Большинство хостинг провайдеров не позволяют менять php.ini.
Идем в файл .htaccess
Запишем в него:
php_flag register_globals off
[mSocial]mSocialFB - постинг в Facebook.
Представляю Вашему вниманию модуль для постинга из замечательной и горячо любимом CMF MODX REVO во всемирно известную социальную сеть facebook*.
*Meta, которой принадлежат facebook и instagram признана экстремистской в России
Фотографии Вконтакте в MODx Revo
Сниппет, который позволяет вывести фотографии из альбома любой группы или же человека. Сниппет использует pdoTools.
pdoMenu мультикатегории minishop2
Задался очередным вопросом — как научить pdoMenu понимать мультикатегории MS2?
Поясню для чего это нужно — зачастую необходимо вывести «древовидную структуру» магазина, с присоединением превьюшек первого товара из категории. Зачастую менеджеры создают категории, в которых содержатся товары только из других родительских категорий, в этом случае pdoMenu не сможет присоединить превьюшку для категории.
Быть может кто-то уже сталкивался с подобной задачей?
Я сталкивался, около полугода назад, для этого написал вот такой сниппет (под катом):
Поясню для чего это нужно — зачастую необходимо вывести «древовидную структуру» магазина, с присоединением превьюшек первого товара из категории. Зачастую менеджеры создают категории, в которых содержатся товары только из других родительских категорий, в этом случае pdoMenu не сможет присоединить превьюшку для категории.
Быть может кто-то уже сталкивался с подобной задачей?
Я сталкивался, около полугода назад, для этого написал вот такой сниппет (под катом):
Готовый магазин на miniShop2. Есть демо-версия

Приветствую, уважаемые!
Рад сообщить, что 18 апреля доступна сборка магазина на MODX Revo и miniShop2
Разные скидки в зависимости от количества товаров
Описан алгоритм для модуля интернет-магазина minishop2. Для других модулей алгоритм похож, но объекты отличаются.
Задача: сделать автоматический пересчет стоимости товаров в зависимости от общего количества товаров, находящихся в корзине.
Решение: пройти по всему массиву корзины и изменить цену товаров.
Задача: сделать автоматический пересчет стоимости товаров в зависимости от общего количества товаров, находящихся в корзине.
$cartArray = $cart->get(); // Массив товаров в корзине
$cartProduct = $cartArray[$key]; // Один товар в корзинеРешение: пройти по всему массиву корзины и изменить цену товаров.
Названия tv-параметров для Comparison без словарей
После установки дополнения Comparison для miniShop2 оказалось, что он требует внести в словари названия для каждого tv-параметра (это упомянуто в документации). Но для сайта с уже существующими 300+ tv-параметрами это долго, и контент-менеджеру не объяснишь, что теперь, помимо создания параметра надо ещё куда-то что-то писать… В итоге, на странице сравнения вызов сниппета выглядит так
Подключаем Ecommerce в Яндекс.Метрике
Всем привет. На форуме куча полезной информации по разработке магазинов. Я же в свою очередь хочу рассказать про настройку аналитики.
Итак мы будем передавать информацию из магазина miniShop в Яндекс.Метрику для того, чтобы в полном объёме пользоваться отчётами Электронной коммерции.
Итак мы будем передавать информацию из магазина miniShop в Яндекс.Метрику для того, чтобы в полном объёме пользоваться отчётами Электронной коммерции.