Download the PHP package fi1a/usersettings without Composer
On this page you can find all versions of the php package fi1a/usersettings. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download fi1a/usersettings
More information about fi1a/usersettings
Files in fi1a/usersettings
Package usersettings
Short Description Модуль 1С-Битрикс "Пользовательские настройки". Предоставляет страницу с пользовательскими настройками сайта.
License MIT
Homepage https://github.com/fi1a/usersettings
Informations about the package usersettings
Модуль 1С-Битрикс "Пользовательские настройки"
Позволяет создать административную страницу с пользовательскими настройками. Предоставляет удобное API для создания вкладок и полей, что дает возможность использовать этот модуль совместно с модулями миграций. События дают возможность вносить изменения в устанавливаемое значение настройки или выполнить какие-либо действия при добавлении/удалении/обновлении вкладок или полей.
Описание модуля
Данный модуль решает задачи добавления настроек для вашего проекта. Например: включение/отключение, даты для реализации активности какого-либо функционала, тексты. Типы полей в настройках ограничены типами пользовательских полей, т.е. вы легко можете добавить свой тип поля для настроек.
Преимущества модуля
- Расположение ссылки в меню со страницей пользовательских настроек можно расположить в любом основном разделе. Также возможна настройка названия страницы и название ссылки пользовательских настроек;
- В настройках модуля можно добавить вкладки и в них поля;
- Для вкладок и полей предусмотрена сортировка, что позволяет настроить расположение их на странице пользовательских настроек;
- В качестве полей модуля выступают пользовательские поля, что позволяет добавить в настройки любой из доступных типов пользовательских полей (строка, дата и т.д.);
- Поддерживаются множественные значения для настроек;
- Предусмотрены гибкие настройки прав доступа для просмотра/редактирования пользовательских настроек и просмотра/редактирования полей, вкладок;
- Для вкладок есть возможность указать название и заголовок, для полей - название и подсказку;
- Используя API легко можно добавить вкладку или поле, это позволяет писать миграции;
- Система событий дает возможность вносить изменения при установке значения настройки или выполнить какие-либо действия при добавлении/удалении/обновлении вкладок или полей.
Список поддерживаемых типов полей
Из коробки вам будут доступны следующие типы полей:
- Адрес;
- Бронирование ресурсов;
- Видео;
- Да/Нет;
- Дата;
- Дата со временем;
- Деньги;
- Опрос;
- Письмо (email);
- Привязка к разделам инф. блоков;
- Привязка к элементам highload-блоков;
- Привязка к элементам инф. блоков;
- Содержимое ссылки;
- Список;
- Ссылка;
- Строка;
- Файл;
- Целое число;
- Число;
- Шаблон.
список актуален на момент релиза модуля для «1С-Битрикс: Управление сайтом» редакции "Бизнес"
Изображения модуля
Добавление новой вкладки:
Добавление поля для пользовательских настроек:
Редактирование пользовательских настроек
Внешний вид пользовательских настроек
Установка модуля из Маркетплейса 1С-Битрикс
Модуль можно установить из Маркетплейса 1С-Битрикс "Пользовательские настройки"
Перед установкой модуля следует установить модуль "Обертка над composer для установки зависимостей" если он еще не установлен. Модуль необходим для установки зависимостей через composer.
После чего модуль устанавливается и удаляется как любой модуль из маркетплейса.
Установка модуля через composer
В вашем composer.json проекта необходимо указать:
- в блоке require указать инсталятор ;
- в блоке require указать модуль ;
- указать путь до 1С-Битрикс (
bitrix-dir
) для копирования модулей при установке .
Пример файла composer.json проекта:
Затем выполняем установку пакетов командой .
Если у вас не подключен composer autoload.php, его необходимо подключить в файле local/php_interface/init.php
Если модуль не установили через composer, его необходимо установить из админки 1С-Битрикс (Marketplace > Установленные решения > модуль "Пользовательские настройки (fi1a.usersettings)").
После установки проверьте права на чтение файлов и папок модуля.
Поддержка миграций
Начиная с версии 1.2.0 появилась поддержка миграций модуля "Миграции для разработчиков" (sprint.migration)
Добавлен хелпер и билдер
Использование хелпера:
Создание миграции доступно в разделе "Инструменты" под пунктом "Пользовательские настройки" на странице управления миграциями модуля "Миграции для разработчиков" (sprint.migration).
Работа со значениями полей
Класс предназначен для работы со значениями полей. Класс реализует паттерн Singleton и для получения экземпляра класса следует использовать метод .
Получить значение поля
Для получения значения поля по символьному коду необходимо воспользоваться методом .
Аргумент | Описание |
---|---|
string $key | Символьный код поля |
$default | Значение, которое вернется при отсутсвии значения в БД |
Метод предназначен для получения значений по всем пользовательским полям.
Установить значение поля
Для установки значения поля используется метод . В этом методе реализована валидация значения поля. Метод возвращает экземпляр класса и проверить наличие ошибки при установке значения можно методом .
Аргумент | Описание |
---|---|
string $key | Символьный код поля |
$value | Новое значение поля |
Сбросить кеш значений
При изменении структуры или установки значения кеш автоматически очищается. Метод пригодится для принудительной очистки кеша при изменениях не через API модуля.
Выборка, добавление, обновление, удаление вкладок
Работа с вкладками реализуется тремя классами:
- — маппер вкладок пользовательских настроек;
- — класс вкладки в пользовательских настройках;
- — коллекция экземпляров классов вкладок пользовательских настроек.
Подробнее на них остановимся ниже.
Добавление вкладки
Класс вкладки является наследником класса . Для начала нужно получить экземпляр класса вкладки используя фабричный метод передав в него все необходимые парамеры. Данный метод является статичным. После того как мы получили экземпляр класса вызовем метод , который вернет результат в виде объкта класса . Успешность выполнения операции можно проверить методом класса .
Описание полей:
- — активность вкладки. Определяет будет ли выведена вкладка на странице пользовательских настроек;
- — символьный код вкладки;
- — сортировка вкладки. Определяет в какой последовательности будут выведены вкладки на странице пользовательских настроек;
- — массив с языковыми сообщениями. Ключем является символьный код языка.
- — название вкладки;
- — заголовок вкладки.
Выборка вкладок
Основным метод для выборки вкладок является метод
класса . Данный метод принимает в качестве аргумента массив аналогичный синтаксису ORM D7. Метод возвращает коллекцию классов вкладок . При пустом результате выборки класс коллекции вернется с нулевым количеством элементов.
Аргумент | Описание |
---|---|
array $parameters | Параметры getList |
Предыдущий пример можно заменить с использованием метода . Данный метод выполняет выборку всех активных вкладок с возможностью дополнительной фильтрации или сортировки путем передачи аргумента аналогичного ORM D7.
Аргумент | Описание |
---|---|
array $parameters | Параметры getList |
Метод осуществляет поиск вкладки по идентификатору. В отличие от методов и возвращает не коллекцию вкладок, а экземпляр класса вкладки . Если вкладку не удалось найти по идентификатору, метод вернет значение .
Аргумент | Описание |
---|---|
int $id | Идентификатор вкладки |
Обновление вкладки
Для обновления вкладки следует использовать метод класса , который вернет результат в виде объкта класса . Успешность выполнения операции можно проверить методом класса .
Сохранение вкладки
Метод осуществляет добавление или обновление вкладки в зависимости от наличия значения (первичного ключа).
Обновление с использованием метода
Добавление с использованием метода
Удаление вкладки
Для удаления вкладки следует использовать метод класса , который вернет результат в виде объкта класса . Успешность выполнения операции можно проверить методом класса .
Выборка, добавление, обновление, удаление полей
Работа с полями реализуется тремя классами:
- — маппер полей пользовательских настроек;
- — класс поля пользовательских настройках;
- — коллекция экземпляров классов полей пользовательских настроек.
Подробнее на них остановимся ниже.
Добавление поля
Класс поля является наследником класса . Для начала нужно получить экземпляр класса поля, используя фабричный метод , передав в него все необходимые парамеры. Данный метод является статичным. После того как мы получили экземпляр класса вызовем метод , который вернет результат в виде объкта класса . Успешность выполнения операции можно проверить методом класса .
Ниже приведен пример добавления поля с типом строка.
Описание полей:
- — активность поля. Определяет будет ли выведено поле на странице пользовательских настроек;
- — идентификатор вкладки, которой принадлежит поле;
- — массив с настройками пользовательского поля.
Выборка полей
Основным методом для выборки полей является
класса . Данный метод принимает в качестве аргумента массив аналогичный синтаксису ORM D7. Метод возвращает коллекцию классов полей . При пустом результате выборки класс коллекции вернется с нулевым количеством элементов.
Аргумент | Описание |
---|---|
array $parameters | Параметры getList |
Предыдущий пример можно заменить с использованием метода . Данный метод выполняет выборку всех активных полей с возможностью дополнительной фильтрации или сортировки путем передачи аргумента аналогичного ORM D7.
Аргумент | Описание |
---|---|
array $parameters | Параметры getList |
Метод осуществляет поиск поля по идентификатору (не по идентификатору пользовательского поля). В отличие от методов и возвращает не коллекцию полей, а экземпляр класса поля . Если поле не удалось найти по идентификатору, метод вернет значение .
Аргумент | Описание |
---|---|
int $id | Идентификатор поля |
Для выбора всех полей вкладки можно использовать метод . Метод вернет коллекцию полей принадлежащих вкладки с идентификатором .
Аргумент | Описание |
---|---|
int $tabId | Идентификатор вкладки поля |
Для выбора поля по символьному коду можно использовать метод . Метод вернет поле с символьным кодом или false, если поле с символьным кодом не найдено.
Аргумент | Описание |
---|---|
string $code | Символьный код поля |
Обновление поля
Для обновления поля следует использовать метод класса , который вернет результат в виде объекта класса . Успешность выполнения операции можно проверить методом класса .
Сохранение поля
Метод осуществляет добавление или обновление поля в зависимости от наличия значения (первичного ключа).
Обновление с использованием метода
Добавление с использованием метода
Удаление поля
Для удаления поля следует использовать метод класса , который вернет результат в виде объкта класса >. Успешность выполнения операции можно проверить методом класса .
Значения поля типа "список"
Получить значения поля типа "список" можно с помощью класса-хелпера метода
передав в качестве аргумента объект поля Fi1a\UserSettings\FieldInterface
типа "список".
События модуля
В модуле предусмотрены события, которые позволяют модифицировать данные или расширить функционал модуля. Пример использования событий:
События связанные со значениями полей
OnOptionGet
— вызывается ДО возврата значения поля методомget(string $key, $default = null)
класса\Fi1a\UserSettings\Option
;OnBeforeOptionSet
— вызывается ДО установки значения поля методомset(string $key, $value): Result
класса\Fi1a\UserSettings\Option
;OnAfterOptionSet
— вызывается ПОСЛЕ установки значения поля методомset(string $key, $value): Result
класса\Fi1a\UserSettings\Option
.
События связанные с вкладками
OnBeforeTabAdd
— вызывается ДО добавления новой вкладки методомadd(): AddResult
класса\Fi1a\UserSettings\Tab
;OnAfterTabAdd
— вызывается ПОСЛЕ добавления новой вкладки методомadd(): AddResult
класса\Fi1a\UserSettings\Tab
;OnBeforeTabUpdate
— вызывается ДО обновления вкладки методомupdate(): UpdateResult
класса\Fi1a\UserSettings\Tab
;OnAfterTabUpdate
— вызывается ПОСЛЕ обновления вкладки методомupdate(): UpdateResult
класса\Fi1a\UserSettings\Tab
;OnBeforeTabDelete
— вызывается ДО удаления вкладки методомdelete(): DeleteResult
класса\Fi1a\UserSettings\Tab
;OnAfterTabDelete
— вызывается ПОСЛЕ удаления вкладки методомdelete(): DeleteResult
класса\Fi1a\UserSettings\Tab
.
События связанные с полями
OnBeforeFieldAdd
— вызывается ДО добавления нового поля методомadd(): AddResult
класса\Fi1a\UserSettings\Field
;OnAfterFieldAdd
— вызывается ПОСЛЕ добавления нового поля методомadd(): AddResult
класса\Fi1a\UserSettings\Field
;OnBeforeFieldUpdate
— вызывается ДО обновления поля методомupdate(): UpdateResult
класса\Fi1a\UserSettings\Field
;OnAfterFieldUpdate
— вызывается ПОСЛЕ обновления поля методомupdate(): UpdateResult
класса\Fi1a\UserSettings\Field
;OnBeforeFieldDelete
— вызывается ДО удаления поля методомdelete(): DeleteResult
класса\Fi1a\UserSettings\Field
;OnAfterFieldDelete
— вызывается ПОСЛЕ удаления поля методомdelete(): DeleteResult
класса\Fi1a\UserSettings\Field
.