tra('Menu'), 'description' => tra('Displays a menu or a structure as a menu.'), 'params' => [ 'id' => [ 'name' => tra('Menu'), 'description' => tra('Identifier of a menu (from tiki-admin_menus.php)'), 'filter' => 'int', 'profile_reference' => 'menu', ], 'structureId' => [ 'name' => tra('Structure'), 'description' => tra('Identifier of a structure of wiki pages (name or number from tiki-admin_structures.php)'), 'filter' => 'text', 'profile_reference' => 'structure', ], 'type' => [ 'name' => tra('Type'), 'description' => tra('Direction for menu: horiz or vert (default vert)'), 'filter' => 'text', ], // FIXME: There are 3 types of menus: Bootstrap, CSS or classic (JavaScript). There should be a single option to select between the 3, or 1 should be removed (CSS). 'css' => [ 'name' => tra('CSS/Superfish'), 'description' => tra('Use CSS Superfish menu (if bootstrap = n). y|n (default y)'), 'filter' => 'alpha', ], 'bootstrap' => [ 'name' => tra('Use Bootstrap menus'), 'description' => tra('') . ' ( y / n )', 'default' => 'y', ], 'megamenu' => [ 'name' => tra('Use Smartmenu Megamenu'), 'description' => tra('This is a Smartmenu that has a flattened structure of level 1 (Smartmenu preference must be turned on).') . ' ( y / n )', 'default' => 'n', ], 'megamenu_static' => [ 'name' => tra('Use Static Megamenu'), 'description' => tra('This is a full-width navbar-nav Megamenu') . ' ( y / n )', 'default' => 'y', ], // TODO - needs image url field // 'megamenu_images' => [ // 'name' => tra('Use Megamenu Images'), // 'description' => tra('Adds an image to each Megamenu') . ' ( y / n )', // 'default' => 'n', // ], 'navbar_toggle' => [ 'name' => tra('Show Navbar Toggle Button'), 'description' => tra('Used in Bootstrap navbar menus when viewport is too narrow for menu items') . ' ( y / n )', 'default' => 'y', ], 'navbar_brand' => [ 'name' => tra('The URL of the navbar brand (logo)'), 'description' => tra('Used in Bootstrap navbar menus, if there is a brand logo to be attached to the menu'), 'default' => '', ], 'navbar_class' => [ 'name' => tra('CSS class(es) for the menu nav element'), 'description' => tra('Default specified is for Bootstrap menus. Replace "navbar-light bg-light" with "navbar-dark bg-dark" for a dark navbar. For a vertical Smartmenu, use "navbar navbar-expand-lg."'), 'default' => 'navbar navbar-expand-lg navbar-light bg-light', ], 'menu_id' => [ 'name' => tra('DOM #id'), 'description' => tra('Id of the menu in the DOM'), ], 'menu_class' => [ 'name' => tra('CSS class'), 'description' => tra('Class of the menu container'), 'filter' => 'text', ], 'sectionLevel' => [ 'name' => tra('Limit low visibles levels'), 'description' => tra('All the submenus beginning at this level will be displayed if the url matches one of the option of this level or above or below.'), 'filter' => 'int', ], 'toLevel' => [ 'name' => tra('Limit top visible levels'), 'description' => tra('Do not display options higher than this level.'), 'filter' => 'int', ], 'link_on_section' => [ 'name' => tra('Link on Section'), 'description' => tra('Create links on menu sections') . ' ' . tra('(y/n default y)'), 'filter' => 'alpha', ], 'translate' => [ 'name' => tra('Translate'), 'description' => tra('Translate labels') . ' ' . tra('(y/n default y)'), 'filter' => 'alpha', ], 'menu_cookie' => [ 'name' => tra('Menu Cookie'), 'description' => tra('Open the menu to show current option if possible') . ' ' . tra('(y/n default y)'), 'filter' => 'alpha', ], 'show_namespace' => [ 'name' => tra('Show Namespace'), 'description' => tra('Show namespace prefix in page names') . ' ( y / n )', // Do not translate y/n 'default' => 'y' ], 'setSelected' => [ 'name' => tra('Set Selected'), 'description' => tra('Process all menu items to show currently selected item and other dynamic states. Useful when disabled on very large menus where performance becomes an issue.') . ' ( y / n )', 'default' => 'y' ], ] ]; } /** * @param $mod_reference * @param $module_params */ function module_menu($mod_reference, $module_params) { $smarty = TikiLib::lib('smarty'); $smarty->assign('module_error', ''); if (empty($module_params['id']) && empty($module_params['structureId'])) { $smarty->assign('module_error', tr('One of these parameters has to be set:') . ' ' . tr('Menu') . ', ' . tr('Structure') . '.'); } if (! empty($module_params['structureId'])) { $structlib = TikiLib::lib('struct'); if (empty($module_params['title'])) { $smarty->assign('tpl_module_title', $module_params['structureId']); } } $smarty->assign('module_type', ! empty($module_params['css']) && $module_params['css'] === 'y' ? 'cssmenu' : 'menu'); $show_namespace = isset($module_params['show_namespace']) ? $module_params['show_namespace'] : 'y'; $smarty->assign('show_namespace', $show_namespace); }