• Модуль: mobile
  • Путь к файлу: ~/bitrix/modules/mobile/lib/tab/manager.php
  • Класс: BitrixMobileTabManager
  • Вызов: Manager::getPresetList
public function getPresetList()
{
	$result = [];
	$presets = $this->config["presets"];
	$optionalTabs = $this->config["presetOptionalTabs"] ?? [];
	foreach ($presets as $presetId => $tabs) {
		$tabsIDs = array_keys($tabs);
		$available = true;
		$unavailableOptionalTabs = [];
		if (count($tabsIDs) === 0)
		{
			$available = false;
		}
		else
		{
			foreach ($tabsIDs as $tabId)
			{
				if ($this->getTabInstance($tabId) == null)
				{
					break;
				}

				if (!$this->getTabInstance($tabId)->isAvailable())
				{
					if (isset($optionalTabs[$presetId]) && is_array($optionalTabs[$presetId])) {
						if (in_array($tabId, $optionalTabs[$presetId])) {
							$unavailableOptionalTabs[] = $tabId;
							continue;
						}
					}

					$available = false;
					break;
				}
			}
		}

		if ($available)
		{
			$tabs = array_filter($tabs, function( $sort, $id) use ($unavailableOptionalTabs) {
				return !in_array($id, $unavailableOptionalTabs);
			}, ARRAY_FILTER_USE_BOTH);

			$result[$presetId] = [
				"tabs" => $tabs,
				"title" => Loc::getMessage(mb_strtoupper("TAB_PRESET_NAME_$presetId"))
			];
		}

	}

	return $result;
}