• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/ui/navigationbarpanel.php
  • Класс: Bitrix\Crm\UI\NavigationBarPanel
  • Вызов: NavigationBarPanel::setItems
public function setItems(array $ids, string $activeId = ''): self
{
	if (empty($activeId) || !in_array($activeId, $this->getAllowableItemsList(false), true))
	{
		$activeId = self::ID_LIST;
	}

	foreach ($ids as $id)
	{
		if (!in_array($id, $this->getAllowableItemsList(), true))
		{
			continue;
		}

		if ($id === self::ID_CALENDAR && !Calendar::isResourceBookingEnabled())
		{
			continue;
		}

		if ($id === self::ID_AUTOMATION)
		{
			$automationButton = Helper::getNavigationBarItems($this->entityTypeId, $this->categoryId);
			if (!empty($automationButton))
			{
				$this->items[] = $automationButton[0];
			}
		}
		else
		{
			$lockedCallback = '';
			if ($id === self::ID_ACTIVITY)
			{
				$activityFieldRestrictionManager = new ActivityFieldRestrictionManager();
				if ($activityFieldRestrictionManager->hasRestrictions())
				{
					$lockedCallback = $activityFieldRestrictionManager->getJsCallback();
				}
			}

			$this->items[] = [
				'id' => $id,
				'name' => Loc::getMessage(self::LANG_MAP[$id]),
				'active' => $id === $activeId,
				'lockedCallback' => $lockedCallback,
				'url' => $this->getUrl($id),
			];
		}
	}

	return $this;
}