Отобразить в подпункте MENU_LOCAL_ACTION, остальные MENU_LOCAL_ACTION и все MENU_LOCAL_TASK

Главные вкладки

Аватар пользователя Lord of Cats Lord of Cats 6 ноября 2018 в 14:54

Добрый день.

Хочу создать табы (вкладки) и в них свои подпункты. Пример кода в реализации hook_menu:

<?php
function mymodule_menu() { // Реализация hook_menu()
    
$items = array();
    
    
$items['mymodule'] = array(
        
'title' => 'Main menu',
        
'page callback' => 'example_build_page',
        
'access callback' => 'example_permissons_page',
        
'page arguments' => array(),
        
'type' => MENU_NORMAL_ITEM
    
);
    
    
$items['mymodule/submenu_1'] = array(
        
'title' => 'submenu 1',
        
'page callback' => 'example_build_page',
        
'access callback' => 'example_permissons_page',
        
'page arguments' => array(),
        
'type' => MENU_LOCAL_TASK
    
);
    
    
$items['mymodule/submenu_2'] = array(
        
'title' => 'submenu 2',
        
'page callback' => 'example_build_page',
        
'access callback' => 'example_permissons_page',
        
'page arguments' => array(),
        
'type' => MENU_LOCAL_TASK
    
);
    
    
$items['mymodule/submenu_3'] = array(
        
'title' => 'submenu 3',
        
'page callback' => 'example_build_page',
        
'access callback' => 'example_permissons_page',
        
'page arguments' => array(),
        
'type' => MENU_LOCAL_TASK
    
);
    
    
$items['mymodule/submenu_3/subsubmenu_1'] = array(
        
'title' => 'sub submenu 1',
        
'page callback' => 'example_build_page',
        
'access callback' => 'example_permissons_page',
        
'page arguments' => array(),
        
'type' => MENU_LOCAL_ACTION
    
);
    
    
$items['mymodule/submenu_3/subsubmenu_2'] = array(
        
'title' => 'sub submenu 2',
        
'page callback' => 'example_build_page',
        
'access callback' => 'example_permissons_page',
        
'page arguments' => array(),
        
'type' => MENU_LOCAL_ACTION
    
);
    
    
$items['mymodule/submenu_3/subsubmenu_3'] = array(
        
'title' => 'sub submenu 3',
        
'page callback' => 'example_build_page',
        
'access callback' => 'example_permissons_page',
        
'page arguments' => array(),
        
'type' => MENU_LOCAL_ACTION
    
);
    
    
$items['mymodule/submenu_3/subsubmenu_4'] = array(
        
'title' => 'sub submenu 4',
        
'page callback' => 'example_build_page',
        
'access callback' => 'example_permissons_page',
        
'page arguments' => array(),
        
'type' => MENU_LOCAL_ACTION
    
);
    
    return 
$items;
}
?>

Когда путь (первичная вложенность) /mymodule, то табы отображаются, всё в порядке. Когда путь (вторичная вложенность, пункт MENU_LOCAL_TASK) /mymodule/submenu_1 или /mymodule/submenu_2 или /mymodule/submenu_3, то тоже всё в порядке. Но когда путь (третичная вложенность, подпункт MENU_LOCAL_ACTION) становится, например, таким /mymodule/submenu_3/subsubmenu_1, то на странице не видно ни пунктов MENU_LOCAL_TASK, ни подпунктов MENU_LOCAL_ACTION.

Подскажите, пожалуйста, как сделать так, что бы в MENU_LOCAL_ACTION увидеть все пункты и все подпункты?

Лучший ответ

Аватар пользователя Lord of Cats Lord of Cats 9 ноября 2018 в 12:53

Нашел решение проблемы.

Способ 1:

<?php
$items
['mymodule']['type'] = MENU_DEFAULT_LOCAL_TASK
?>

Способ 2:
Заменить у всех элементов $items константы с MENU_LOCAL_ACTION на MENU_LOCAL_TASK

Комментарии

Аватар пользователя Lord of Cats Lord of Cats 9 ноября 2018 в 12:53

Нашел решение проблемы.

Способ 1:

<?php
$items
['mymodule']['type'] = MENU_DEFAULT_LOCAL_TASK
?>

Способ 2:
Заменить у всех элементов $items константы с MENU_LOCAL_ACTION на MENU_LOCAL_TASK