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::runSnippet
to 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->level
for internal use only. - * Returns
stdClass
instead ofarrayAssociative
.
- + Return the following 2 counters:
- *
\ddMenuBuilder::prepareProviderParams
:- + The
$params->providerParams
parameter can be set asstdClass
too. - * Returns
stdClass
instead 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 thedepth
parameter). Default:$templates['itemActive']
.
- +
- *
\ddTools::$modx
is 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
providerParams
was fixed.
- * Wrong type of
- *
\ddMenuBuilder
:- * Small refactoring.
- * Optimization:
- -
\ddMenuBuilder::generate
: Redudnandarray_merge
removed, - -
\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_menu
children flag. - + Added JSON format support for the
providerParams
andplaceholders
parameters.
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
where
clauses 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_outer
template (see theplaceholders
parameter). - + 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
.
- * Переменная
- + Добавлен метод
- * Удалены устаревшие комментарии, исправлено оформление кода и прочие незначительные изменения.