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

Главное меню

Общее описание

XML главного меню содержит:

  • список ссылок на модули панели;
  • адрес стартовой страницы;
  • адрес стартовой формы;
  • общую информацию — информация о паролях, ссылка на копирайт, общие сообщения локализации.

В текущих темах главное меню — это рабочая страница панели, состоящая из логотипа, меню, копирайта, верхней панели и рабочего фрейма, в который загружаются модули.

Главное меню в orion:

Главное меню состоит из групп элементов. Эти группы можно сворачивать при клике по названию группы или по клику кнопки "Свернуть всё".

Меню имеет три состояния: полное, избранное и популярное. Переключение между ними осуществляется кнопками.

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

Описание XML

XML COREmanager:

<doc lang="ru" func="desktop" binary="/core" host="https://127.0.01:1500" stylesheet="desktop" theme="/manimg/orion/" css="main.css" logo="logo.png" logolink="" favicon="favicon.ico" localdir="default/">
  <mainmenu level="30" name="Administrator" startpage="dashboard">
    <node name="srvset" bigsprite="yes" sprite="yes">
      <node name="product" action="product" type="list" popular="yes"/>
      <node name="plugin" action="plugin" type="list" popular="yes"/>
    </node>
    <node name="sysstat" bigsprite="yes" sprite="yes">
      <node name="sysinfo" action="sysinfo" type="list" popular="yes"/>
      <node name="longtask" action="longtask" type="list" popular="yes"/>
      <node name="request" action="request" type="list" popular="yes"/>
      <node name="session" action="session" type="list" popular="yes"/>
      <node name="journal" action="journal" type="list" popular="yes"/>
      <node name="authlog" action="authlog" type="list" favorite="yes" popular="yes"/>
      <node name="errorjournal" action="errorjournal" type="list" popular="yes"/>
      <node name="problems" action="problems" type="list" popular="yes"/>
    </node>
    <node name="set" bigsprite="yes" sprite="yes">
      <node name="srvparam" action="srvparam" type="form" popular="yes"/>
      <node name="brand" action="brand" type="form" popular="yes"/>
      <node name="usermenu" action="usermenu" type="list" popular="yes"/>
      <node name="usrparam" action="usrparam" type="form" popular="yes"/>
    </node>
    <node name="mgrhelp" bigsprite="yes" sprite="yes">
      <node name="changelog" action="changelog" type="list" popular="yes"/>
      <node name="community" function="http://forum.ispsystem.com/ru/index.php"/>
      <node name="handbook" function="http://ru.5.ispdoc.com/index.php/core-handbook-30"/>
    </node>
  </mainmenu>
  <user name="root" level="30" hostname="127.0.0.1:1500" lang="ru" dashboard="yes"/>
  <path level="30">root</path>
  <mgr version="5.8.1-08.08.13_10:51_IRKT">core</mgr>
  <version mgr="core">
    <core type="alpha">5.8.1-08.08.13_10:51_IRKT</core>
  </version>
  <messages name="desktop" checked="yes">...</messages>
  <pwgenlen>8</pwgenlen>
  <pwgencharacters>
    1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
  </pwgencharacters>
  <pwstrength>1</pwstrength>
  <copyright href="http://ispsystem.com/">ISPsystem &copy; 1997-2013</copyright>
  <tparams>
    <out>devel</out>
  </tparams>
</doc>

Главное меню

Элемент mainmenu

Элемент mainmenu содержит список групп с элементами меню.

Атрибуты mainmenu

@startpage содержит имя функции стартовой страницы (списка).

@startform содержит имя функции стартовой формы.

Элемент node(группа)

Элемент node содержит список элементов меню этой группы.

Атрибуты node(группа)

@name имя группы, задаёт иконку группы (имя + '.png') и локальное сообщение

@sprite показывает, что иконка находится в спрайте

@bigsprite показывает, что большая иконка около заголовка модуля находится в спрайте

Элемент node

Содержит в себе информацию о функции модуля.

Атрибуты элемента node

@name задаёт локальное сообщение

@action задаёт имя функции, которую нужно вызвать

@function задаёт ссылку, которую нужно открыть в новом окне

@type задаёт тип функции: list или form

@popular показывает, что элемент находится в популярном меню

@favorite показывает, что элемент находится в избранном меню

Локализация

