Работа в административной панели

Страница: «Коханенко → Настройки сайта», /bitrix/admin/kokhanenko_settings.php.

Здесь описано, как добавить раздел или настройку, изменить подпись поля, настроить список и связать поля между собой. Для изменения содержимого уже готовых полей используйте руководство менеджера.

warning

Для этих действий нужно право записи W. Оно разрешает также удалять настройки и разделы. Перед изменением используемых ключей, вариантов списка или связей проверьте вместе с разработчиком, как они задействованы на сайте.

Четыре разные характеристики

ХарактеристикаПримерНазначение
РазделКод contacts, название «Контакты»Пункт навигации и часть адреса для API
Группа«Контактные данные»Визуальное объединение полей внутри раздела
Тип данныхstringФормат хранения и результат API
РедакторinputЭлемент управления в форме

Например, в разделе contacts можно создать группу «Контактные данные» и поместить в неё телефон phone. Разработчик прочитает его через Settings::get('contacts', 'phone', 's1', ''): название группы для этого не требуется.

Включить редактирование и изменить параметры

  1. Выберите сайт и раздел.
  2. Нажмите «Включить редактирование».
  3. Наведите указатель на нужное поле: справа появятся ключ настройки и действия «Изменить» / «Удалить».
  4. Нажмите «Изменить» и поправьте, например, название, подсказку, группу или сортировку.
  5. Сохраните диалог. Текущее значение этой формой не изменяется.
  6. При необходимости выключите режим редактирования, чтобы вернуться к повседневной работе.

Режим редактирования: действия «Изменить» и «Удалить» у настройки buttonTitle

Изменение названия и подсказки

Диалог параметров buttonTitle: рамками выделены доступные для изменения название и подсказка

Что нельзя изменить после создания

У существующей настройки нельзя изменить сайт, раздел, ключ, тип данных и множественность. Эти ограничения не относятся к названию и подсказке — их можно редактировать, как показано выше.

Если требуется перенести настройку на другой сайт или в другой раздел, изменить её ключ, тип или множественность, создайте новую настройку. Затем разработчик должен переключить PHP-код на неё и проверить результат. Только после этого можно удалять старую настройку.

Создать настройку с начальным значением

Создадим поле подписи для кнопки из быстрого старта. Для него нужен родительский переключатель base.useButton с типом boolean.

note

После чистой установки buttonTitle уже существует. В таком случае используйте готовую настройку. Чтобы повторить шаги создания с тем же ключом, нужна тестовая копия, на которой этой настройки ещё нет.

  1. Выберите сайт s1, раздел base.
  2. Нажмите «Добавить новую настройку».
  3. Укажите ключ buttonTitle, название «Подпись кнопки» и подсказку «Текст ссылки на страницу контактов».
  4. Выберите существующую группу или «Создать новую группу…», например «Кнопка связи».
  5. Выберите тип string и редактор «Поле ввода» (input).
  6. Если base.useButton создан как boolean, выберите его в «Родительская настройка».
  7. Укажите сортировку, например 200.
  8. В «Начальное значение» введите «Связаться с нами» и сохраните диалог.

note

Диалог создания сохраняет сразу параметры настройки и её начальное значение. После создания текст можно менять в основной форме, а описание, подсказку и другие параметры — через действие «Изменить».

Ключи и коды разделов начинаются с латинской буквы, далее допускают латинские буквы, цифры и _. Ключ уникален в пределах сайта и раздела. Перед сохранением проверьте результат автоматической транслитерации.

Создание buttonTitle: ключ, тип string, родитель useButton и начальное значение

note

Поле «Показывать в публичном редакторе» в 2.0.0 отключено. Публичный редактор пока недоступен; для изменения значений используйте административную панель.

Списки: код и подпись

Для воспроизводимого примера создайте в contacts на s1 настройку departments: выберите тип enum и редактор «Развёрнутый список» для множественного выбора. Нажмите «Варианты списка», затем «Добавить вариант» для каждой новой строки.

В блоке «Варианты списка» добавьте:

