• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/component/element.php
  • Класс: BitrixIblockComponentElement
  • Вызов: Element::getCacheKeys
protected function getCacheKeys()
{
	$resultCacheKeys = array(
		'IBLOCK_ID',
		'ID',
		'IBLOCK_SECTION_ID',
		'NAME',
		'LIST_PAGE_URL',
		'CANONICAL_PAGE_URL',
		'SECTION',
		'IPROPERTY_VALUES',
		'TIMESTAMP_X',
		'BACKGROUND_IMAGE',
		'USE_CATALOG_BUTTONS'
	);

	$this->initAdditionalCacheKeys($resultCacheKeys);

	if (
		$this->arParams['SET_TITLE']
		|| $this->arParams['ADD_ELEMENT_CHAIN']
		|| $this->arParams['SET_BROWSER_TITLE'] === 'Y'
		|| $this->arParams['SET_META_KEYWORDS'] === 'Y'
		|| $this->arParams['SET_META_DESCRIPTION'] === 'Y'
	)
	{
		$this->arResult['META_TAGS'] = array();
		$resultCacheKeys[] = 'META_TAGS';

		$elementTitle = $this->arResult['NAME'];
		if (
			isset($this->arResult['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'])
			&& $this->arResult['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'] !== ''
		)
		{
			$elementTitle = $this->arResult['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'];
		}
		if ($this->arParams['SET_TITLE'])
		{
			$this->arResult['META_TAGS']['TITLE'] = $elementTitle;
		}

		if ($this->arParams['ADD_ELEMENT_CHAIN'])
		{
			$this->arResult['META_TAGS']['ELEMENT_CHAIN'] = $elementTitle;
		}

		if ($this->arParams['SET_BROWSER_TITLE'] === 'Y')
		{
			$browserTitle = Collection::firstNotEmpty(
				$this->arResult['PROPERTIES'], array($this->arParams['BROWSER_TITLE'], 'VALUE'),
				$this->arResult, $this->arParams['BROWSER_TITLE'],
				$this->arResult['IPROPERTY_VALUES'], 'ELEMENT_META_TITLE'
			);
			$this->arResult['META_TAGS']['BROWSER_TITLE'] = is_array($browserTitle)
				? implode(' ', $browserTitle)
				: $browserTitle;
			unset($browserTitle);
		}

		if ($this->arParams['SET_META_KEYWORDS'] === 'Y')
		{
			$metaKeywords = Collection::firstNotEmpty(
				$this->arResult['PROPERTIES'], array($this->arParams['META_KEYWORDS'], 'VALUE'),
				$this->arResult['IPROPERTY_VALUES'], 'ELEMENT_META_KEYWORDS'
			);
			$this->arResult['META_TAGS']['KEYWORDS'] = is_array($metaKeywords)
				? implode(' ', $metaKeywords)
				: $metaKeywords;
			unset($metaKeywords);
		}

		if ($this->arParams['SET_META_DESCRIPTION'] === 'Y')
		{
			$metaDescription = Collection::firstNotEmpty(
				$this->arResult['PROPERTIES'], array($this->arParams['META_DESCRIPTION'], 'VALUE'),
				$this->arResult['IPROPERTY_VALUES'], 'ELEMENT_META_DESCRIPTION'
			);
			$this->arResult['META_TAGS']['DESCRIPTION'] = is_array($metaDescription)
				? implode(' ', $metaDescription)
				: $metaDescription;
			unset($metaDescription);
		}
	}

	return $resultCacheKeys;
}