Налаштування pdoTools для оптимізації MODX
pdoTools — набір сніпетів та інструментів для MODX, які замінюють стандартні Wayfinder, getResources, Breadcrumbs більш продуктивними аналогами. Використовує PDO напряму, без ORM-оверхеду xPDO.
Установка
Package Manager → pdoTools → встановити. Включає: pdoResources, pdoMenu, pdoPage, pdoCrumbs, pdoNeighbors, pdoSitemap, pdoField, pdoParser.
pdoResources замість getResources
Стандартний getResources: 30–50 запитів до БД для списку з 20 ресурсів. pdoResources: 1–3 запити.
[[pdoResources?
&parents=`5`
&resources=`-10`
&showHidden=`0`
&sortby=`menuindex`
&sortdir=`ASC`
&limit=`10`
&includeTVs=`product_price,product_image`
&prepareTVs=`1`
&processTVs=`1`
&tpl=`productCard`
&tvPrefix=``
]]
&prepareTVs=1 — завантажує TV одним JOIN-запитом замість N окремих запитів.
pdoPage для пагінації
[[!pdoPage?
&element=`pdoResources`
&parents=`5`
&limit=`12`
&tpl=`productCard`
&includeTVs=`product_price,product_image`
&pageNavVar=`page.nav`
]]
[[!+page.nav]]
pdoPage автоматично генерує навігацію за сторінками та обробляє GET-параметр page.
Оптимізація pdoMenu
[[pdoMenu?
&startId=`0`
&level=`2`
&sortby=`menuindex`
&hideSubMenus=`0`
&tplOuter=`@INLINE <ul class="nav">[[+wrapper]]</ul>`
&tpl=`@INLINE <li class="[[+classes]]"><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>`
&tplInner=`@INLINE <ul class="nav__sub">[[+wrapper]]</ul>`
&hereClass=`active`
&parentClass=`has-children`
&cache=`1`
&cacheTime=`3600`
]]
&cache=1 — кешувати меню на 1 годину. Меню одне з найтяжчих запитів, кеш критичен.
pdoParser: швидкий парсер
pdoParser замінює стандартний парсер MODX. На 20–40% швидше при великій кількості тегів на сторінці.
// Увімкнути в системних налаштуваннях:
// System → Settings → pdotools_parser_enable = 1
Кеш pdoTools
[[pdoResources?
...
&cache=`1`
&cacheTime=`1800`
&cacheKey=`catalog_[[+GET.page:default=1]]_[[+GET.sort:default=price]]`
]]
Унікальний ключ кешу включає GET-параметри фільтрації — різні фільтри = різний кеш.
Терміни
Заміна стандартних сніпетів на pdoTools з настройкою кешування — 3–5 годин для середнього сайту.







