Вывод простых данных кастомного модуля в административной части — различия между версиями
Материал из Umicms
VITL' (обсуждение | вклад) (Новая страница: «При разработке дополнительного модуля, не обязательно оперировать стандартными элемента…») |
(нет различий)
|
Версия 21:48, 24 февраля 2011
При разработке дополнительного модуля, не обязательно оперировать стандартными элементами данных UMI.CMS, такими как элементы (страницы) или объекты (пользователи, баннеры). Возможно выводить и другую информацию, полученную необходимым для вас способом. Рассмотрим системную страницу кастомного модуля:
/admin/mymodule/info/ ,
где info - метод дополнительного модуля mymodule, в файле classes/modules/mymodule/__admin.php.
Пример метода info():
public function info() {
$this->setDataType("list");
$this->setActionType("view");
$limit = 20;
$curr_page = getRequest('p');
$offset = $curr_page * $limit;
$total = 2;
//Формирование данных, которые будут в XML
$items = Array();
$item_arr_1['node:name'] = "name_1";
$item_arr_1['attribute:value'] = 111;
$item_arr_2['node:name'] = "name_2";
$item_arr_2['attribute:value'] = 222;
$items[] = $item_arr_1;
$items[] = $item_arr_2;
$data = array('nodes:element' => $items);
$this->setData($data, $total);
$this->setDataRangeByPerPage($limit, $curr_page);
return $this->doData();
}
XML-данные для данной страницы будут представлены в следующем виде:
<result module="mymodule" method="info" lang="ru" lang-id="1" domain-id="1" user-id="14" request-uri="/admin/mymodule/info/">
<data type="list" action="view" total="2" offset="0" limit="20">
<element value="111">name_1</element>
<element value="222">name_2</element>
</data>
</result>
Создав шаблон /styles/skins/mac/data/modules/mymodule/list.view.xsl примерно следующего содержания:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="data" priority="1">
<table border="1">
<tr>
<td>
<xsl:text>Название элемента</xsl:text>
</td>
<td>
<xsl:text>Значение</xsl:text>
</td>
</tr>
<xsl:apply-templates select="element" mode="form-element"/>
</table>
</xsl:template>
<xsl:template match="element" mode="form-element">
<tr>
<td>
<xsl:value-of select="." />
</td>
<td>
<xsl:value-of select="@value" />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
На странице _http://sait.ru/admin/mymodule/info/ мы увидим табличное представление информации о двух элементах.