Skip to content
  1. Компоненты
  2. pdoTools

pdoTools

pdoTools — набор сниппетов для повседневной работы и небольшая библиотека, которая делает их быстрыми.

Линия MODX 3

pdoTools 3.x (актуально: 3.1.0-pl) требует MODX Revolution 3 и PHP 8.1+. Исходники: modx-pro/pdoTools3. Для MODX 2 берите pdoTools 2.x.

Благодаря общей библиотеке у всех сниппетов pdoTools один минимальный набор возможностей:

  • Все запросы в БД работают через PDO. Объекты xPDO не создаются, только если они действительно не нужны.
  • Предварительная обработка простых плейсхолдеров в чанках. Парсер MODX разбирается только со сложными вызовами.
  • Правильная сортировка, подготовка, обработка и вывод ТВ параметров.
  • Код чанков можно указывать прямо при вызове сниппета, загружать обычным образом или из статичных файлов.
  • «Быстрые плейсхолдеры» в чанках, которые заменяют фильтры типа «isempty» и оборачивают значения в теги только если те не пусты.
  • Подробный лог работы сниппета с отметками времени (&showLog). В 3.x лог в плейсхолдере: общие параметры.

Все запросы строятся на xPDO, выборка производится через PDO для экономии ресурсов и скорости.

В состав входят:

  • pdoResources — Очень быстрая замена для getResources, совместимая по параметрам.
  • pdoMenu — Замена для Wayfinder, строит меню.
  • pdoUsers — Выборка и вывод пользователей сайта, с фильтрацией по ролям и группам.
  • pdoCrumbs — Хлебные крошки, замена BreadCrumb.
  • pdoSitemap — Быстрая генерация карты сайта, замена GoogleSiteMap.
  • pdoNeighbors — Вывод ссылок на соседние документы.
  • pdoField — Вывод любого поля документа, замена getResourceField и UltimateParent.
  • pdoPage — Постраничный вывод результатов, замена getPage.

Основные возможности

  • Любые выборки, из любых таблиц с любыми условиями и джоинами.
  • Учет времени на каждую операцию, подробный лог для выявления узких мест.
  • Полная совместимость с getPage для постраничного вывода результатов.
  • Самый быстрый процессинг чанков, быстрее только вообще без них.
  • Встроенный шаблонизатор Fenom.

Что нового в 3.1.0 (MODX 3)

Доступно в pdoTools 3.1.0+ (MODX 3)

Нужен пакет 3.1.0-pl (или новее) на MODX 3.

  • Флаги строки в чанках: isFirst, isLast, isActive (pdoMenu, pdoPage, pdoCrumbs); у меню ещё hasChildren / hasChilds, isHere, isStart, isCategory, isInner; у страниц isSkip; у крошек isHome. Уже заданные чанки tpl* по-прежнему работают.
  • pdoMenu: [[+children]] в &tplInner.
  • Fenom: приведения boolval, doubleval, floatval, intval, strval. array_merge разрешён по умолчанию.
  • Ключ pdotools_cache_path для каталога кэша (по умолчанию {core_path}cache/pdotools).
  • pdoPage: свойства вызова сниппета доступны как плейсхолдеры в шаблонах пагинации.
  • pdoFetch: доп. категории через MiniShop3 (msCategoryMember). Отключение: &disableMS3=1. miniShop2 и &disableMS2 убраны.
  • Ошибки Fenom называют чанк или ресурс и дают фрагмент исходника (ключ кэша по-прежнему хеш контента).
  • Ключи кэша результатов сниппета учитывают текущий контекст.