Каждое приложение может предоставлять собственный набор методов для добавления некоторых данных во фронтенд любых приложений. Например, некоторое аналитическое приложение может таким образом сформировать блок HTML-кода для отображения графика продаж на страницах сайта.
При написании собственного приложения удобно оформлять такие методы, предназначенные для использования в шаблонах фронтенда, в виде класса-хелпера. Класс-хелпер рекомендуется поместить в директорию wa-apps/[app_id]/lib/classes/, имя файла класса должно быть построено по правилу [app_id]ViewHelper.class.php, а имя класса должно иметь вид [app_id]ViewHelper.
Например, для некоторого приложения с идентификатором stats файл-хелпер должен располагаться по адресу wa-apps/stats/lib/classes/statsViewHelper.class.php и иметь следующий вид:
<?php
class statsViewHelper
{
public function getChartHtml()
{
…
return …;
}
}
Для отображения некоторого графика, HTML-код которого возвращается методом getChartHtml() из этого примера, в шаблоне фронтенда необходимо использовать вызов этого метода следующим образом:
{$wa->stats->getChartHtml()}
Пользовательские хелперы
В дополнение к хелперам, описанным в «Шпаргалке» редактора дизайна (читайте подробнее об этом в статье об интеграции с приложением «Сайт»), и возможности написания плагинов фреймворк также позволяет создавать собственные функции-хелперы для использования в шаблонах темы дизайна.
Основное отличие хелпера от плагина состоит в том, что место размещения хелпера в шаблоне не ограничено имеющимися хуками; кроме того, хелпер обычно обладает более ограниченной функциональностью по сравнению с плагином (который может предоставлять собственный интерфейс настроек в бекенде и использовать собственные таблицы в базе данных). Можно рассматривать собственную функцию-хелпер в качестве «мини-плагина».
Пользовательские функции-хелперы доступны в пределах шаблонов того приложения, для которого они созданы.
Для написания собственного хелпера для какого-либо приложения создайте файл пользовательского класса [app_id]Custom.class.php в директории wa-apps/[app_id]/lib/classes/ этого приложения. Например, файл пользовательского класса для Shop-Script должен быть создан по адресу wa-apps/shop/lib/classes/shopCustom.class.php. Имя класса в таком файле должно быть построено по правилу [app_id]Custom, например: shopCustom.
Имя класса с пользовательскими хелперами (и соответствующее ему имя файла) может быть произвольным, необязательно соответствующим приведенному выше правилу. ИдентификаторCustomв предложенном правиле позволяет лишь с высокой степенью вероятности гарантировать, что среди стандартных классов приложения не появится класс с таким же именем, и таким образом помогает исключить возможность возникновения конфликта имен. Для удобства группировки хелперов можно создавать несколько пользовательских классов, формируя их имена в соответствии с этим принципом (например,shopMyHelperилиshopExtraSnippets).
Хелперы оформляются в виде методов пользовательского класса, объявленных с модификаторами доступа public static.
Файлы пользовательских классов не затрагиваются при установке обновлений через «Инсталлер».
Ниже приведен пример содержимого файла пользовательского класса с объявлением метода someHelper() для использования в шаблонах витрины Shop-Script:
<?php
class shopCustom
{
public static function someHelper()
{
...
return ...;
}
}
Для вызова метода someHelper() из этого примера в шаблонах фронтенда используйте следующий синтаксис:
{shopCustom::someHelper()}
Для корректной работы хелпера может потребоваться очистка кеша в «Инсталлере».









