Готовые решения
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 в Яндекс.Метрику для того, чтобы в полном объёме пользоваться отчётами Электронной коммерции.
Скрипт спамминга в вк группы
В общем ситуация такая, завел я свой сервер RUST. И покопавшись немного в дебрях ВК понял, что есть группы до потолочка забитые постами о серверах RUST. Как честный гражданин решил немного попиарить свой сервер и покидал посты на стенку сообществ. Через время я понял что это достаточно скучное дело. И реши как всегда решить автоатизировать, накидав небольшой скриптец постинга в кучу групп вк. Сказано, сделано. А потом подумал, а почему бы не поделиться своей наработкой с другими modx разработчиками? В общем держите скрипт сниппета postingVk (в приницпе можно постить и на группу сообщества).