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

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

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

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

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

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

Copy
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