Создание шорткода меню

Для создания шорткода нам понадобится модуль "Шорткоды" он должен быть установлен в системе, а также знание PHP

1. Открываем модуль "Шорткоды" и открываем в меню "Шорткоды" пункт "Добавить шорткод"

2. В поле "Название" вводим название шорткода отображаемого в списке, например "Вывод меню"
В поле "Тэг" вводим сам тэг, который будет преобразован в меню, например "menu"

3. Так как тэг у нас "menu", то имя функции обработчика будет таким "ShortCode_Handler_menu"

Код функции будет таким:

function ShortCode_Handler_menu($attr, $text) { ob_start(); if (!is_array($attr)) { return ''; } $oXsl = ShortCode_Model::checkXSL($attr); if (!($oXsl instanceof Xsl_Model)) { return $oXsl; } if (isset($attr['id'])) { $menu_id = intval($attr['id']); } else { $menu_id = intval($text); } if ($menu_id > 0) { ob_start(); $Structure_Controller_Show = new Structure_Controller_Show(Core_Entity::factory('Site', CURRENT_SITE)); if (isset($attr['showproperties']) && $attr['showproperties'] == 'true') { $Structure_Controller_Show->showProperties(TRUE); } $Structure_Controller_Show->xsl($oXsl) ->menu($menu_id) ->show(); return ob_get_clean(); } return ''; }

4. Сохраняем шорткод

Шорткод получится таким [menu xsl='ВерхнееМеню']1[/menu] или [menu xsl='ВерхнееМеню id='1']

Также если указать атрибут showproperties=true, то также в xml попадут доп. свойства

18.06.2014