Элементы node берутся из локализованных сообщений по значению атрибута @name с префиксом menu_. Подробные сообщения элементов управления меню: локализованные сообщения с именами hint_mautohide, hint_mbarall, hint_mbarfavorite, hint_mbarhide, hint_mbarpopular, hint_mbarshow, hint_mfixmenu

Элемент modernmenu

Содержит список пунктов меню, которые могут быть как в группе, так и без группы. Используется для отображения меню в новом стиле. Включается нажатием на иконку рядом с иконками "Избранное" и "Популярное". Необязательный элемент.

Элемент node (группа)

Содержит в себе список пунктов меню. Поведение аналогично группам в mainmenu, за исключением того, что у группы с @type="noname" не отображается название группы, и каждый пункт меню лежит на первом уровне и имеет свою иконку.

Атрибуты элемента node (группа)

  • @name : имя группы. Задаёт иконку группы и локальное сообщение (для @type="noname" не используется)
  • @type : может иметь только значение noname. Атрибут показывает, что:

    • пункты меню в этой группе имееют свои иконки и находятся на первом уровне;
    • группа не имеет своего заголовка и возможности сворачиваться, отображается с отступом от других групп.

Элемент node(пункт меню)

Аналогичен пунктам меню из mainmenu, за исключением того, что атрибуту @name присваивается не только локализованное имя, но и индивидуальная иконка пункта.

Пример XML для modernmenu
<mainmenu>
...
  <modernmenu>
  <node name="noname_file" type="noname">
    <node name="revisium_antivirus_func" action="revisium_antivirus_func" type="external"/>
    <node name="backup2.superlist" action="backup2.superlist" type="list"/>
    <node name="file" noapi="yes" action="file" type="list" favorite="yes"/>
  </node>
  <node name="noname_user" type="noname">
    <node name="user" action="user" type="list" favorite="yes" pin="yes"/>
    <node name="ftp.user" action="ftp.user" type="list" popular="yes"/>
  </node>
  <node name="noname_plugin" type="noname">
    <node name="plugin" action="plugin" type="form"/>
  </node>
  <node name="set">
    <node name="websettings" action="websettings" type="form" popular="yes"/>
    <node name="srvparam" action="srvparam" type="form"/>
    <node name="feature" action="feature" type="list" favorite="yes"/>
    <node name="phpversions" action="phpversions" type="list" pin="yes"/>
    <node name="ipaddrlist" action="ipaddrlist" type="list"/>
    <node name="aps.catalog" action="aps.catalog" type="list"/>
    <node name="dns.blacklist" action="dns.blacklist" type="list"/>
    <node name="emailnotify" action="emailnotify" type="form" popular="yes"/>
    <node name="panelsettings" action="panelsettings" type="form" popular="yes"/>
  </node>
</modernmenu>

Пример отображения в интерфейсе dragon


Пояснения:

1 — пункт меню из группы с @type="noname"

2 — обычная группа modernmenu

Верхняя панель

Верхняя панель содержит:

  • информацию об альфа-версии панели и COREmanager;
  • имя хоста;
  • информацию об авторизованном пользователе и уровне вложенности авторизации;
  • ссылки на настройки панели, страницы помощи и завершение сеанса.

Пример из orion:

Элемент topmenu

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

Пример XML:

<topmenu name="project">
  <node name="ninja" img="p-ninjaon" action="usrparam" key="1" sprite="yes" active="yes"/>
  <node name="root" img="p-root" action="usrparam" key="2"/>
</topmenu>

Пример отображения:

Атрибуты элемента name

@name имя, используется для локализации

Элемент node

Описывает пункт меню.

Атрибуты элемента node

@name имя пункта меню, используется для локализации

@img имя картинки, которую надо отобразить

@image путь до картинки, если её нет в теме

@action имя функции, которую нужно вызвать при выборе пункта меню

@key ключ, который нужно передать в виде параметра elid при выборе пункта меню

@sprite картинка, находится в спрайте

@active активный пункт меню

Локализация

подпись topmenu — локализованное сообщение по значению атрибута @name

подробное сообщение topmenu –- локализованное сообщение по значению атрибута @name с префиксом hint_

сообщения пунктов меню topmenu — локализованные сообщения по значению атрибута @name

Элемент usermenu

Позволяет вставить дополнительные ссылки в меню пользователя. Ссылки будут вставлены вместо ссылки "Выйти".

