Skip to content

Framework setup

TsSaltan edited this page Jan 13, 2022 · 1 revision

Установка начинается после обращения к скрипту фреймфорка. Установка происходит в 3 этапа:

  1. Подключение плагинов, поиск конфликтов и зависимостей
  2. Заполнение необходимых данных, определённых в плагинах
  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];
});

В результате мы увидим Screenshot