Установка приложения - TsSaltan/ts-framework GitHub Wiki
Установка начинается после обращения к файлу install.php. Установка происходит в 3 этапа:
- Подключение плагинов, поиск конфликтов и зависимостей
- Заполнение необходимых данных, определённых в плагинах
- Завершение установки
Настройка полей, которые необходимо заполнить во время установки
Чтоб указать необходимые поля, необходимо в плагине создать хук plugin.install. В этом хуке необходимо вернуть массив с объектами PluginInstaller.
Процесс создания объекта
// Сначала указываем имя параметра - это по сути ключ в файле настроек, куда будет сохранено введённое значение
$param = PluginInstaller::withKey('param.key');
/**
* Далее указываем тип поля для ввода данных [необязательно]
* Возможные значения:
* text - [по умолчанию] однострочное текстовое поле
* error - будет выведено сообщение с ошибкой
* numeric - текстовое поле для числовых значений
* email - текстовое поле для email адреса
* select - выбор значения из списка
*/
$param->setType('select');
/**
* Если тип поля - select, необходимо указать список возможных значений
* Необходимо передать либо массив со значениями [va1, va2, val3, ...]
* Либо массив вида [va1 => descript1, va2 => descript2, val3 => descript3, ...]
*/
$param->setValues(['value1' => 'Description1', 'val2' => 'Desc2']);
// Описание поля, которое увидит пользователь во время установки
$param->setDescription("Это описание поля");
// Значение, которое будет вписано по умолчанию [необязательно]
$param->setDefaultValue(123);
// Подсказка, которая будет отображена в пустом поле ввода [необязательно]
$param->setPlaceholder(123);
Пример
<?php
namespace tsframe;
use tsframe\module\user\UserAccess;
Hook::registerOnce('plugin.install', function(){
$userName = PluginInstaller::withKey('user.name')
->setType('text')
->setDescription("Имя пользователя")
->setRequired(true);
$userAccess = PluginInstaller::withKey('access.user.edit')
->setType('select')
->setDescription("Права доступа: редактирование пользователей")
->setDefaultValue(2)
->setValues(array_flip(UserAccess::getArray()));
return [$userName, $userAccess];
});
В результате мы увидим