Releases: DivanDesign/EvolutionCMS.snippets.ddMenuBuilder
Releases · DivanDesign/EvolutionCMS.snippets.ddMenuBuilder
Version 2.2
- + Parameters →
providerParams,templates,placeholders: Can also be set as HJSON or as a native PHP object/array. - + You can just call
\DDTools\Snippet::runSnippetto run the snippet without DB and eval (see README → Examples). - + README:
- + Installation → Using (MODX)EvolutionCMS.libraries.ddInstaller.
- + Links.
- * Attention! (MODX)EvolutionCMS.libraries.ddTools >= 0.59 is required.
Version 2.1.1
- + README: Improvements.
- + README_ru.
Version 2.1
- + Snippet: All templates has the following placeholders:
- +
[+totalAllChildren+]— total number of displayed children at all levels. - +
[+totalThisLevelChildren+]— total number of displayed immediate children. - +
[+level+]— item level in menu.
- +
- *
\ddMenuBuilder- +
\ddMenuBuilder::generate:- + Return the following 2 counters:
- +
$result['totalAll']— total number of items displayed at all levels. - +
$result['totalThisLevel']— total number of items displayed at this level.
- +
- + Added the parameter
$params->levelfor internal use only. - * Returns
stdClassinstead ofarrayAssociative.
- + Return the following 2 counters:
- *
\ddMenuBuilder::prepareProviderParams:- + The
$params->providerParamsparameter can be set asstdClasstoo. - * Returns
stdClassinstead ofarrayAssociative.
- + The
- *
\ddMenuBuilder::$templates: Now it'sstdClass.
- +
- + Composer.json.
- + CHANGELOG: Small improvements.
- + README:
- + Requires.
- + Documentation → Installation.
Version 2.0
- * Attention! Backward compatibility is broken!
- * Attention! (MODX)EvolutionCMS.libraries.ddTools >= 0.24.1 is required.
- * Template parameters refactoring.
- + Added templates for unpublished items:
- +
$templates['itemUnpub']— The menu item template for unpublished document. Default:$templates['item']. - +
$templates['itemUnpubActive']— The menu item template for unpublished document which is one of the parents to the current document when the current document doesn't displayed in the menu (e. g. excluded by thedepthparameter). Default:$templates['itemActive'].
- +
- *
\ddTools::$modxis used instead of global$modx. - * Fixed an error when docs that must be hidden will be showed.
- * Refactoring, other small changes.
Version 1.13b
- * Attention! PHP >= 5.6 is required.
- * Snippet:
- * Wrong type of
providerParamswas fixed.
- * Wrong type of
- *
\ddMenuBuilder:- * Small refactoring.
- * Optimization:
- -
\ddMenuBuilder::generate: Redudnandarray_mergeremoved, - -
\ddMenuBuilder::generate: Убран проход по всем документам в дереве который определял где находится активный документ.
- -
Version 1.12
- * Attention! (MODX)EvolutionCMS.libraries.ddTools >= 0.20 is required.
- * Menu item active status is no logner depends on the
show_in_menuchildren flag. - + Added JSON format support for the
providerParamsandplaceholdersparameters.
Version 1.11
- * Attention! PHP >= 5.4 is required.
- * Attention! (MODX)EvolutionCMS.libraries.ddTools >= 0.16.1 is required.
- + Added an ability to pass ids of the selected documents to output.
- * Short array syntax is used because it's more convenient.
- *
\ddMenuBuilder:- * Unpublished docs will be used if needed.
- *
\ddMenuBuilder::generate:- * Now takes custom
whereclauses instead of parent id. - * Refactoring parameters style.
- * Now takes custom
- * Other minor changes.
Version 1.10
- * Attention! MODXEvo >= 1.1 is required.
- + Added an ability to pass additional data into a
tpls_outertemplate (see theplaceholdersparameter). - + Added support of
@CODE:keyword prefix in the snippet templates.
Version 1.9
- * Attention! (MODX)EvolutionCMS.libraries.ddTools >= 0.15 is required.
- * Snippet:
- * Вместо прямого обращения к полю
$modx->configиспользуется метод$modx->getConfig. - * Следующие параметры были переименованы (старые имена поддерживаются, но не рекомендуются к использованию):
- *
tplRow→tpls_item. - *
tplHere→tpls_itemHere. - *
tplActive→tpls_itemActive. - *
tplParentRow→tpls_itemParent. - *
tplParentHere→tpls_itemParentHere. - *
tplParentActive→tpls_itemParentActive. - *
tplUnpubParentRow→tpls_itemParentUnpub. - *
tplUnpubParentActive→tpls_itemParentUnpubActive. - *
tplWrap→tpls_outer.
- *
- * Параметр
tpls_itemParentHereпо умолчанию равен<li class="active"><a href="[~[+id+]~]" title="[+pagetitle+]">[+menutitle+]</a><ul>[+children+]</ul></li>(значение по умолчанию больше не зависит от параметраtpls_itemParent). Решение неоднозначное, подумать.
- * Вместо прямого обращения к полю
- *
\ddMenuBuilderобновлён до 2.0:- * Теперь это обычный объект, поля и методы не статические.
- * Публичный только метод
generate, остальные поля и методы приватные. - - Удалено поле
$table, вместо него используется\ddTools::$tables['site_content']. - * Поле
\ddMenuBuilder::$idпереименовано в\ddMenuBuilder::$hereDocId. - + Добавлены значения по умолчанию для полей
sortDirиwhere. - + Значения шаблонов по умолчанию хранятся в поле
\ddMenuBuilder::$templates. - * Переименованы шаблоны.
- + Добавлен конструктор.
- * Обработка параметров
showPublishedOnly,showInMenuOnlyи формирование SQL-условия вынесены из сниппета в конструктор класса\ddMenuBuilder. - * Обработка значений шаблонов по умолчанию вынесена из сниппета в конструктор класса
\ddMenuBuilder. - * Подключение библиотеки
modx.ddToolsвынесено в конструктор. - * Вместо прямого обращения к полю
$modx->configиспользуется метод$modx->getConfig. - * Файл
assets/snippets/ddMenuBuilder/ddmenubuilder.class.phpпереименован вassets/snippets/ddMenuBuilder/ddMenuBuilder.class.php.
Version 1.8
- * Snippet:
- * Плэйсхолдер
[+wrapper+]во всех шаблонах заменён на[+children+].
- * Плэйсхолдер
- *
\ddMenuBuilder:- + Добавлен метод
\ddMenuBuilder::getOutputTemplate. - * Метод
\ddMenuBuilder::generate:- * Переменная
$childrenдолжна быть определена. - * Для проверки наличия дочерних документов используется
emptyвместо простого логического значения (т.к. пустой массив также означает отсутствие детей). - * Рефакторинг:
- * Один
returnвместо нескольких. - * Переменная
$tplобъявляется в любом случае. - * Элемент массива
strобъявляется в самом начале, таким образом, он всегда существует. - * Код определения шаблона для вывода документа вынесен в отдельный метод.
- * Обработка пустого
menutitleдокумента делается только если документ будет выводиться. - * Определение «активности» текущего документа объеденено в одно условие и перенесено после парсинга.
- * Один
- * Парсинг текущего пункта меню делается только если шаблон определён (если не определён, значит выводить не надо).
- * Всегда возвращает массив.
- * Поля результирующего массива переименованы:
- *
act→hasActive. - *
str→outputString.
- *
- * В массиве документа поле
wrapperпереименовано вchildren. - * В результирующем массиве в любом случае будут поля
hasActiveиoutputString. - * Переменная
$docв любом случае будет содержать полеchildrenс массивом дочерних документов, в случае если их нет или не нужно выводить,$doc['children']['outputString']будет равняться пустой строке. - * Определение шаблона и прочие операции, связанные с выводом, производятся только если в этом есть смысл.
- - Удалена переменная
$sql.
- * Переменная
- + Добавлен метод
- * Удалены устаревшие комментарии, исправлено оформление кода и прочие незначительные изменения.