Владимир
С нами с 28 декабря 2012; Место в рейтинге пользователей: #83Эмулятор посредников для MODX
            Всем привет! Хочу представить вам моё новое дополнение под названием Middlewares. Это эмулятор посредников. Как вы знаете MODX построена по концепции событийно-ориентированного программирования. Т.е. взаимодействие с системой происходит по наступлению события. Но большинство современных фреймворков используют механизм посредников. Да и разработчики MODX добавили этот функционал в 3-ю версию. Но увидим ли мы её когда-нибудь, вопрос.
        
        
        
        
    
        [modHelpers] Контейнер, фильтрация данных, планшет
            Новость для разработчиков. В библиотеку добавлено несколько новых функций:
        
        
        
    - is_tablet()
 - is_desktop()
 - app()
 - filter_data()
 - null_if()
 
Использование модификаторов Fenom в PHP
            Заметка коротенькая, но может быть полезной.
Все знают, что мы можем добавлять собственные модификаторы Fenom на событие pdoToolsOnFenomInit. А как быть, если мы хотим потом использовать этот же модификатор не в чанках и шаблонах, а в своих PHP скриптах?
А очень просто:
        
        
        
    Все знают, что мы можем добавлять собственные модификаторы Fenom на событие pdoToolsOnFenomInit. А как быть, если мы хотим потом использовать этот же модификатор не в чанках и шаблонах, а в своих PHP скриптах?
А очень просто:
$pdoTools = $modx->getService('pdoTools');
$string = 'Some very very long string';
if ($truncate = $pdoTools->getFenom()->getModifier('truncate')) {
	$string = $truncate($string, 10);
}
return $string;Здесь мы получаем модификатор truncate и обрезаем строку до 10 символов, если она больше.        Страницы - поддомены
            Всем привет!
Возникла потребность показывать страницы в качестве поддоменов, причем сохраняя возможность вложенности страниц.
Не нашел готового решения, потому результатом стал плагин, который можно увидеть под катом.
Позволяет использовать обычные страницы в качестве поддоменов, примеры:
mysite.ru/test — Изначальный адрес.
test.mysite.ru — Новый адрес с поддоменом.
Также работает и с дочерними страницами, примеры:
mysite.ru/test/page.html — Изначальный адрес.
test.mysite.ru/page.html — Новый адрес с поддоменом.
        
        
        
        
    Возникла потребность показывать страницы в качестве поддоменов, причем сохраняя возможность вложенности страниц.
Не нашел готового решения, потому результатом стал плагин, который можно увидеть под катом.
Позволяет использовать обычные страницы в качестве поддоменов, примеры:
mysite.ru/test — Изначальный адрес.
test.mysite.ru — Новый адрес с поддоменом.
Также работает и с дочерними страницами, примеры:
mysite.ru/test/page.html — Изначальный адрес.
test.mysite.ru/page.html — Новый адрес с поддоменом.
Исходники webstartpage.ru
            Привет, друзья.
Я подумал и решил, что выложить всем на обозрение исходники моего последнего проекта может быть весьма полезно. Так что вот они, держите.
Сайт отличается использованием файловых элементов и сборкой скриптов\стилей через Gulp. Если вы давно хотели узнать, как разрабатывают сайты MODX из PhpStorm — вот ваш шанс!
Для начала нужно установить pdoTools и HybridAuth. Затем нужно выгрузить исходники Startpage.
Внимание, работать только на чистом сайте! На рабочих проектах эксперементировать не нужно.
        
        
        
    Я подумал и решил, что выложить всем на обозрение исходники моего последнего проекта может быть весьма полезно. Так что вот они, держите.
Сайт отличается использованием файловых элементов и сборкой скриптов\стилей через Gulp. Если вы давно хотели узнать, как разрабатывают сайты MODX из PhpStorm — вот ваш шанс!
Для начала нужно установить pdoTools и HybridAuth. Затем нужно выгрузить исходники Startpage.
Внимание, работать только на чистом сайте! На рабочих проектах эксперементировать не нужно.
Ошибка mysql sql_mode=only_full_group_by
            В msProducts при включении includeTVs ошибка.
Прошу помощи, как решить эту проблему?
        
        
        
    Прошу помощи, как решить эту проблему?
[[!msProducts?
    &includeTVs=`Любое подключенное TV`
    ...
]](ERROR @ .../www/core/components/pdotools/model/pdotools/pdofetch.class.php : 171) [pdoTools] Error 42000: Expression #69 of SELECT list is not in GROUP BY clause and contains nonaggregated column '...TVpriceeur.value' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by        Тест вложенности ресурса в контейнер [с блекджеком и плюхами]
            Проверить, есть ли контейнер в списке родителей ресурса, можно разными способами:
        
        
        
    - Можно сделать это используя карту ресурсов, которую MODX создаёт для каждого контекста после обновления кеша. Для этого необходимо воспользоваться методом $modx->getParentIds. Таким образом нагрузка и время затрачиваемое на проверку будет минимальным.
 - Не заморачиваться и сделать всё исключительно на Fenom, без модификаторов. Тут мы тоже можем воспользоваться методом $_modx->getParentIds, который Василий услужливо вынес в список доступных в Fenom.
 - Можно даже извратиться до того, что на каждую такую проверку получать объект через getObject('modResource') + получать объекты его родителей через getOne('Parent'). К слову, что будет в случае, если нам, к примеру, надо проверить 50 товаров на странице на вложенность в определённую категорию?
Ради интереса, я воспроизвёл подобную ситуацию на тестовом сайте Modhost:
- Без каких-либо проверок 50 товаров в списке категории выводятся за 0,0282 сек.
 - С подобной проверкой, за 0.1304 сек.
 - С проверкой, которую мы рассматриваем в этом посте, за 0.0307 сек.
 
А потом заказчики сходят с ума, почему их сайт так долго открывается... 
Расширение фильтрации mFilter2 для тегов Tagger
Пример добавления анимации к mFilter2
Адаптация сайта по методике RESS на MODX
            Всем привет, сегодня подумал как можно сделать адаптивный сайт на MODX при помощи RESS, для тех кто не в курсе это когда для разных устройств сервер отдаёт разные HTML и CSS, но по одному URL.
Сама эта схема завязана на проверке userAgent браузера, и да я знаю, что в modstore уже есть компонент для определения мобильных версий — MobileDetect, но он работает по принципу — вся вёрстка в одном шаблоне и при рендере страницы он ненужную разметку вырезает.
Я хочу попробовать другой вариант, но мне нужна помощь сообщества —
В общем всё дело происходит при работе с Fenom в pdoTools, в настройках системы есть параметр, задающий папку от куда нужно тянуть шаблоны для ресурсов, вот её я хочу менять на лету в зависимости от userAgent браузера.
        
        
        
        
    Сама эта схема завязана на проверке userAgent браузера, и да я знаю, что в modstore уже есть компонент для определения мобильных версий — MobileDetect, но он работает по принципу — вся вёрстка в одном шаблоне и при рендере страницы он ненужную разметку вырезает.
Я хочу попробовать другой вариант, но мне нужна помощь сообщества —
В общем всё дело происходит при работе с Fenom в pdoTools, в настройках системы есть параметр, задающий папку от куда нужно тянуть шаблоны для ресурсов, вот её я хочу менять на лету в зависимости от userAgent браузера.