Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
MODX.pro
Пакетов
15
Закачек
138 556
Автор дополнения
Пакетов
15
Закачек
138 556
Версия 3.1.0-pl
Дата выпуска 02.09.2026
Загрузки 55 132
Просмотры 72 260
pdoTools — это набор удобных сниппетов для повседневной работы + небольшая библиотека, которая делает их очень быстрыми.

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

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

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

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


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

[3.1.0-pl] - 2026-09-02

Added

  • PHPUnit 9.6 (Unit + Integration) and GitHub Actions on PHP 8.1, 8.2, 8.3, 8.4.
  • Codecov PR comments in informational mode, matching MODX Revolution.
  • [pdoTools3#11] [pdoMenu/pdoPage/pdoCrumbs] Row placeholders: isFirst, isLast, isActive; menu also hasChildren/hasChilds, isHere, isStart, isCategory, isInner; page isSkip; crumbs isHome. Existing tpl* chunks still apply when set.
  • [#306] [pdoMenu] "children" placeholder in tplInner.
  • [#355] [Fenom] Type cast modifiers: boolval, doubleval, floatval, intval, strval.
  • [#358] [pdoTools] System setting pdotools_cache_path for cachePath.
  • [#392] [pdoPage] Snippet properties as placeholders in pagination templates.
  • GitHub Actions release workflow for 3.x transport packages.
  • [pdoTools3#21] [Fenom] Compile and runtime errors name the element or resource, with source excerpt and cache path. Cache key stays the content hash.

Changed

  • PHP requirement is 8.1+.
  • [#356] [Fenom] array_merge modifier enabled by default.
  • [Fenom] Skip json_decode() when pdotools_fenom_options is empty (PHP 8.3).
  • [pdoTools3#9] [pdoFetch] Extra categories use MiniShop3 (MiniShop3\Model\msCategoryMember).
  • [#377] [pdoPage] AJAX requests set MODX_CONNECTOR_INCLUDED.

Removed

  • [pdoTools3#9] [pdoFetch] miniShop2 class names and &disableMS2. Use &disableMS3 to skip extra categories.

Fixed

  • Release transport package excludes pdoTools and Fenom test trees.
  • Skip package vendor autoload when pdoTools classes are already loaded (PHPUnit + live MODX).
  • [#302] [pdoPage] button ajaxMode: hide more when there are no results; restore it in force mode.
  • [#305] [pdoMenu] Notices on missing class_key and content for weblinks.
  • [#349] [pdoTools] Cast config offset to int for PHP 8.
  • [#351] [pdoPage] Undefined variable $showLog.
  • [pdoTools3#16] [pdoCrumbs] [] on string &parents when showHome is enabled.
  • [#384] [pdoFetch] Warning when preparing where/having for the log message.
  • [#384] [pdoPage] Page compare too strict (int vs float from ceil).
  • [pdoTools3#24] [pdoTools] Snippet result cache keys include the current context.

[3.0.3-pl2] - 2026-06-23

Added

  • Add vendor directory.

[3.0.2-pl] - 2023-04-11

Added

  • Support for file snippets in the pdoPage class.

Security

  • Security fix for the pdoPage snippet.

[3.0.1-pl] - 2022-08-01

Added

  • Added aliases "pdoTools" and "pdoFetch" for the service container.

Fixed

  • [#318] Fixed incorrect next and prev canonical URLs.
  • [#331] Fixed bug in the Fenom parser.
  • [#347] Fixed bug when clearing cache.

[3.0.0-pl] - 2022-07-25

Changed

  • [#326] Replaced the simple class name with FQN.
  • [#332] Changed $_SERVER['DOCUMENT_ROOT'] to dirname function in the connector.php.

Fixed

  • [#322] Fixed bug in the App::makeUrl function.
  • [#327] Fixed incorrect functioning of the pdoNeighbors snippet.
  • [#334] Fixed bug with inaccessible property Fetch::config.
  • [#335] Fixed bug with prepareTVs and processTVs parameters of the pdoTools snippets.
  • [#336] Fixed fatal error in connector.php.
  • [#338] Fixed a typo in the connector ($this on $modx).
  • [#341] Fixed fatal error caused by loop.
  • [#343] Fixed checking TV before adding to the query.

[3.0.0-beta] - 2021-12-06

Added

  • Added system setting "pdotools_filter_path".

Changed

  • Requires MODX 3.
  • Requires PHP 7.2+.
  • Refactored to use PSR-4 autoload.
  • [#316] pdoTools snippet logs are stored now in the corresponding placeholder.

Removed

  • [#303] Removed anchor links in skip/empty templates.
  • Removed "nestedChunkPrefix" parameter.
  • Removed the system settings "pdoTools.class", "pdotools_class_path", "pdoFetch.class" and "pdofetch_class_path".
  • Removed the "setOption" Fenom modifier.
  • Removed the snippet parameters "tplPath" and "elementsPath".

[2.14.0-pl] - 2026-09-01

Added

  • [#306] [pdoMenu] Added the "children" placeholder to tplInner.
  • [#356] [Fenom] Enabled the array_merge modifier by default.
  • [#358] [pdoTools] cachePath can be set via the "pdotools_cache_path" option.
  • [#392] [pdoPage] Snippet properties are available as placeholders in pagination templates.

Fixed

  • [#302] [pdoPage] Fixed button ajaxMode, hiding the more button when there are no results, and restoring it in force mode.
  • [#305] [pdoMenu] Fixed notices on missing class_key and content for weblinks.
  • [#349] [pdoTools] Cast config offset to integer for PHP 8.
  • [#373] [pdoResources] Fixed toSeparatePlaceholders when the snippet returns a string.

Changed

  • [#377] [pdoPage] Mark AJAX requests as connector mode via MODX_CONNECTOR_INCLUDED.

[2.13.3-pl] - 2023-04-11

Security

  • Security fix for the pdoPage snippet.

[2.13.2-pl] - 2021-09-02

Fixed

  • Fixed some snippets.

[2.13.1-pl] - 2021-09-01

Changed

  • Installed composer packages.

[2.13.0-pl] - 2021-09-01

Added

  • Added the ability for snippets to return an array of raw data (it is necessary when using the Fenom template engine).

Changed

  • The settings "parser_class" and "parser_class_path" will be registered in the core namespace.
  • Update the ajax connector.

Deprecated

  • The "setOption" modifier is marked as deprecated.
  • The snippet parameters "tplPath" and "elementsPath" are marked as deprecated.

Security

  • Some security fixes.

[2.12.10-pl]

Fixed

  • [#308] [pdoPage] Fixed the type of snippet property "field"

[2.12.9-pl]

Changed

  • [Fenom] Update to version 2.12.0

[2.12.8-pl]

Security

  • [pdoPage] Fix reflected XSS in generated meta links

[2.12.7-pl]

Changed

  • Make pdoTools canonical url work with Babel #304

[2.12.6-pl]

Changed

  • [pdoPage] Reverted back #287

[2.12.5-pl]

Added

  • [Fenom] Added caching dynamic properties to prevent speed degradation.

[2.12.4-pl]

Changed

  • [#290] Improved running snippet via @FILE binding.
  • [#297] Make cross context weblink url possible.
  • [#274] [Fenom] User, resource and context properties are now dynamic.
  • [#294] [#298] Improved pdopage.js and updated minified js files

Removed

  • [#287] [pdoPage] Remove prev & next meta tags

Fixed

  • [#296] Fix adding quotes to numeric values.

[2.12.3-pl]

Fixed

  • Fixed E_NOTICE introduced in #285.

[2.12.2-pl]

Changed

  • Updated chunks for Bootstrap 4.

[2.12.1-pl]

Added

  • [#275] [Fenom] Added "reset" and "end" modifiers.

Fixed

  • [pdoMenu] Reverted back #283 and fixed docs for &tplCategoryFolder.
  • [#284] [Fenom] Fixed properties of $_modx->context variable.

[2.12.0-pl]

Added

  • [#277] [pdoCrumbs] Ability to specify &customParents.

Changed

  • [pdoPage] Show internal log on &showLog=`1`.

Fixed

  • [#278] [pdoPage] Fixed caching.
  • [#283] [pdoMenu] Fixed use of &tplCategoryFolder according to docs.
  • [#281] [pdoTools] Fixed load of models from case sensitive paths.
  • [#265] [pdoFetch] Fixed return of "Array" on SQL errors.

Security

  • [Fenom] More security fixes from Sergey Shlokov.

[2.11.3-pl]

Added

  • Added French lexicon entries.

[2.11.2-pl]

Fixed

  • Fix detection of element names starting with a number.

[2.11.1-pl]

Changed

  • Faster processing of static files.

[2.11.0-pl]

Added

  • [pdoFetch] Added "setTotal" option to enable calculating all rows ("SQL_CALC_FOUND_ROWS"), which will also result in the "totalVar" placeholder is being set.

Changed

  • [pdoFetch] Option "setTotal" disabled by default.
  • [pdoPage] Forces "setTotal" to provide pagination.

[2.10.6-pl]

Changed

  • Improved German lexicons.

[2.10.5-pl]

Added

  • [pdoTools] Ability to return array from "prepareSnippet" for more performance.

Fixed

  • [FenomX] Fixed method "getStore".

[2.10.4-pl]

Changed

  • [Fenom] Do not output raw tags if there was a compile error.

Fixed

  • [#266] [pdoMenu] Fixed the setting of "here" and "self" classes.
  • [#261] [Fenom] Fixed unexpected behavior of the fenom tag "ignore".

[2.10.3-pl]

Added

  • [pdoFetch] Ability to use arrays in "&sortby".

Changed

  • Improved compatibility with PHP 7.2

[2.10.2-pl]

Changed

  • [Fenom] Improved processing of caching snippets inside uncached.

[2.10.1-pl]

Changed

  • [pdoPage] "&setMeta" now works when "&cache=`1`".
  • [Fenom] Improved regular expression to detect Fenom syntax.

Fixed

  • [#256] [Fenom] Fixed bug with caching of scripts and styles.

[2.10.0-pl]

Added

  • [#245] [pdoMenu] Ability to use conditional tpls instead of regular "tpl".

Changed

  • [#258] [pdoPage] Canonical urls always must be "full".
  • [#121] [pdoMenu] Improved work of specified chunks with weblinks.

Fixed

  • [#259] [pdoFetch] Fixed error when passed pure SQL into "having" parameter.

[2.9.3-pl]

Added

  • [#255] [Fenom] New system setting "pdotools_fenom_save_on_errors" to save code on compilation errors in the cache directory for later debugging.

[2.9.2-pl]

Changed

  • [pdoParser] Proper traversal through arrays fields of resources in fast tags.

[2.9.1-pl]

Changed

  • [Fenom] Updated to version 2.11.8.

[2.9.0-pl]

Changed

  • [pdoPage] Improved "&pageLinkScheme" logic.
  • [#249] A little improvement for resource modifier.
  • [#251] [pdoFetch] More compatibility with PHP 7.1.
  • [#254] [Fenom] Options of json modifiers must check version of PHP to proper work.

Fixed

  • [#253] [pdoPage] Fixing a missing pagination in Ajax mode.

[2.8.6-pl]

Added

  • [pdoArchive] Ability to specify fields with regular dates in the "&dateField" parameter.
  • [Fenom] Added all options to json modifiers.

[2.8.5-pl]

Fixed

  • [#248] [pdoPage] Fixed E_WARNING with array values in GET parameters.

[2.8.4-pl]

Added

  • Ability to use file elements in core path outside base path.

Fixed

  • Fixed bug with the caching of elements.

[2.8.3-pl]

Added

  • [pdoTools] Added passing of "scriptProperties" values into a "&prepareSnippet".

Changed

  • [pdoPage] Snippet will register "canonical" link if "&setMeta" is enabled.

Fixed

  • [Fenom] Fixed rare bug with the caching of scripts and styles that was registered via Fenom.
  • [pdoPage] Fixed the "?page=1" in the url when ajaxMode is enabled.
  • [pdoPage] Fix processing of request with rawurldecode on some servers.

[2.8.2-pl]

Added

  • [pdoPage] Added the ability to run files as &element.

Changed

  • [pdoTools] The method runSnippet will return boolean false if snippet was not found.

Fixed

  • [pdoMenu] Fixed the checking of permissions for containers.
  • [Fenom] Fixed the possible bugs of caching of scripts and styles.

[2.8.1-pl]

Added

  • Added fallback class for the enable modParser.

Fixed

  • [#244] Fixed possible duplicate of a container in the jquery.pdopage.js.

[2.8.0-pl]

Added

  • Ability to use an arrays in the parameters of the snippets.

Changed

  • Replaced modX::toJSON and modX::fromJSON to native php functions.

[2.7.5-pl]

Changed

  • Fenom is now managed via composer.
  • [Fenom] Modifier "resource" no longer checks fields of resources in their schema.
  • [Fenom] Modifier "strrev" now can work with arrays.
  • [Fenom] Improved modifier "ismember".

[2.7.4-pl]

Added

  • [#242] Added jquery.pdopage.js plugin and minified versions.

Changed

  • [#241] [Fenom] Improved the retrieving of TVs for a current resource.

Security

  • [pdoFetch] Restored the checking of possible SQL injections in the &sortby with xPDO 2.5.1.

[2.7.3-pl]

Changed

  • Improved compatibility with MODX 2.5.2.

[2.7.2-pl]

Security

  • [pdoFetch] Some security improvements.

[2.7.1-pl]

Fixed

  • Fixed bug with registering scripts in styles via Fenom introduced in version 2.7.0.

Security

  • Some security improvements in the connector.php.

[2.7.0-pl]

Added

  • [Fenom] Added rand() and number_format() to an allowed PHP functions.
  • [Fenom] New output filter "number" (or "number_format").

Changed

  • [Fenom] Updated to the version 2.11.4.

Fixed

  • [Fenom] Fixed resource cache for scripts and styles registered by Fenom.

[2.6.5-pl]

Fixed

  • Fixed undeclared variable (PHP 7.1)

[2.6.4-pl]

Added

  • Added escaping of a MODX tags that being processed in the &prepareSnippet.

Changed

  • [#239] Improved work of the &decodeJSON option.

[2.6.3-pl]

Fixed

  • Fixed possible E_NOTICE on line 305 pdofetch.class.php.
  • Fixed possible E_NOTICE when "snippet" and "chunk" Fenom modifiers was called.

[2.6.2-pl]

Fixed

  • Fixed possible E_NOTICE on line 1317 pdotools.class.php.

[2.6.1-pl]

Changed

  • Improved compatibility with PHP 5.3.

[2.6.0-pl]

Added

  • [Fenom] The ability to extend Fenom via system event "pdoToolsOnFenomInit".

[2.5.6-pl]

Added

  • [pdoFetch] Ability to join TVs not only to the query main class.

[2.5.5-pl]

Fixed

  • Fixed parse of INLINE chunks with "@" symbols.

[2.5.4-pl]

Added

  • [#224] Added microMODX::cleanAlias().
  • [#226] [Fenom] Added "declension" modifier.

[2.5.3-pl]

Fixed

  • [#221] Fixed typo in month name.
  • [Fenom] Fixed path to compile dir.

[2.5.2-pl]

Changed

  • [#220] Cache code of snippet with respect to property set.

[2.5.1-pl]

Fixed

  • Fixed cache of snippets in pdoTools::runSnippet().

[2.5.0-pl]

Added

  • Improved support of debugParser.
  • [Fenom] New modifiers: "snippet" and "chunk".
  • New method pdoTools::runSnippet().

Changed

  • [#209] Improved loading of the models.
  • [Fenom] New elements provider: "file".

[2.4.0-pl]

Added

  • Added snippet pdoArchive.
  • [#193] [pdoNeighbors] Added parameter &wrapIfEmpty.
  • [#203] [Fenom] Added more PCRE modifiers.

Changed

  • [pdoResources] Faster processing of additional snippet parameters to placeholders.

Fixed

  • [#123] [pdoMenu] Fixed bug with &displayStart and unpublished root nodes.
  • [#207] [pdoMenu] Fixed &webLinkClass option.

[2.3.5-pl]

Added

  • [pdoFetch] Added escaping of columns names in query.

[2.3.4-pl]

Fixed

  • [#200] [pdoFetch] Fixed &sortbyTV with dot in name.

[2.3.3-pl]

Added

  • Added system plugin for "autoload" of main classes with respect to their paths in system settings.

[2.3.2-pl]

Added

  • [#196] [pdoPage] Added workaround to support ClientConfig tags in ajax mode.
  • [Fenom] Added general MODX output filters as Fenom modifiers.

Changed

  • [Fenom] Implemented autoload of modifiers from snippets.

Removed

  • [Fenom] Removed system setting "pdotools_fenom_modifiers".

[2.3.1-pl]

Changed

  • [pdoSitemap] Lightning fast work chunks processing with &scheme=`uri`.
  • [Fenom] Improved check of syntax before processing.

[2.3.0-pl]

Added

  • [Fenom] Added default modifiers: "url" and "lexicon".

Changed

  • PSR-2.
  • [pdoCrumbs] Changed default chunks to ul -> li.
  • [#190] [pdoSitemap] Changed date format to ISO 8601.

Removed

  • Removed shortcuts from system core.

[2.2.8-pl]

Changed

  • [Fenom] Use modResource::getContent() method to get content of current resource in {$_modx->resource}.

[2.2.7-pl]

Added

  • [pdoPage] Ability to get access to a javascript configs from 3rd party scripts.

[2.2.6-pl]

Changed

  • [#184] [Fenom] Updated to version 2.8.2.

[2.2.5-pl]

Added

  • [#182] [pdoTitle] Added passing a parameters into nested pdoCrumbs.
  • [pdoSitemap] Added processing of MODX tags if needed.
  • Added method pdoTools::makeUrl().
  • [#181] New url schema type - "uri".

[2.2.4-pl]

Fixed

  • [Fenom] Fixed speed issues when MODX snippets are run as Fenom modifiers.
  • [pdoUsers] Fixed overwrite modUser.id by modUserProfile.id.

[2.2.3-pl]

Fixed

  • [pdoPage] Fixed processing of uncached conditions in chunks when ajax mode is enabled.

[2.2.2-pl]

Added

  • [pdoPage] Added new parameter &pageLinkScheme.

[2.2.1-pl]

Added

  • [#155] [pdoPage] Added new parameter &ajaxHistory.
  • [pdoPage] Added connector for requests in ajax mode.

[2.2.0-pl]

Added

  • [#175] [pdoFetch] Ability to specify sequence of table joins.
  • [#174] [Fenom] Ability to add Fenom modifiers into pdoParser.

[2.1.21-pl]

Added

  • [#175] [pdoFetch] Ability to specify sequence of table joins.

Fixed

  • [#176] [pdoUsers] Fixed &toPlaceholders with &returnIds.

[2.1.20-pl]

Fixed

  • [pdoSitemap] Fixed default &cacheKey.

[2.1.19-pl]

Security

  • [Fenom] Disabled $options in cacheManager::set() due to security reasons.

[2.1.18-pl]

Changed

  • [Fenom] Improved method {$_modx->runProcessor()}.

Fixed

  • [Fenom] Fixed ability to access to the modX object from {$_modx} variable.

[2.1.17-pl]

Added

  • [Fenom] Added {$_modx->getResource($id, $options)}.
  • [Fenom] Added {$_modx->getResources($where, $options)}.
  • [Fenom] Improved support of debugParser.

[2.1.16-pl]

Added

  • [Fenom] Added {$_modx->isMember($groups, $matchAll)}.
  • [Fenom] Added {$_modx->getPlaceholders()}.

[2.1.15-pl]

Added

  • [pdoPage] Added parameter &strictMode.

[2.1.14-pl]

Added

  • [pdoSitemap] Added options for cache snippets results.

Changed

  • [pdoSitemap] Cache enabled by default.

[2.1.13-pl]

Fixed

  • [#163] Fixed ignoring of &idx in pdoResources and pdoUsers.

[2.1.12-pl]

Fixed

  • [pdoPage] [#161] Fixed support of arrays in hash when &ajaxMode is enabled.

[2.1.11-pl]

Added

  • [pdoPage] Support of arrays in hash when &ajaxMode is enabled.

Fixed

  • [#150] [Fenom] Fixed processing of TVs values in a {$_modx->resource}.
  • [#147] [pdoSitemap] Fixed possible duplicates in sitemap.

[2.1.10-pl]

Changed

  • [#145] [pdoPage] Rolled back #81 due to issues with complicate forms.

Fixed

  • [#157] [Fenom] Fixed pre-processing of Fenom tags in extending templates and chunks.

[2.1.9-pl]

Changed

  • [#144] [pdoParser] Leave unprocessed FastField tags so other components could parse them.
  • [pdoFetch] Updated syntax for "SET SQL_BIG_SELECTS = 1".

[2.1.8-pl]

Added

  • [Fenom] Ability to use id of chunks and templates in {include} and {extends}.
  • [Fenom] Added support of debugParser.
  • [Fenom] Added {$_modx->getChildIds()} and {$_modx->getParentIds()}.

[2.1.7-pl]

Fixed

  • Fixed work with integer values from system setting "link_tag_scheme".

[2.1.6-pl]

Changed

  • [Fenom] Updated to version 2.8.0.
  • [Fenom] Improved check of syntax to process content of chunks.

Fixed

  • [pdoParser] Fixed E_WARNING on line 50 introduced in previous version.

[2.1.5-pl]

Fixed

  • [Fenom] Fixed register of scripts and styles by cached snippets.

[2.1.4-pl]

Added

  • [Fenom] Added new method {$_modx->getInfo()}

Fixed

  • [Fenom] Fixed TVs in {$_modx->resource}

[2.1.3-pl]

Changed

  • Improved work of system setting "pdotools_fenom_php".

[2.1.2-pl]

Changed

  • [Fenom] Replaced {$_modx->placeholders} to functions.

[2.1.1-pl]

Added

  • [Fenom] Added cache for snippets called through {$_modx->runSnippet}.
  • [pdoTools] Added processing of property sets for chunks.

Changed

  • pdoParser enabled by default.
  • [pdoResources] Set additionalPlaceholders in &tplWrapper

Fixed

  • [Fenom] Fixed return content in {$_modx->getChunk}.

[2.1.0-pl]

Added

  • [Fenom] Added safe system variable {$_modx}.
  • [Fenom] Added MODX template provider for chunks and templates.

Changed

  • [Fenom] Updated Fenom to version 2.7.1.

[2.0.5-pl]

Added

  • [#122] Ability to use 3rd party pdoPage and pdoMenu classes.

Fixed

  • [#132] Fixed possible E_WARNING on empty chunks.
  • [#118] [pdoPage] Fixed parameter &offset.
  • [pdoPage] Fixed default CSS classes in "empty" chunks.

[2.0.4-pl]

Fixed

  • Fixed processing of "pdotools_fenom_cache" system setting.

[2.0.3-pl]

Fixed

  • [#125] [pdoTitle] Fixed parameter &id.

[2.0.2-pl]

Changed

  • Improved processing of @FILE binding.

[2.0.1-pl]

Fixed

  • Fixed possible E_WARNING on line 319 and 349 of pdoTools class.

Security

  • Disabled system option "pdotools_fenom_modx" by default due to security issues.

[2.0.0-pl]

Added

  • New system settings to control the Fenom.
  • Ability to enable caching of Fenom compiled chunks.

Changed

  • Improved handling of parameter "cache_key".
  • [pdoMenu] Improved work when &cache is enabled.

[2.0.0-rc2]

Changed

  • Compiled Fenom templates cached to RAM instead of HDD.

Removed

  • Removed plugin pdoTools.

[2.0.0-rc1]

Added

  • Added Fenom template engine.

Changed

  • Fenom enabled by default.
  • pdoParser uses Fenom to process pages.

[1.11.2-pl]

Changed

  • [#116] [pdoTitle] Disabled &register_js by default.

[1.11.1-pl]

Fixed

  • [pdoSitemap] Fixed default url scheme after last update.

[1.11.0-pl1]

Added

  • [pdoTitle] Added new snippet.
  • [pdoPage] Added support of snippet pdoTitle when &ajaxMode is enabled.
  • [pdoPage] Added triggering javascript event "pdopage_load".

Changed

  • [pdoPage] Prevent overwriting of scripts and styles of nested &element by default parameters.

[1.10.2-pl1]

Added

  • [#111] [pdoPage] Added ability to set "prev" & "next" meta tags.
  • [#107] [pdoNeighbors] Added ability to specify &parents for work.

Changed

  • [#112] Parameter &scheme was set to system default in all snippets.
  • [#104] [pdoMenu] Snippet now using "pagetitle" for link titles if "titleOfLinks" is empty.

Fixed

  • [#106] [pdoMenu] Fixed "hereClass" and "selfClass" enabled &useWeblinkUrl parameter.

[1.10.1-pl]

Added

  • [pdoFetch] Added new parameter &sortbyTVType.

Changed

  • [pdoFetch] If &sortdirTV is not set it will be equal to &sortdir.

Fixed

  • [#108] [pdoFetch] Fixed E_ERROR when using &sortbyTV.

[1.10.0-pl]

Added

  • [pdoFetch] Ability to specify functions in select fields.
  • [pdoTools] Ability to use compound quick placeholders.

Changed

  • [pdoPage] Improved default javascript.

Fixed

  • [pdoMenu] Returned and fixed parameter &showDeleted.
  • [pdoPage] Fixed overwriting &frontend_js and &frontend_css parameters when &ajax is disabled.

[1.10.0-beta4]

Added

  • [pdoTools] Added tplOperator "contains".

Changed

  • [pdoPage] Ajax pagination out from the box.
  • [pdoFetch] Improved log of getCollection.

[1.9.7-pl]

Added

  • [#85] [pdoFetch] Added function getChildIds().

Changed

  • [pdoFetch] Disabled "total" placeholder for &return=`ids`.

Fixed

  • [#99] [pdoFetch] Fixed returning of primary key in "ids" mode.
  • [#97] [pdoTools] Fixed default tplPath for @FILE chunks.

[1.9.6-pl2]

Changed

  • [pdoMenu] Improved parameter &countChildren.

Removed

  • [#100] [pdoMenu] Removed parameter &showDeleted because it not working.

Fixed

  • [pdoFetch] Fixed exclusion of field "id" in custom classes.

[1.9.6-rc]

Added

  • Added execution of SQL_BIG_SELECTS = 1 before query.
  • [pdoPage] Added parameter &ajax for supporting of ajax requests.

[1.9.5-pl1]

Changed

  • Rolled back #72 due to issues in pdoMenu.

[1.9.5-pl]

Added

  • Added ability to return JSON or serialized string from pdoFetch::run().
  • [#83] [pdoMenu] Added level placeholder to outer templates.
  • [#82] [pdoFetch] Added support for complex &where parameter.
  • [#57] [pdoMenu] Added parameter &countChildren.

Changed

  • [#81] [pdoPage] Improved handling of arrays in url.
  • [#57] [pdoMenu] Improved placeholder [[+children]].

Fixed

  • [#77] Fixed making of url for modWebLink to another context.
  • [#72] [pdoTools] Fixed order for children of excluded parents in buildTree.
  • [#60] [pdoMenu] Fixed parameter &tplCategoryFolder.

[1.9.4-pl1]

Added

  • [#78] [pdoNeighbors] Added parameter &loop=`1` for looping links.

Fixed

  • [pdoSitemap] Fixed possible E_FATAL php-apc.

[1.9.3-pl1]

Added

  • [pdoTools] Ability to specify value for empty quick placeholders.
  • [pdoTools] Ability to use INLINE snippets and filters.

Changed

  • [pdoFetch] Improved loading of 3rd party models.

Fixed

  • [pdoPage] Fixed E_WARNING when &limit=`0`.

[1.9.2-pl2]

Added

  • [pdoField] Added parameter "ultimate" to emulate logic of UltimateParent.

Changed

  • [#53] Improved loading of classes.
  • [pdoField] Rolled back to original logic of "top" and "topLevel" parameters due to issues.

Fixed

  • [#56] [pdoParser] Fixed wrong links processing.

[1.9.1-pl6]

Changed

  • [pdoFetch] Adding alias of main class of query to "sortby" if no alias exists.
  • [pdoFetch] Improved selecting of all fields of class with specified alias.
  • [pdoField] Parameter "topLevel" works exactly as in UltimateParent.
  • [pdoField] Parameter "top" without "topLevel" returns parent on "top" level.

[1.9.1-pl]

Added

  • [pdoFetch] Ability to work with objects, that has multiple primary keys.
  • [pdoPage] New parameter &cacheAnonymous.
  • [pdoMenu] New parameter &cacheAnonymous.
  • Added aliases for sort query in order of specified &resources: "ids" or "resources".

Changed

  • [#44] [pdoMenu] Improved handling of Wayfinder parameters "includeDocs" and "excludeDocs".
  • [#37] [pdoField] get the default, only if the field was empty.
  • [#32] Improved cache methods.
  • [#26] Replaced FIND_IN_SET() to FIELD().
  • Improved pdoFetch::getCollection().
  • Renamed pdoFetch::getObject() to getArray(). Now it uses getCollection for retrieve results.
  • pdoTools::setCache() now returns cacheKey.
  • pdoFetch::getObject() is now alias of pdoFetch::getArray().

Removed

  • Removed unnecessary query in pdoFetch::getCollection().

Fixed

  • [#47] [pdoMenu] Fixed processing &tplOuter when output is empty.
  • [#46] [pdoParser] Fixed processing of TVs with dots in name.
  • [#34] Fixed processing of "modSymLink" documents.

[1.9.0-pl2]

Added

  • [#27] Ability to specify custom pdoFetch and pdoTools classes through FQN system settings.

Changed

  • [pdoMenu] Chunks of parents and categories are now depends on the descendants and ignores parameter isfolder.
  • [pdoNeighbors] Speed improvements.
  • [pdoParser] Handles TVs in resource tags.
  • [pdoParser] Handles output filters.
  • [pdoFetch] Improved method "addTVFilters", that used by "tvFilters" parameter in pdoResources.
  • [pdoSitemap] Pass the whole row so we can use more columns.

[1.9.0-rc]

Added

  • Added pdoParser with FastField tags.
  • [#23] [pdoResources] Ability to return ids to placeholder.

Changed

  • Improved method pdoTools::getChunk().
  • Improved method pdoTools::parseChunk().
  • Improved method pdoTools::fastProcess().
  • Improved method pdoTools::makePlaceholders().
  • Accelerated snippet pdoNeighbors.
  • GetObject and getCollection() runs in separate instance.
  • [pdoPage] Changed default value of parameter "totalVar" due to issues.

Fixed

  • Fixed bug in pdoUsers when usersgroups was specified by names.
  • [#24] Fixed prepareTVs and empty tvPrefix.
  • Fixed warning when getObject returns false.
  • Fixed placeholders prefix in recursive makePlaceholders.

[1.8.9-pl4]

Added

  • Added german lexicon.
  • [#20] Ability to specify not JSON string in &where=``.
  • [pdoPage] Added parameter "pageCountVar" for specifying name of variable with number of pages.
  • [pdoField] Ability to specify class for fetching field.
  • Added preparing and processing TVs in getObject and getCollection methods.

Changed

  • [pdoPage] Support Bootstrap3.
  • Improved joining of tables in pdoFetch.
  • Improved load of 3rd party models.

[1.8.8-pl2]

Changed

  • Rewrote cache of snippets "pdoMenu" and "pdoPage".
  • New methods pdoTools::getCache() and pdoTools::setCache().

Fixed

  • [pdoMenu] Fixed parameter "tplParentRowActive".
  • [#18] Fixed "idx" in pdoTools::defineChunk().

[1.8.7-pl]

Added

  • Added boolean parameter "decodeJSON" to specify whether or not decode JSON in results rows.

Removed

  • Removed default "sortby" and "sortdir" from class pdoFetch for better work of getCollection() method.

[1.8.6-pl2]

Added

  • [#17] [pdoMenu] Added placeholder [[+wf.menutitle]].
  • [pdoResources] Added parameter "&useWeblink" and placeholder "[[+link]]". It is disabled by default.

Changed

  • [#16] [pdoMenu] Disabled status verification of specified parents.
  • [#13] [pdoMenu] Improved work with root of multiple contexts.

Fixed

  • Fixed possibly E_NOTICE when site has no extension packages installed.
  • [pdoMenu] Fixed bug when specified parent has only the one child.

[1.8.5-pl]

Added

  • [pdoBreadcrumbs] Improved processing of classes "modSymlink" and "modWeblink". Added parameter "&useWeblink".
  • [pdoNeighbors] Added parameter "&useWeblink" and placeholder "[[+link]]".
  • [pdoSitemap] Added parameter "&useWeblink" and proper processing of classes "modSymlink" and "modWeblink".

Changed

  • [#15] [pdoPage] Improved generation of links to pages.
  • [pdoMenu] Improved processing of classes "modSymlink" and "modWeblink".

[1.8.4-pl]

Added

  • [pdoCrumbs] Added ability to specify the crumbs root (defaulting to site_start)
  • [pdoCrumbs] Added ability to specify class_key (ie. to generate crumbs only for derivative classes)

Changed

  • More accuracy when try to decode json in fetch results.

[1.8.3-pl3]

Added

  • [pdoMenu] Added lexicon entries for parameters.
  • [#12] Added parameter "toPlaceholder".

Changed

  • Improved preparation of template variables.
  • Improved transfer of additional parameters from snippet to results.
  • [pdoMenu] Allow to specify "limit" and "offset".
  • Increased accuracy of timings log.

[1.8.1-pl2]

Added

  • Added snippet pdoMenu.
  • Added support for tags [^qt^] and [^q^].

Changed

  • Accelerated method pdoTools::getChunk().

[1.8.0-pl]

Added

  • [#10] [pdoPage] Added placeholder "page".
  • [#9] [pdoPage] Added placeholder "pageCount".
  • [#8] Improved support of big numbers when sorting by TVs.

Fixed

  • Fixed work of pdoPage when it called multiple times on page.
  • Fixed mistype in pdoFetch::getCollection().

[1.8.0-rc5]

Added

  • Added processing of JSON fields. For example, you can use [[+extended.keyname]] in chunks of pdoUsers.
  • Added snippet pdoPage.

Removed

  • pdoTools was removed from system extension packages, but you can still use "$modx->getService('pdoFetch');".

Fixed

  • Fixed getting chunk without any parameters.

[1.8.0-beta1]

Added

  • The logic of build the conditions of the query moved into new method pdoFetch::additionalConditions().

Changed

  • Improved handling of "default_text" parameter in TVs.
  • Improved method pdoFetch::addSelects().
  • Improved method pdoFetch::addSort().
  • Improved some snippets in accordance to new abilities of pdoFetch: pdoResources, pdoNeighbors and pdoSitemap.

Fixed

  • Fixed and improved method pdoTools::buildTree().

[1.7.4-pl]

Fixed

  • [#7] [pdoSitemap] Fixed hidden parameters "&sortBy" and "&sortDir" that used for compatibility with GoogleSiteMap.

[1.7.3-pl1]

Changed

  • [#6] pdoCrumbs and pdoNeighbors are now uses "menutitle" by default. If it is empty, will be used "pagetitle".

Fixed

  • [pdoCrumbs] Fixed possible E_NOTICE on line 157.
  • [pdoCrumbs] Fixed generation of link to site start in relative mode.

[1.7.2-pl1]

Added

  • [pdoField] Added new parameters: "default=``" and "&field=``".
  • Added 2 new methods: pdoFetch::getObject() and pdoFetch::getCollection().
  • Ability to send arrays into common config parameters. JSON is still supported.

Changed

  • [pdoField] Improved logic of "&top=``" and "&topLevel=``".
  • Improved select of default values in TVs.

[1.7.1-pl]

Fixed

  • [pdoCrumbs] Fixed work with "modSymLink" and "modWebLink" resources.

[1.7.0-pl1]

Added

  • New snippet pdoCrumbs.
  • New snippet pdoField.
  • New snippet pdoSitemap.
  • New snippet pdoNeighbors.
  • Ability to specify snippet for preparation of fetched rows by parameter "&prepareSnippet=``".
  • Added method pdoTools::checkPermissions() for checking user privileges to view the results.
  • Added @TEMPLATE binding. You can use name or id of any template. If empty - will use template of each row.

Changed

  • [pdoResources] Improved parameter "&context".
  • [pdoResources] Script properties are now passed to chunks. You can send any placeholders to it.

[1.6.0-pl1]

Fixed

  • Fixed compatibility issues in PHP < 5.3.

[1.6.0-pl]

Added

  • Added parameter "&loadModels" for comma-separated list of 3rd party components that needed for query.
  • Added parameters "&prepareTVs" and "&processTVs".
  • Added parameters "&tvFilters", "&tvFiltersAndDelimiter" and "&tvFiltersAndDelimiter".
  • Added support of parameters "&sortbyTV" and "&sortdirTV" for compatibility with getResources.
  • Added ability to use @INLINE and @FILE bindings in all template parameters.

Removed

  • Removed method pdoTools::getPlaceholders.

[1.5.0-pl2]

Fixed

  • Fixed sort of decimals in TVs.

[1.5.0-pl1]

Added

  • Added processing of simple [[~id]] placeholders in fastMode.
  • Added support of default value for TVs.

Changed

  • Improved sort by TVs of types "number" and "date".

[1.5.0-rc]

Added

  • [pdoUsers] Added new snippet "pdoUsers".

Changed

  • [pdoResources] Parameter "parents" now supports dash prefix for excluding resources from query by parent.

Fixed

  • [pdoResources] Fixed "toSeparatePlaceholders".
  • [pdoResources] Fixed issue when snippet runs multiple times at one page.

[1.4.1-pl1]

Changed

  • Improved "context" processing.

Fixed

  • Fixed "idx" when multiple snippets called at one page.
  • Fixed default sortby when joined tables exists.

[1.4.1-beta3]

Added

  • Added parameters "tplCondition", "tplOperator" and "conditionalTpls".
  • Added parameter "select" for specifying needed columns of selected tables. Can be a JSON string with array.
  • Added parameter "toSeparatePlaceholders".

Changed

  • Improved "pdoResources" snippet.

[1.4.0-beta1]

Added

  • Ability to specify JSON string in "sortby", for example "&sortby=`{"pagetitle":"asc","createdon":"desc"}`"
  • Added automatic replacement of tvs in "where" and "having" parameters.
  • Added automatic replacement of tvs in "sortby" parameter.
  • Added snippet "pdoResources", that could replace "getResources".
  • Added method pdoTools::defineChunk() for chunk of given idx.
  • Added "memory usage" in log.

Removed

  • Removed example snippet

[1.3.0]

Added

  • Added support of "having" conditions.

Changed

  • Improved placeholders processing when fastMode is enabled.

[1.2.1]

Fixed

  • Fixed not working "includeTVs" when "leftJoin" is empty.

[1.2.0]

Added

  • Added joining of TVs in pdoFetch. Use parameter "includeTVs" with comma-separated list of template variables.
  • Added method pdoFetch::setConfig() for proper setting options when you run multiple pdoTools snippets at the one page.

Changed

  • Native render of quick placeholders, such as "".
  • Method pdoTools::makeArray is now recursive, for processing a multidimensional arrays of values.

[1.1.0]

Changed

  • Improved getChunk function.

[1.0.1]

Changed

  • Improved displaying "where" condition in log.

Fixed

  • Fixed setting total in "chunks" mode.

[1.0.0]

Added

  • Initial release.

Последние обсуждения в сообществе MODX.pro