Клиенту потребовалось, чтобы после авторизации юзер видел админ-панель. Проблема была в том, что юзер имеет кой-какие права на ряд скриптов в админке, но редактить сайт не имеет права. Соответственно, панели и нет.
Проблема решается, если добавить свою кнопку на панель. За это отвечает файлик /bitrix/php_interface/include/add_top_panel.php
Пример, идущий в этом файле, можно спокойно выкинуть. [spoiler] Итак, делаем все по-взрослому. 1. Языковые файлы: /bitrix/php_interface/include/lang/язык/add_top_panel.php Подключаем так:
Прим. Функция недокументирована. 2. Тупое добавление кнопки на панель (будет видна на всех вкладках - Просмотр, Редактирование, Разработка) Просто берем пример из доки: Метод CMain::AddPanelButton
3. Панель не резиновая, хочется собрать свои кнопки в единое целое. Лезем в исходники и получаем:
$arMenu = array(); // подпункты меню
$arMenu[] = array(
"TEXT" => 'текст кнопки',
"TITLE" => 'поясняющий текст',
"ICON" => "panel-edit-text", /* код картинки или (не проверял) абсолютный путь к иконке */
"ACTION" => "jsUtils.Redirect(arguments, 'абсолютный URL - какую страницу загружать')", /* мне надо было сразу в админку перекидывать */
"DEFAULT" => false,
);
/* так набиваем пунктов */
$arMenu[] = array('SEPARATOR' => "Y"); // разделитель
И, наконец, добавляем нашем меню:
if (0 < sizeof($arMenu)):
$APPLICATION->AddPanelButton(array(
"HREF" => '', // можно и ссылку. в таком вариант при нажатии откроется меню
"ICON" => "icon-edit",
"ALT" => 'текст кнопки',
"TEXT" => 'поясняющий текст',
"MAIN_SORT" => 1000, // после всех кнопок
"SORT" => 100,
"MENU" => $arMenu,
));
endif;
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».