Клиенту потребовалось, чтобы после авторизации юзер видел админ-панель. Проблема была в том, что юзер имеет кой-какие права на ряд скриптов в админке, но редактить сайт не имеет права. Соответственно, панели и нет.
Проблема решается, если добавить свою кнопку на панель. За это отвечает файлик /bitrix/php_interface/include/add_top_panel.php
Пример, идущий в этом файле, можно спокойно выкинуть.
[spoiler]
Итак, делаем все по-взрослому.
1. Языковые файлы:
/bitrix/php_interface/include/lang/язык/add_top_panel.php
Подключаем так:
Прим. Функция недокументирована.
2. Тупое добавление кнопки на панель (будет видна на всех вкладках - Просмотр, Редактирование, Разработка)
Просто берем пример из доки:
3. Панель не резиновая, хочется собрать свои кнопки в единое целое. Лезем в исходники и получаем:
И, наконец, добавляем нашем меню:
Результат - на скриншоте:

Проблема решается, если добавить свою кнопку на панель. За это отвечает файлик /bitrix/php_interface/include/add_top_panel.php
Пример, идущий в этом файле, можно спокойно выкинуть.
[spoiler]
Итак, делаем все по-взрослому.
1. Языковые файлы:
/bitrix/php_interface/include/lang/язык/add_top_panel.php
Подключаем так:
__IncludeLang($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/include/lang/'.LANGUAGE_ID.'/'.basename(__FILE__)); |
Прим. Функция недокументирована.
2. Тупое добавление кнопки на панель (будет видна на всех вкладках - Просмотр, Редактирование, Разработка)
Просто берем пример из доки:
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; |
Результат - на скриншоте:
