Идеология

Основой для переработки админки являлся принцип работы CMS в режиме XSLT-шаблонизатора. Результат работы модуля можно увидеть, если к адресу страницы дописать ".xml" (например, /ru/admin/catalog.xml). В выходном XML документе выводится достаточный минимум для реализации интерфейса. В отличие от XML-документа, который создается при работе сайта в режиме XSLT, XML-документ админки отличается по структуре. Пример:

<result module="catalog" method="tree" request-uri="/ru/admin/catalog/">
 <data type="list" action="view" total="2" offset="0" limit="25">
  <page id="22805" parentId="0" link="/market/" is-visible="1" is-active="1" object-id="25764" 
   type-id="9" update-time="1207127670" xlink:href="upage://22805">
   <name>Каталог товаров</name>
  </page>
 
  <page id="23040" parentId="0" link="/1c_cml2_imported/" is-active="1" object-id="27073" 
   type-id="9" update-time="1207222867" xlink:href="upage://23040">
   <name>1C CML2 imported</name>
  </page>
 </data>
</result>

Обязательными тегами являются result и вложенный в него тег data. result содержит информацию о контексте вызова (например, текущие модуль и метод), а тег data содержит данные, которые необходимо отобразить на текущей странице. Способ отображения сообщается комбинацией атрибутов type/action и носят рекомендательный характер для view (чаще всего, для XSLT шаблона). Содержание тега data может быть различным, это будет описано в следующих разделах.

Для интернационализации был введен протокол ulang, который возвращает DTD документ со списком сущностей, которые соответствуют языкозависимым строковым константам.

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

В идеале, XML документ, который отдает админка должен представлять из себя некий data provider.