Владимир

Владимир

С нами с 28 декабря 2012; Место в рейтинге пользователей: #53

Эмулятор посредников для MODX

Всем привет! Хочу представить вам моё новое дополнение под названием Middlewares. Это эмулятор посредников. Как вы знаете MODX построена по концепции событийно-ориентированного программирования. Т.е. взаимодействие с системой происходит по наступлению события. Но большинство современных фреймворков используют механизм посредников. Да и разработчики MODX добавили этот функционал в 3-ю версию. Но увидим ли мы её когда-нибудь, вопрос.
Сергей Шлоков
09 сентября 2017, 14:39
modx.pro
8
2 275
+18

[modHelpers] Контейнер, фильтрация данных, планшет

Новость для разработчиков. В библиотеку добавлено несколько новых функций:
  • is_tablet()
  • is_desktop()
  • app()
  • filter_data()
  • null_if()
И ещё немного доработана функция pls() для работы с плейсхолдерами и logout().
Сергей Шлоков
22 августа 2017, 14:03
modx.pro
4
1 119
+12

Использование модификаторов Fenom в 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 символов, если она больше.
Василий Наумкин
20 августа 2017, 11:10
modx.pro
13
2 980
+10

Страницы - поддомены

Всем привет!
Возникла потребность показывать страницы в качестве поддоменов, причем сохраняя возможность вложенности страниц.
Не нашел готового решения, потому результатом стал плагин, который можно увидеть под катом.

Позволяет использовать обычные страницы в качестве поддоменов, примеры:

mysite.ru/test — Изначальный адрес.
test.mysite.ru — Новый адрес с поддоменом.

Также работает и с дочерними страницами, примеры:

mysite.ru/test/page.html — Изначальный адрес.
test.mysite.ru/page.html — Новый адрес с поддоменом.
Олег
18 июля 2017, 07:47
modx.pro
23
6 267
+10

Исходники webstartpage.ru

Привет, друзья.

Я подумал и решил, что выложить всем на обозрение исходники моего последнего проекта может быть весьма полезно. Так что вот они, держите.

Сайт отличается использованием файловых элементов и сборкой скриптов\стилей через Gulp. Если вы давно хотели узнать, как разрабатывают сайты MODX из PhpStorm — вот ваш шанс!

Для начала нужно установить pdoTools и HybridAuth. Затем нужно выгрузить исходники Startpage.
Внимание, работать только на чистом сайте! На рабочих проектах эксперементировать не нужно.
Василий Наумкин
18 мая 2017, 07:57
modx.pro
29
4 285
+28

Ошибка 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
Сергей Водолагин
02 мая 2017, 21:00
modx.pro
5
18 961
0

Тест вложенности ресурса в контейнер [с блекджеком и плюхами]

Проверить, есть ли контейнер в списке родителей ресурса, можно разными способами:

  • Можно сделать это используя карту ресурсов, которую MODX создаёт для каждого контекста после обновления кеша. Для этого необходимо воспользоваться методом $modx->getParentIds. Таким образом нагрузка и время затрачиваемое на проверку будет минимальным.

  • Не заморачиваться и сделать всё исключительно на Fenom, без модификаторов. Тут мы тоже можем воспользоваться методом $_modx->getParentIds, который Василий услужливо вынес в список доступных в Fenom.

  • Можно даже извратиться до того, что на каждую такую проверку получать объект через getObject('modResource') + получать объекты его родителей через getOne('Parent'). К слову, что будет в случае, если нам, к примеру, надо проверить 50 товаров на странице на вложенность в определённую категорию?
    Ради интереса, я воспроизвёл подобную ситуацию на тестовом сайте Modhost:
    1. Без каких-либо проверок 50 товаров в списке категории выводятся за 0,0282 сек.
    2. С подобной проверкой, за 0.1304 сек.
    3. С проверкой, которую мы рассматриваем в этом посте, за 0.0307 сек.

    А потом заказчики сходят с ума, почему их сайт так долго открывается...
Павел Гвоздь
26 апреля 2017, 05:28
modx.pro
17
4 219
+15

Расширение фильтрации mFilter2 для тегов Tagger

mFilter2 — фильтрация найденных результатов.
Tagger — система управления тегами.

[[!mFilter2?
    &filters=`
        tagger|3:tgroup,
        tagger|1:tgroup,
        tagger|2:tgroup
    `
    &aliases=`
        tagger|3==cars,
        tagger|1==colors
    `
]]

3,1,2 — группы тегов Tagger-а.
Виталий Серый
01 апреля 2017, 11:39
modx.pro
20
3 555
+8

Пример добавления анимации к mFilter2

В ответ на вопрос по анимированию работы фильтров mFilter2, выкладываю пример решения данной задачи (демо).

Максим Кузнецов
28 марта 2017, 10:30
modx.pro
13
2 706
+13

Адаптация сайта по методике RESS на MODX

Всем привет, сегодня подумал как можно сделать адаптивный сайт на MODX при помощи RESS, для тех кто не в курсе это когда для разных устройств сервер отдаёт разные HTML и CSS, но по одному URL.
Сама эта схема завязана на проверке userAgent браузера, и да я знаю, что в modstore уже есть компонент для определения мобильных версий — MobileDetect, но он работает по принципу — вся вёрстка в одном шаблоне и при рендере страницы он ненужную разметку вырезает.
Я хочу попробовать другой вариант, но мне нужна помощь сообщества —
В общем всё дело происходит при работе с Fenom в pdoTools, в настройках системы есть параметр, задающий папку от куда нужно тянуть шаблоны для ресурсов, вот её я хочу менять на лету в зависимости от userAgent браузера.
Семён Кудрявцев
10 февраля 2017, 14:50
modx.pro
14
3 158
+3