Вывод простых данных кастомного модуля в административной части
Материал из Umicms
При разработке дополнительного модуля, не обязательно оперировать стандартными элементами данных 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/ мы увидим табличное представление информации о двух элементах.
