Документация InstantCMS

для администраторов и разработчиков

Инструменты пользователя

Инструменты сайта


dev:controllers:backend:menu

Меню админки

Контроллер админки может содержать в себе описание пунктов меню, которое будет автоматически выводиться во всех разделах (экшенах) админки.

Пример меню в настройках компонента users:

Описание меню

В контроллере (backend.php) должен быть определен метод getBackendMenu(), возвращающий массив пунктов. Каждый пункт так же представлен массивом, содержащим поля:

  • title – заголовок пункта
  • url – ссылка

Для формирования ссылок используется функция-хелпер href_to(). Первым параметром ей передается название контроллера, вторым – название экшена, на который нужно сослаться. Однако, поскольку контроллер админки начинает свой URL не от корня сайта, а от /admin/controllers/edit, это должно быть учтено. В контроллере админки есть специальное свойство:

$this->root_url

содержащее полный путь от корня сайта. Таким образом, URL экшена может быть получен так:

href_to($this->root_url, 'action');

Пример описания меню

Пример меню из админки компонента users (код не относящийся к меню был вырезан):

//system/controllers/users/backend.php
class backendUsers extends cmsBackend{
 
    public function getBackendMenu(){
        return array(
            array(
                'title' => LANG_USERS_CFG_FIELDS,
                'url' => href_to($this->root_url, 'fields')
            ),
            array(
                'title' => LANG_USERS_CFG_TABS,
                'url' => href_to($this->root_url, 'tabs')
            ),
            array(
                'title' => LANG_OPTIONS,
                'url' => href_to($this->root_url, 'options')
            ),
            array(
                'title' => LANG_PERMISSIONS,
                'url' => href_to($this->root_url, 'perms', 'users')
            ),
            array(
                'title' => LANG_USERS_CFG_MIGRATION,
                'url' => href_to($this->root_url, 'migrations')
            )
        );
    }
 
}

Результат показан на скриншоте выше.


Вернуться к оглавлению

dev/controllers/backend/menu.txt · Последнее изменение: 26.11.2014 10:27 — admin