This article describes the nodes and attributes for Dragon theme metadata. For general information about XML descriptions of interfaces, see the COREmanager documentation.

Side menu


The description of the side menu is inside the mainmenu node and inherits its access level.

The attribute type="noname" adds a separator between the groups. The name attribute must be described for service purposes. The other node nodes are described similarly to the mainmenu.

Example of description

<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>
XML

Context menu


The context menu is described below the toolbar on the same level. The context menu description overrides the automatic formation of the context menu based on the button bar.

The toolgrp node creates a new group in which the menu items will be located. The groups are separated by a horizontal line.

Example of description

<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>
XML

Button group separator


To add a separator between groups of buttons, add a node: 

<toolgrp name="back_btn_sep" separator="yes"/>
XML

separator — the attribute responsible for separating groups

name — the attribute used for service purposes

Collapsed group


To describe a collapsed group, specify the collapsed="yes" attribute in the group description.

Example of description

<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>
XML

Button in the upper right corner


To place the button in the upper right corner, specify the attribute detached="yes" in the button description. Usually this button placement is used to create entities.

Example of description

<toolbtn name="new" func="emaildomain.edit" type="new" img="t-new" detached="yes"/>
XML