КодПодпись
salesПродажи
supportПоддержка

Код — стабильное значение для PHP. Подпись — текст для человека. Выберите начальный вариант «Поддержка» и сохраните настройку. get() вернёт ['support'], а selectedOptions() — код и подпись. Для одиночного списка get() вернул бы строку 'support'.

Варианты списка: коды sales и support, подписи «Продажи» и «Поддержка»

Безопасно заменить используемый код

  1. Добавьте новый вариант, сохранив старый, и сохраните определение.
  2. В основной форме замените выбранное старое значение новым; сохраните значения.
  3. Проверьте PHP-интеграцию и измените проверки кода в шаблонах, если это необходимо.
  4. Только после этого удалите старый вариант из определения.

warning

Нельзя удалить вариант, пока он выбран в сохранённом значении: проверка может отклонить изменение списка. Сначала замените выбор, как описано выше. Если нужно поменять только отображаемый текст, отредактируйте подпись и оставьте код прежним.

Родительский переключатель

На s1 в base родитель useButton имеет тип boolean, дочернее поле buttonTitle ссылается на него. При выключении родителя дочерний редактор скрывается; при включении снова показывается. Для новых зависимостей используйте логического родителя того же сайта и раздела.

Зависимость buttonTitle от useButton: поле подписи показывается при включённом переключателе

note

Связь с родителем управляет видимостью поля в административной панели. Она не удаляет дочернее значение и не запрещает его чтение из PHP. Перед выводом кнопки разработчик должен отдельно проверить useButton.

Несколько сайтов и область раздела

Перед каждым изменением проверяйте сайт в заголовке. contacts.phone на s1 и s2 — независимые значения; глобальность раздела не создаёт автоматического наследования.

При добавлении раздела заполните код contacts, название «Контакты» и выберите «Область»:

  • «Глобально» — раздел доступен всем сайтам, если не скрыт для конкретного сайта;
  • «Только текущий сайт» — раздел относится к выбранному сайту.

Код и область существующего раздела в диалоге изменения заблокированы. Если contacts уже существует, используйте его; другой сценарий области демонстрируйте на изолированной копии, а не создавайте конфликтующий раздел.

Два состояния формы создания раздела contacts: слева область «Глобально», справа «Только текущий сайт»

Чтобы вернуть скрытый глобальный раздел, нажмите «Подключить существующие группы», отметьте нужный раздел и подтвердите действие. Раздел снова станет видимым; значения с другого сайта при этом не копируются.

Удаление: проверьте последствия

Перед удалением подготовьте резервную копию и выясните, какие шаблоны используют ключи. Тренируйтесь только на изолированном стенде.

Отдельная настройка

Включите редактирование, наведите указатель на нужное поле, нажмите «Удалить» и проверьте ключ в подтверждении. Удаляется настройка по её ID, а не весь раздел. Родителя с дочерними настройками удалить нельзя: сначала нужно изменить связи или удалить дочерние настройки, предварительно проверив использование в коде.

Подтверждение удаления отдельной настройки: в сообщении указан ключ buttonTitle

Раздел

«Удалить текущий раздел настроек» — другая операция. На уровне контроллера предусмотрены области site и global:

ОперацияПоследствие
site для локального разделаУдаление локального раздела и его настроек на текущем сайте
site для глобального разделаСкрытие глобального раздела на текущем сайте
globalУдаление разделов и связанных настроек с этим кодом на всех сайтах

warning

В интерфейсе 2.0.0 область удаления не выбирается в диалоге. Для локального раздела кнопка выполняет удаление на текущем сайте, а для глобального — на всех сайтах. Не нажимайте «Удалить» у глобального раздела, если хотите лишь убрать его из интерфейса одного сайта.

Подтверждение удаления глобального раздела «Основные настройки» — base; операция затронет все сайты

Повторное подключение скрытого раздела не восстанавливает удалённые строки. Для восстановления удалённых данных нужна резервная копия. Удаление самого модуля рассматривается в отдельной статье.