Как узнать что включен режим правки?
В коде. Есть метод $APPLICATION->GetShowIncludeAreas(), возвращает true если режим правки включен. Всё просто:
global $APPLICATION; if ($APPLICATION->GetShowIncludeAreas()) { // режим правки включен } else { // режим правки выключен }
Тут столкнулся с интересным багом. В режиме правки компоненты добавляют различные кнопки (например для добавления/удаления элементов инфоблока). Делается это с помощью метода CIBlock::GetPanelButtons(). Так вот в этом методе делаются запросы в БД сразу, без проверки "а нужны ли вообще данные для создания кнопок" (включен ли режим правки). Не очень оптимально, но это ядро, в него просто так правки не внести.
Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.