Программное добавление пункта в левою меню Битрикс24
1289
$siteID = 's1';
//- устанавливаем флаг custom модуля intranet
\COption::SetOptionString("intranet", "left_menu_preset", "custom", false, $siteID);
// - получаем ранее предустановленные пункты
$customItems = COption::GetOptionString("intranet", "left_menu_custom_preset_items", "", $siteID);
//если пункты меню есть, то создаем PHP-значение из хранимого представления и добавляем элемент в массив
$customItems = unserialize($customItems);
if($customItems) {
$customItems = array_merge($customItems, array(array(
"ID" => 'id-item', //индификатор добавляемого элемента
"LINK" => "/link-item/", //ссылка пункта меню
"TEXT" => "name-item" //название пункта меню)));
}else{
//иначе создаем массив
$customItems = array_merge($customItems, array(array(
"ID" => 'id-item',
"LINK" => "/link-item/",
"TEXT" => "name-item")));
}
}
//устанавливаем опцию
\COption::SetOptionString("intranet", "left_menu_custom_preset_items", serialize($customItems), false, $siteID);
//получаем сортировку ранее предустановленных пунктов, для того что бы вывести наш добавляемый пункт меню первым
$customItemsSort = \COption::GetOptionString("intranet", "left_menu_custom_preset_sort", "", $siteID);
$customItemsSort = unserialize($customItemsSort);
if($customItemsSort["show"]) { //выбираем массив не скрытых пунктов меню
array_unshift($customItemsSort["show"], 'id-item'); // добавляем наш пункт первым
//записываем опцию
\COption::SetOptionString("intranet", "left_menu_custom_preset_sort", serialize($customItemsSort), false, $siteID);
}
//если необходимо сделать главным пункт меню по умолчанию:
\CUserOptions::SetOption("intranet", "left_menu_first_page_".$siteID, "/id-item/");