Семён Лобачевский
С нами с 06 марта 2013; Место в рейтинге пользователей: #357Расширение любых таблиц MODX
В очередной раз понадобилось изменить таблицу сайта, менять которую не предусмотрено.
Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.
Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.
Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
mFilter2 - фильтрация категорий по дочерним товарам
Публикую решение довольно распространённой задачи. Нужно фильтровать товары, но выводить не их, а их категории. Таким образом получается фильтр категорий, но по свойствам их дочерних товаров.
Первым делом нужно разобраться в логике работы mFilter2:
Первым делом нужно разобраться в логике работы mFilter2:
- Фильтр использует для поиска и вывода ресурсов один сниппет, указанный в &elements. В случае работы с товарами там обычно указывается msProducts.
- К этому сниппету будет 2 обращения: предварительная выборка и возврат подходящих id товаров, а затем их вывод пользователю.
- Различить эти два запроса можно по присылаемому параметру returnIds.
debugParser 1.1.0 и pdoTools 2.1.8
Работаю сейчас над одним сайтом, в котором всё делаю через шаблонизатор Fenom. Проблем нет, сплошное удобство, но из-за принципа работы шаблонизатора непонятно как отлавливать медленные сниппеты.
С обычным парсером MODX всё просто — покупаем debugParser и запускаем его на любой странице, добавляя к адресу параметр ?debug=1. Он подменяет собой системный парсер и замеряет время до и после обработки каждого тега на странице, что позволяет выявить тормозов.
А вот как быть с Fenom, который берёт код, компилирует из него php файл и выполняет за один присест, безо всяких тегов и разборов? Оказалось, можно отловить и это.
С обычным парсером MODX всё просто — покупаем debugParser и запускаем его на любой странице, добавляя к адресу параметр ?debug=1. Он подменяет собой системный парсер и замеряет время до и после обработки каждого тега на странице, что позволяет выявить тормозов.
А вот как быть с Fenom, который берёт код, компилирует из него php файл и выполняет за один присест, безо всяких тегов и разборов? Оказалось, можно отловить и это.
Меняем стоимость доставки совершённого заказа
Про хороших людей
Начну немного издалека, так что если кому-то неинтересно, можете переходить сразу ко второму абзацу.
IT-технологии мне были интересны еще с самого их зарождения на постсоветском пространстве, т.е. в 90-х. Но возможности заниматься ими с детства не было, т.к. компьютеры тогда стоили дороже, чем квартиры, да и вообще, время было тяжелое.
IT-технологии мне были интересны еще с самого их зарождения на постсоветском пространстве, т.е. в 90-х. Но возможности заниматься ими с детства не было, т.к. компьютеры тогда стоили дороже, чем квартиры, да и вообще, время было тяжелое.
[controlErrorLog] Контроль журнала ошибок
Подтверждение регистрации по sms
Доброго времени суток.
Столкнулся с задачей по подтверждению регистрации по средствам sms.
Есть ли готовое решение для данной задачи?
Подойдет ли дополнение ePochta? Оно вроде как присылает одноразовый код, но документация по нему достаточно скудная что бы разобраться в полной мере.
Столкнулся с задачей по подтверждению регистрации по средствам sms.
Есть ли готовое решение для данной задачи?
Подойдет ли дополнение ePochta? Оно вроде как присылает одноразовый код, но документация по нему достаточно скудная что бы разобраться в полной мере.
Как переименовать файлы через bash
Добрый вечер!
Подскажите, как переименовать файлы с именами 1053-84744_ SOCHI 2014, white.jpg в 1053-84744.jpg
Смог дойти только до:
Может кто знает как это сделать?
Подскажите, как переименовать файлы с именами 1053-84744_ SOCHI 2014, white.jpg в 1053-84744.jpg
Смог дойти только до:
rename -n 'y/_/{%.jpg} /' *
Но результат не тот что нужно.Может кто знает как это сделать?
[pdoTools] Версия 2.0 с шаблонизатором и кэшем
Доступна стабильная версия pdoTools 2.0, в которой я уже определился, как именно должен работать шаблонизатор Fenom.
Во-первых, добавлены системные настройки, которые позволяют обезопасить выполнение шаблонов Fenom от потенциально нехороших пользователей админки, а то и вовсе его отключить.
Во-вторых, улучшена работа с кэшем как чанков Fenom, так и pdoMenu.
Сначала настройки:
Во-первых, добавлены системные настройки, которые позволяют обезопасить выполнение шаблонов Fenom от потенциально нехороших пользователей админки, а то и вовсе его отключить.
Во-вторых, улучшена работа с кэшем как чанков Fenom, так и pdoMenu.
Сначала настройки:
- pdotools_fenom_default включает обработку синтаксиса Fenom во всех чанках сайта.
- pdotools_fenom_parser включает обработку синтаксиса Fenom на страницах сайта. Контент ресурсов, шаблоны — везде. По умолчанию отключено.
- pdotools_fenom_php включает возможность выполнения произвольных функций PHP в шаблонах через {$.php.функция()}. Опция эта очень опасная, так что тоже отключена.
- pdotools_fenom_modx — чуть менее опасная опция, но во многих случаях, пока, необходимая — работа с объектами modX и pdoTools через переменные {$modx} и {$pdoTools}. Если вы не доверяете своим менеджерам — выключите её от греха подальше, потому что через объект modX можно удалить начисто весь сайт.
- pdotools_fenom_cache — включает кэшированние чанков (только чанков, не страниц сайта) через кэшер MODX (а не как раньше). Стоит использовать только на продакшн сайтах при больших и сложных чанках.
MiniShop 2.2.0-beta1 в публичном доступе
Привет, сообщество.
Спешу поделиться новостью. Теперь новая версия MiniShop2, до недавнего времени доступная только тем, кто принимал участие в финансировании проекта, теперь доступна всем желающим в магазине дополнений!
Спешу поделиться новостью. Теперь новая версия MiniShop2, до недавнего времени доступная только тем, кто принимал участие в финансировании проекта, теперь доступна всем желающим в магазине дополнений!