• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/iblock.php
  • Класс: CWebDavIblock
  • Вызов: CWebDavIblock::GetMetaID
function GetMetaID($sMetaName, $createIfNotExist = true)
{
	static $DataType = 'MetaIDS';
	$arMetaIDs = $this->_dataCache($DataType);
	if (!$arMetaIDs || empty($arMetaIDs[$sMetaName]))
	{
		if (!isset($this->meta_names[$sMetaName]))
		{
			return null;
		}
		$rootSectionId = empty($this->arRootSection['ID'])? 0 : $this->arRootSection['ID'];

		//non create meta folder in depth! hack
		if($rootSectionId && !empty($this->arRootSection['DEPTH_LEVEL']) && $this->arRootSection['DEPTH_LEVEL'] > 1)
		{
			return null;
		}

		$rootIblockId = $this->IBLOCK_ID;

		$sectionId = $this->findMetaSection(
			$this->meta_names[$sMetaName]['name'],
			$rootIblockId,
			$rootSectionId
		);
		if(!$sectionId && $createIfNotExist && !empty($this->meta_names[$sMetaName]['auto_create']))
		{
			$sectionId = $this->createMetaSection(
				$this->meta_names[$sMetaName]['name'],
				$rootIblockId,
				$rootSectionId
			);

			if (intval($sectionId) > 0)
			{
				$sectionId = intval($sectionId);
			}
			else
			{
				return null;
			}
		}

		if (!is_array($arMetaIDs))
		{
			$arMetaIDs = array();
		}
		$arMetaIDs[$sMetaName] = $sectionId;
		$this->_dataCache($DataType, $arMetaIDs);
	}

	return $arMetaIDs[$sMetaName];
}