XML:

<usermenu>
  <node name="login" action="logon" img="sb-logout"/>
  <node name="register" action="register" img="sb-logout"/>
</usermenu>

Пример из orion:

Элемент usermenu

Содержит список ссылок

Элемент node

Описывает ссылку

Атрибуты элемента node

@name имя элемента для локализации

@action имя функции, которую нужно вызвать. Если задать @type, то будет открыт модуль. По умолчанию, переход по ссылке MGRURL?func=@action

@img имя картинки для отображения слева

@type задаёт тип модуля, который будет открыт

Элемент path

Содержит в себе информацию о текущем авторизованном пользователе и уровне вложенности авторизации (пользователь может войти под учётной записью другого пользователя с меньшими правами, а под ним — авторизоваться с учётной записью уровнем ниже).

Атрибут @level содержит уровень пользователя. Каждому уровню пользователя соответствует своя иконка (lv-[@level]). Сам элемент содержит в себе логин пользователя. Элементы path расположены в порядке вложенности уровня пользователя.

Если элементов path больше одного, то все, кроме первого логина пользователя, должны быть в виде ссылки для перехода под этого пользователя. При клике по ссылке нужно вызвать функцию chlevel с параметром lp равным разности общего количества элементов path и номером текущего (то есть на сколько уровней назад надо вернуться). Например, на изображении выше для перехода обратно под root MGR_URL?func=chlevel&lp=1.

Элемент user

Содержит информацию о пользователе. Атрибут @hostname содержит имя хоста.

Элемент version

Содержит информацию о версии продукта и версии COREmanager. Имеет дочерние элементы по названию панели (например: core, ipmgr, dnsmgr). Элементы содержат атрибут @type: если он равен alpha, то надо отображать информацию о версии. Имя продукта берётся из имени элемента, а версия — из его содержания.

Ссылка "Помощь"

При клике по ссылке "Помощь" нужно в новом окне вызвать функцию help с параметром topic, содержащим имя функции активного модуля. Например, MGR_URL?func=help&topic=usrparam. Далее панель управления произведёт редирект на нужную страницу документации. Ссылка на документацию может быть внешняя, тогда у элемента form будет атрибут @helpurl cо ссылкой, которую надо открыть в новом окне. Если в ссылке присутствует макрос _LANG_, то надо заменить на текущий язык.

Выход

Для завершения сеанса, нужно вызвать функцию logon.

Локализация

Сообщения верхней панели — локализованные сообщения с именами cpset, help2, logout.

Подробные сообщения верхней панели — локализованные сообщения с именами msg_cpset, msg_help, msg_logout.

Подробные сообщения для элементов смены уровня пользователя — локализованное сообщение с именем msg_chlevel.

Копирайт

Элемент copyright

Содержит информацию о копирайте: атрибут @href содержит ссылку, а содержимое — текстовое отображение ссылки. Расположено внизу главного меню.

Элемент pdf

Показывает, что панель поддерживает экспорт отчетов в pdf.

Логотип

Путь до логотипа содержится в атрибуте @logo корневого элемента doc. Если атрибут @logolink не пуст, то при клике по логотипу надо перейти по этой ссылке из атрибута (ссылка настроивается в брендинге).

Оповещения

Это блок с иконками в верхнем левом углу.

Пример из orion:

Для получения данных о блоке нужно вызвать функцию notify. Ответ от панели управления будет содержать XML вида:

<doc stylesheet="notify" ...\>
  <messages name="notify">
    <msg name="hint_basket">Моя корзина</msg>
    <msg name="hint_messages">Мои сообщения</msg>
    <msg name="hint_warning">Warning</msg>
  </messages>
  <notify>
    <item name="basket" action="longtask" img="p-newmsg" type="list">
      <msg>50</msg>
    </item>
    <item name="messages" action="journal" img="m-service" type="list">
      <msg>91</msg>
    </item>
    <item name="warning" action="problems" img="p-error" type="list">
      <msg>75</msg>
    </item>
  </notify>
  <timeout>30</timeout>
  <tparams>
    <out>devel</out>
    <func>notify</func>
  </tparams>
</doc>

К этой XML применяется шаблон notify.xsl.

Элемент notify

Содержит список элементов оповещения. Подробнее см. в статье Нотификация.