Программное добавление пункта в левою меню Битрикс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/");

Яндекс.Метрика