Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Итак, представьте задача - написать отдельную админ.страницу для управления свойствами каталога. Саму страницу здесь рассматривать не будем, а только ее место в админ.части. Статья ниже предполагает ваше знакомство с событиями аминистративной части.
Где ожидает увидеть ее пользователь?
В данной задаче речь шла не совсем о свойствах инфоблока, а скорее о продолжении каталога как часть работ контент-менеджера. То есть, привязки к инфоблокам, которые он все (из разных ИБ) мог зайти и поправить на одной странице. Вариант размещения такого контента в настройках инфоблока (можно было бы добавить новую вкладку) чреват - давать права на управление не хотелось. Поэтому, размещаем ссылку на новую страницу здесь:

Код обработчика следующий:
mn_catalog_props.php это админ.страница с нужным нам кодом, лежащая в корне /bitrix/admin. Все как и надо. Но вот незадача - при переходе по такой ссылке выделение в меню слетает и пользователя выкидывает из каталога. Надо переопределить главное меню каталога, дополнив его новой ссылкой. За это отвечает событие OnBuildGlobalMenu. Принцип работы с переменными в этом обработчике каждый раз разный, единого рецепта не существует. Для начала просто рекомендую вывести дерево меню на экран и посмотреть к чему можно прицепиться.
Я нашел следующее простое условие:
catalog - это тип целевого инфоблока. То есть, мы просто дополнили пункт меню для типа ИБ catalog новым URL.
В итоге получили то, что и хотели - при переходе по новой ссылке подсвечивается системный пункт меню
Назад в раздел
Наверх
то ждем ваше обращение в нашей службе тех поддержки.
Внедряемся в любой пункт меню в админке, часть вторая
Я сторонник минимализма инструментов и их контекстного расположения. Именно поэтому высказываю недовольства при виде левых страниц админки, где их может и не быть. Меньше страниц > меньше документации > счастливее юзер. Вот главный постулат, который я применяю на практике. В я поднимал тему, что выводите страницы там, где их ожидает увидеть юзер. Немного дополню эту тему новым постом.Итак, представьте задача - написать отдельную админ.страницу для управления свойствами каталога. Саму страницу здесь рассматривать не будем, а только ее место в админ.части. Статья ниже предполагает ваше знакомство с событиями аминистративной части.
Где ожидает увидеть ее пользователь?
В данной задаче речь шла не совсем о свойствах инфоблока, а скорее о продолжении каталога как часть работ контент-менеджера. То есть, привязки к инфоблокам, которые он все (из разных ИБ) мог зайти и поправить на одной странице. Вариант размещения такого контента в настройках инфоблока (можно было бы добавить новую вкладку) чреват - давать права на управление не хотелось. Поэтому, размещаем ссылку на новую страницу здесь:

Код обработчика следующий:
public static function OnAdminListDisplay(&$list) {
$strCurPage = $GLOBALS['APPLICATION']->GetCurPage();
if (($strCurPage=='/bitrix/admin/iblock_list_admin.php' ||
$strCurPage=='/bitrix/admin/iblock_element_admin.php' ||
$strCurPage=='/bitrix/admin/iblock_section_admin.php') &&
$_REQUEST['IBLOCK_ID']==1
) {
$list->context->additional_items[] = array(
'TEXT' => 'Свойства каталога',
'TITLE' => 'Настройка свойств каталога',
'GLOBAL_ICON' => 'adm-menu-setting',
'ONCLICK' => "location.href='mn_catalog_props.php'"
);
}
} |
Я нашел следующее простое условие:
public static function OnBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu) {
foreach ($aModuleMenu as &$arItem) {
if ($arItem['items_id'] == 'menu_iblock_/catalog') {
$arItem['items'][0]['more_url'][] = 'mn_catalog_props.php';
}
}
} |
В итоге получили то, что и хотели - при переходе по новой ссылке подсвечивается системный пункт меню
Назад в раздел
Подписаться на новые материалы раздела:
Загрузка...
Наверх