Вы создали новую страницу в Битриксе24 и хотели бы, чтобы посетители могли открыть ее. Тогда нужно добавить ее как новый пункт меню слева. Как это сделать?
В битриксе уже есть класс для добавления пунктов меню \Bitrix\Intranet\Controller\LeftMenu() .
Это контроллер предназачен для работы по методу REST. То есть, вы можете отправить к нему запрос или через BX.rest.callMethod('intranet.leftmenu.addSelfItem') , так и отравив запрос на ссылку http://bitrix.local/rest/intranet.leftmenu.addSelfItem.json
Я же воспользовался методом черного ящика и создал контроллер напрямую.
Чтобы добавить пункт меню в избранное, нужно вызвать метод:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/header.php'); $_POST['itemData'] = ['text' => 'Ссылка на важную страницу', 'link' => '/local/my-app/index.html']; $controller = new \Bitrix\Intranet\Controller\LeftMenu(); $response = $controller->addSelfItemAction(); var_dump($response); // что выведет // array (size=1) // 'itemId' => int 1290779280 |
Важно сохранить $response, в нем будет хранится ИД пункта меню. Он понадобится для удаления меню или добавление его для всех сотрудников.
Как добавить пункт меню для всех?
Добавить пункт меню для всех можно командой:
1 2 3 4 5 6 7 8 9 10 11 |
$controller = new \Bitrix\Intranet\Controller\LeftMenu(); $_POST['itemInfo'] = [ 'text' => 'Ссылка на важную страницу', 'link' => '/local/my-app/index.html', 'id' => 1290779280, 'openInNewPage' => 'Y' ]; $controller->addItemToAllAction(); |
‘id’ => 1290779280, откуда взять ид? Ид взять из предыдущего метода $controller->addSelfItemAction()
Теперь ссылка появится у всех
Как удалить пункт меню?
Удаление происходит схожим образом
1 2 3 4 5 6 |
$controller = new \Bitrix\Intranet\Controller\LeftMenu(); $controller->deleteSelfItemAction(1290779280); $_POST['menu_item_id'] = 1290779280; $controller->deleteItemFromAllAction(); |
Теперь вы без труда сможете добавлять, удалять пункты меню из левого главного меню Битрикс24.
Например, при установке какого либо модуля можно добавить ссылки на его страницы. А при удалении модуля очистить все ссылки
· Permalink
Просто круто, и большое спасибо