Класс waPlugin
используется для создания плагинов к приложениям Webasyst. Основной класс плагина должен быть унаследован от базового класса waPlugin
или его наследника, например, от класса shopPlugin
в приложении Shop-Script.
Методы
-
addCss
Добавляет URL CSS-файла в список файлов, возвращаемых методом
{$wa->css()}
. -
addJs
Добавляет URL JavaScript-файла в список файлов, возвращаемых методом
{$wa->js()}
. -
getId
Возвращает ID плагина.
-
getName
Возвращает локализованное название плагина.
-
getPluginStaticUrl
Возвращает URL корневой директории плагина.
-
getRights
Возвращает информацию об уровне доступа текущего пользователя к функциям бекенда плагина.
-
getSettings
Возвращает информацию о настройках плагина.
-
saveSettings
Сохраняет настройки плагина.
-
getVersion
Возвращает номер версии плагина.
protected function addCss ($url, $is_plugin = true)
Добавляет URL CSS-файла в список файлов, возвращаемых методом {$wa->css()}
.
Параметры
-
$url
URL CSS-файла.
Если значение параметра
$is_plugin
эквивалентноtrue
, то в параметре$url
нужно передать относительный URL CSS-файла с учетом URL корневой директории плагина.Если в URL отсутствуют GET-параметры, то к URL добавляется пустой GET-параметр с именем, состоящим из номера версии плагина. Если включен режим отладки, то к URL файла в этом случае дополнительно добавляется точка и текущая метка времени. Это полезно для автоматического обновления CSS-файлов в кеше браузера во время разработки плагина.
-
$is_plugin
Флаг, обозначающий, передан ли в параметре
$url
относительный URL CSS-файла с учетом URL корневой директории плагина. В противном случае URL считается абсолютным или указанным без учета корневой директории плагина.
Пример
//относительно корневой директории плагина $this->addCss('css/backend.css'); //абсолютный $this->addCss(wa()->getConfig()->getRootUrl(true).'wa-content/css/wa/design.css', false);
protected function addJs ($url, $is_plugin = true)
Добавляет URL JavaScript-файла в список файлов, возвращаемых методом {$wa->js()}
.
Параметры
-
$url
URL JavaScript-файла.
Если значение параметра
$is_plugin
эквивалентноtrue
, то в параметре$url
нужно передать относительный URL JavaScript-файла с учетом URL корневой директории плагина.Если в URL отсутствуют GET-параметры с символом ?, то к URL добавляется пустой GET-параметр с именем, состоящим из номера версии плагина. Если включен режим отладки, то к URL файла в этом случае дополнительно добавляется точка и текущая метка времени. Это полезно для автоматического обновления JavaScript-файлов в кеше браузера во время разработки плагина.
-
$is_plugin
Флаг, обозначающий, передан ли в параметре
$url
относительный URL JavaScript-файла с учетом URL корневой директории плагина. В противном случае URL считается абсолютным или указанным без учета корневой директории плагина.
Пример
//относительно корневой директории плагина $this->addJs('js/backend.js'); //абсолютный $this->addJs(wa()->getConfig()->getRootUrl(true).'wa-content/js/jquery-wa/editor.js', false);
public function getId()
Возвращает ID плагина.
Пример
$plugin_id = wa('someapp')->getPlugin('myplugin')->getId();
public function getName()
Возвращает локализованное название плагина.
Пример
$plugin_name = wa('someapp')->getPlugin('myplugin')->getName();
public function getPluginStaticUrl ($absolute = false)
Возвращает URL корневой директории плагина.
Параметры
-
$absolute
Флаг, требующий вернуть абсолютный URL. По умолчанию метод возвращает относительный URL.
Пример
//относительный $plugin_url = wa('someapp')->getPlugin('myplugin')->getPluginStaticUrl(); //абсолютный $plugin_url = wa('someapp')->getPlugin('myplugin')->getPluginStaticUrl(true);
Результат
'/wa-apps/someapp/plugins/myplugin/' 'https://mydomain.ru/wa-apps/someapp/plugins/myplugin/'
public function getRights ($name = '', $assoc = true)
Возвращает информацию об уровне доступа текущего пользователя к функциям бекенда плагина.
Параметры
-
$name
Идентификатор уровня доступа. Для настроек прав доступа с типом list в конце идентификатора нужно добавить точку и символ «%», чтобы получить массив выбранных значений. Структура массива, возвращаемого методом, в этом случае зависит от значения параметра
$assoc
. -
$assoc
Флаг, с помощью которого можно выбрать структуру возвращаемого массива выбранных значений настройки прав доступа с типом list:
- true (значение по умолчанию): в качестве ключей массива используются идентификаторы выбранных элементов (флажков) настройки права доступа, включённых для данного пользователя, а в качестве значений массива — число 1.
- false: ключи массива нумеруются автоматически начиная с 0, а в качестве значений используются идентификаторы выбранных элементов настройки права доступа.
Пример
// в обработчике хука 'rights.config' $config->addItem('plugin.myplugin.checkbox_setting', _wp('Can do something')); $config->addItem('plugin.myplugin.groupbox_setting', _wp('Can do the following'), 'list', [ 'items' => [ 'id1' => 'option 1', 'id2' => 'option 2', ], ]); // в коде, где нужна проверка прав доступа $plugin = wa('someapp')->getPlugin('myplugin'); if ($plugin->getRights('checkbox_setting')) { // у пользователя включена настройка доступа с ключом 'checkbox_setting' } $enabled_groupbox_rights_options = $plugin->getRights('groupbox_setting.%', false); if (in_array('id1', $enabled_groupbox_rights_options)) { // пользователь имеет доступ к функции 'option 1' }
public function getSettings ($name = null)
Возвращает информацию о настройках плагина, описанных в конфигурационном файле settings.php
.
Параметры
-
$name
Идентификатор настройки, значение которой нужно вернуть. Если не указать идентификатор (поведение по умолчанию), то метод вернет информацию обо всех настройках плагина.
Пример
//все настройки wa('someapp')->getPlugin('myplugin')->getSettings() //одна настройка wa('someapp')->getPlugin('myplugin')->getSettings('some_setting')
public function saveSettings ($settings = [])
Сохраняет настройки плагина.
Параметры
-
$settings
Массив настроек, ключи элементов которого соответствуют идентификаторам полей настроек плагина, описанных в его конфигурационном файле
settings.php
.
Пример
wa('someapp')->getPlugin('myplugin')->saveSettings([ 'some_setting' => '...', // какое-то значение 'another_setting' => '...', // какое-то значение ])
public function getVersion()
Возвращает номер версии плагина. Информация о версии извлекается из конфигурационного файла plugin.php
. Если в этом файле есть значение с ключом 'build'
, то к номеру версии добавляется точка со значением этого параметра.
Пример
$plugin_version = wa('someapp')->getPlugin('myplugin')->getVersion();
Результат
//без 'build' 1.2.4 //с 'build' 1.2.4.382