Добавление внешних ссылок в меню

Материал из ISPWiki

Перейти к: навигация, поиск

Рассмотрим на примере задачу добавления в меню панели управления ссылки на собственное внешние приложение, например, собственную систему мониторинга и статистики.

Исходные данные

  • Имеем панель управления ISPmanager
  • Ваше приложение находится по адресу https://your.domain.com/mystat/
  • Ссылка в меню должна называться "Моя статистика", которая должна находиться с глобальном меню "Статистика" на уровне администратора сервера.

Действия

1) Создаем файл описания плагина /usr/local/ispmgr/etc/ispmgr_mod_mystat.xml со следующим содержимым

<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
  <mainmenu level="7">
    <node name="stat">
      <node name="myfunc"/>
    </node>
  </mainmenu>
  <lang name="ru">
    <messages name="desktop">
      <msg name="menu_myfunc">Моя статистика</msg>
    </messages>      
  </lang>
  <lang name="en">
    <messages name="desktop">
      <msg name="menu_myfunc">My statistic</msg>
    </messages>      
  </lang>
</mgrdata>

2) Выполняем команду

/usr/local/ispmgr/sbin/mgrctl extaction.add name=myfunc url=/mystat/

или добавляем в конфигурационный файл ispmgr.conf строчку

extaction myfunc /mystat/

3) Перезапускаем ISPmanager

4) Обновляем в браузере страницу панели управления.

Пояснения

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


<mainmenu level="7">
   <node name="stat">
     <node name="myfunc"/>
   </node>
</mainmenu>

Данный блок обозначает, что в основное меню пользователей с уровнем 7 (администратор сервера) в раздел с внутренним именем "stat" добавляем новый пункт меню с внутренним именем "myfunc", для именования своего пункта меню вы можете использовать любое имя, которое еще не используется. Посмотреть названия имеющихся модулей,а также внутренние имена разделов можно в файле ispmgr.xml найдя тег mainmenu.

Если вам требуется добавить пункт в меню на нескольких уровнях, например у администратора и пользователя, то вам нужно описать все уровни, на которых он необходим. Описывающий меню XML будет выглядеть следующим образом:

<mainmenu level="7">
   <node name="stat">
     <node name="myfunc"/>
   </node>
</mainmenu>
<mainmenu level="5">
   <node name="stat">
     <node name="myfunc"/>
   </node>
</mainmenu>

Описание надписей


 <lang name="ru">
   <messages name="desktop">
     <msg name="menu_myfunc">Моя статистика</msg>
   </messages>      
 </lang>

Данный блок обозначает, что необходимо добавить текстовую надпись "Моя статистика" с внутренним именем myfunc в функцию desktop (функция, формирующая меню). Данная надпись относится к локализации (языку интерфейса пользователя) с внутренним именем "ru" (Русский). Чтобы у пользователей с другим языком интерфейса не было пунктов меню без подписей, мы добавили блок

 <lang name="en">
   <messages name="desktop">
     <msg name="menu_myfunc">My statistic</msg>
   </messages>      
 </lang>

Локализация с внутренним именем "en" (английский), является локализацией по умолчанию, т.е. при отсутствии текстовой надписи на выбранном пользователем языке будет использоваться надпись из локализации en, поэтому рекомендуется всегда описывать данную локализацию. Если вы хотите добавить надписи на других языках, добавьте соответствующий блок для каждого языка, например, для французского это будет выглядеть так

 <lang name="fr">
   <messages name="desktop">
     <msg name="menu_myfunc">Mes statistiques</msg>
   </messages>      
 </lang>

Активация модуля


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

extaction myfunc /mystat/

указанная ранее команда делает тоже самое, и если вы активируете модуль скриптом то предпочтительнее использовать команду, а не править конфигурационный файл напрямую.

Перезапуск панели управления


Для того чтоб панель подключила и начала обрабатывать наш файл ispmgr_mod_mystat.xml, а так же для того чтоб перечитала файл конфигурации ее необходимо перезапустить.

Была ли эта информация полезной? Да | Нет
Личные инструменты