Готовые решения
Переносим вопрос-ответ из файлов в Tickets
Имеем сайт, на котором система вопрос-ответ была разложена по отдельным htm/php файлам.
Для разборки данных использовался тупо парсинг файлов. До simple_html_dom.php руки не дошли.
Исходный сайт был в CP1251. Новый в UTF-8.
Процесс такой:
Получаем из файлов исходные данные,
создаём уникального юзера (без мыла, хотя можно и своё уникальное мыло заделать) для каждого тикета,
создаём тикет с придуманной датой,
апдейтим тикету intro текст,
создаём тред,
создаём коммент с придуманной датой ответа,
обновляем тред с количеством ответов 1 (по условиям задачи).
POSTUPD. А это правильно, что при постинге кода в сообщении тэг
(меньше br больше) таки превращается в перенос строки, а не экранируется?!
Перед строкой
И так два раза в тексте.
Там должно быть (меньше br больше)
а на следующей строке (меньше br дробь больше)
UPD2 Также в коде потерялся nbsp, поставил метки в двух местах, где он должен быть
Для разборки данных использовался тупо парсинг файлов. До simple_html_dom.php руки не дошли.
Исходный сайт был в CP1251. Новый в UTF-8.
Процесс такой:
Получаем из файлов исходные данные,
создаём уникального юзера (без мыла, хотя можно и своё уникальное мыло заделать) для каждого тикета,
создаём тикет с придуманной датой,
апдейтим тикету intro текст,
создаём тред,
создаём коммент с придуманной датой ответа,
обновляем тред с количеством ответов 1 (по условиям задачи).
POSTUPD. А это правильно, что при постинге кода в сообщении тэг
(меньше br больше) таки превращается в перенос строки, а не экранируется?!
Перед строкой
$strQ=str_replace('<br />',"\n",$strQ);ещё две строки испортились при постинге текста сюда.И так два раза в тексте.
Там должно быть (меньше br больше)
а на следующей строке (меньше br дробь больше)
UPD2 Также в коде потерялся nbsp, поставил метки в двух местах, где он должен быть
Уведомления с MODx в Telegram
Всем привет. Это не совсем готовое дополнение, скорее инструкция. Может быть кто нибудь разовьёт и соберёт пакет.
У меня небольшой контентный проект и надо было быть оперативно в курсе, что там журналисты публикуют.
Такое извещение можно повесить на заказ обратного звонка, заказ товара или какие нибудь другие события о которых я не подумал :)
У меня небольшой контентный проект и надо было быть оперативно в курсе, что там журналисты публикуют.
Такое извещение можно повесить на заказ обратного звонка, заказ товара или какие нибудь другие события о которых я не подумал :)
Информер загруженных изображений для 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]; // Один товар в корзинеРешение: пройти по всему массиву корзины и изменить цену товаров.