home chevron_right
Панель в публичной части: что добавляется и условия показа

В вашей текущей схеме “панель в публичке” фактически состоит из двух независимых механизмов:

  1. Кнопки в панели 1С-Битрикс (верхняя админ-панель на сайте) Они добавляются в проектном {site_dir}/simai.data/template/panel.php и появляются только при выполнении условия:
  • пользователь — администратор ($USER->IsAdmin()).

Сейчас в активной части кода добавляются кнопки со ссылками (в том числе с меню), которые открывают страницы документации/сайта SIMAI. Блок с “диалогом свойств” (кнопка настроек/свойств) у вас закомментирован и, по твоему правилу, не считается используемой функциональностью — в документации SF4 для ваших проектов мы это не описываем как доступную возможность.

  1. Оверлеи/кнопки редактирования поверх контента (SF4-режимы development/edit) Это уже не “верхняя панель Bitrix”, а элементы поверх блоков/элементов, которые SF4 умеет рисовать в публичной части через хелперы SIMAI\Main\Block\Edit. Тут управление идёт через свойства уровня сайта (итоговые значения лежат в SIMAI\Main\Configuration\Property, то есть в session-store, который вы собираете в property.php):
  • development_mode = "Y" — включает “зону конфигурации” (визуальный оверлей с шестерёнкой) для блоков; по клику открывается админ-страница конфигурации блока;
  • edit_mode = "Y" — включает кнопки добавления/редактирования/удаления для данных инфоблока, но только если права на инфоблок позволяют запись (CIBlock::GetPermission(...) >= 'W');
  • iblock_public_editor = "Y" — переключает открытие форм редактирования на ваши публичные/проектные обработчики в SF_DATA_DIR/admin/... (вместо стандартного попапа Bitrix на /bitrix/admin/iblock_element_edit.php).

Практически это даёт два режима эксплуатации:

  • если iblock_public_editor != "Y" — SF4 использует стандартное битриксовое редактирование (попап-форма админки);
  • если iblock_public_editor = "Y" — SF4 открывает ваши “облегчённые” формы в модальном окне (через sf-modal и обработчики в simai.data/admin/...).

Минимальный пример того, как такие оверлеи подключаются “на месте” в шаблонах/блоках (как API-паттерн):

<?php

use SIMAI\Main\Block\Edit;

// Оверлей с кнопками редактирования для элемента инфоблока
echo Edit::addEditItemArea($elementId);

// Оверлей "добавить новый элемент" для инфоблока
echo Edit::addNewItemArea($iblockId);