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

Для создания шорткода нам понадобится модуль "Шорткоды" он должен быть установлен в системе, а также знание 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