XML-описание интерфейса темы dragon
Статья содержит описание узлов и атрибутов для метаданных темы dragon. Общие сведения об XML-описании интерфейсов см. в документации COREmanager.
Боковое меню
Описание бокового меню находится внутри узла mainmenu и наследует его уровень доступа.
Атрибут type="noname" добавляет разделитель между группами. Атрибут name должен быть описан для служебных целей. Остальные узлы node описываются аналогично mainmenu.
Пример описания
<modernmenu>
<node name="noname_webdomain" type="noname">
<node name="webdomain" action="webdomain" type="list"/>
<node name="db" action="db" type="list"/>
<node name="email" action="email" type="list"/>
<node name="sslcert" action="sslcert" type="list"/>
<node name="domain" action="domain" type="list"/>
<node name="scheduler" action="scheduler" type="list"/>
</node>
<node name="noname_file" type="noname">
<node name="backup2.superlist" action="backup2.superlist" type="list"/>
<node name="file" noapi="yes" action="file" type="list"/>
</node>
<node name="noname_user" type="noname">
<node name="user" action="user" type="list"/>
<node name="ftp.user" action="ftp.user" type="list"/>
</node>
<node name="set">
<node name="websettings" action="websettings" type="form"/>
<node name="srvparam" action="srvparam" type="form"/>
<node name="feature" action="feature" type="list"/>
<node name="phpversions" action="phpversions" type="list"/>
<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"/>
<node name="panelsettings" action="panelsettings" type="form"/>
</node>
</modernmenu>
</mainmenu>
Контекстное меню
Контекстное меню описывается ниже панели кнопок (toolbar) на том же уровне. Описание контекстного меню переопределяет автоматическое формирование контекстного меню на основе панели кнопок.
Узел toolgrp создаёт новую группу, в которой будут расположены элементы меню. Группы разделяются горизонтальной линией.
Пример описания
<contextmenu>
<toolgrp name="go">
<toolbtn name="go" func="webdomain.go" type="window" img="t-insert" sprite="yes" spritesvg="yes"/>
<toolbtn name="go_db" func="site.db.redirect" type="window" img="t-insert" sprite="yes" spritesvg="yes">
<hide name="database" value="Not used"/>
</toolbtn>
</toolgrp>
<toolgrp name="edit">
<toolbtn name="edit" func="site.edit" type="edit" img="t-edit" default="yes" sprite="yes" spritesvg="yes"/>
<toolbtn name="php" func="phpconf" type="editlist" img="t-editlist" sprite="yes" spritesvg="yes">
<show name="php_mode" value="FastCGI (Nginx + PHP-FPM)"/>
<show name="cgi_site_settings" value="on"/>
<show name="php_mode" value="Apache"/>
</toolbtn>
</toolgrp>
</contextmenu>
Разделитель групп кнопок
Чтобы добавить разделитель между группами кнопок, добавьте узел:
<toolgrp name="back_btn_sep" separator="yes"/>
separator — атрибут, отвечающий за разделение групп
name — атрибут, используемый в служебных целях
Раскрывающаяся группа
Чтобы описать раскрывающуюся группу, укажите в описании группы атрибут collapsed="yes".
Пример описания
<toolgrp name="management" img="t-emailmanage" collapsed="yes" sprite="yes" spritesvg="yes">
<toolbtn name="edit" func="email.edit" type="edit" img="t-edit" default="yes" sprite="yes" spritesvg="yes"/>
<toolbtn name="setting" func="email.setting" type="edit" img="t-attr" sprite="yes" spritesvg="yes"/>
<toolbtn name="clear" func="email.clear" type="group" img="t-mail-clear" sprite="yes" spritesvg="yes"/>
<toolbtn name="delete" func="email.delete" type="group" img="t-delete" sprite="yes" spritesvg="yes"/>
</toolgrp>
Кнопка в верхнем правом углу
Чтобы разместить кнопку в верхнем правом углу, укажите в описании кнопки атрибут detached="yes". Обычно такое размещение кнопки используется для создания сущностей.
Пример описания
<toolbtn name="new" func="emaildomain.edit" type="new" img="t-new" detached="yes"/>