Утилиты

Утилиты позволяют выделять и повторно использовать функции шаблонов и разметки.

Обзор

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

Утилиты не являются уникальными для Symphony, но они позволяют пользователям создавать надёжные XSLT модули для работы с шаблонами страниц.

Использование

Работа с утилитами осуществляется через меню компонентов (Blueprints > Components) или с помощью непосредственного редактирования XSLT файла (workspace/utilities/utility-name.xsl).

Для работы с утилитами их необходимо предварительно подключить в шаблоне страницы.

<xsl:include href="../utilities/utility-name.xsl" />

Начало пути ../utilities необходимо указывтаь при включении утилиты в шаблон потому, что шаблоны страниц расположены в каталоге pages/, который находиться рядом с каталогом utilities/ в каталоге workspace.

Так же утлиты можно включать с тело других утилит следующей инструкцией:

<xsl:include href="utility-name.xsl" />

Детали

Редактор утилит
— Редактор утилит

Редактор утилит довольно простой и не нуждается в особом описании. Он содержит одно большое текстовое поле, содержащее полный XSLT код утилиты. На боковой панели спарва расположен список утилит доступных в проекте. Все утилиты используемые в редактируемом шаблоне подсвечены.

Общая картина

Утилиты имеют большое значение в работе с разметкой и форматированием данных. Любая часть шаблона страниц, которая используется более одного раза может быть вынесена для удобсва в отдельную утилиту. Сейчас количество утилит для Symphony быстро растёт, любую из них вы можете скачать на сайте разработчиков.

Шаблон кода простой утилиты

<!--?xml version="1.0" encoding="UTF-8"?-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template name="">
    ...
    </xsl:template>
</xsl:stylesheet>

Оригинал статьи

Symphony Team
http://getsymphony.com/learn/concepts/view/utilities/

Перевод

Александр Бирюков
http://alexbirukov.ru/2012/06/04/3/