Получение SEO тегов элемента инфоблока

Получение SEO тегов элемента инфоблока

Еще в 2013 году в версии 14.02 вышел модуль "Поисковая оптимизация (SEO)".
Одной из основных фишек, появившихся в 14 версии является появление вкладки SEO у инфоблока, разделов и его элементов, на которых можно задавать шаблоны мета-тегов: Title, Keywords, Description и тд.

О штатном использовании данного модуля подробно написал Юрий Волошин : ссылка.

Однако, до сих пор возникают вопросы по получению вышеназванных тегов с помощью API.

Для начала немного справочной информации.


Вычисленные значения шаблонов SEO тегов для РАЗДЕЛОВ инфоблока хранятся в таблице "b_iblock_section_iprop".

Ознакомиться подробнее можно, вбив в адресную строку браузера:

адрес_вашего_сайта/bitrix/admin/perfmon_table.php?PAGEN_1=1&SIZEN_1=500&lang=ru&set_filter=Y&adm_filter_applied=0&table_name=b_iblock_section_iprop&find_type=IBLOCK_ID

либо перейдя на эту страницу вручную в админке:
Настройки->Производительность->Таблицы

Вычисленные значения шаблонов SEO тегов для ЭЛЕМЕНТОВ инфоблока хранятся в таблице "b_iblock_element_iprop", а для самого ИНФОБЛОКА в таблице "b_iblock_iblock_iprop". Ознакомиться с их структурой и содержимым можно по аналогии с описанным выше просмотре таблицы свойств раздела (b_iblock_section_iprop).


Отмечу, что заполнение тегов из шаблонов происходит при просмотре раздела/элемента в публичной части, либо через вызов api.

Теперь перейдем непосредственно к коду.


Для получения тегов элемента инфоблока:
//Следующий код выведет нам набор СЕО тегов элемента с указанным ID
$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arResult['IBLOCK_ID'], $arResult['ID']);
$arResult['IPROPERTY_VALUES'] = $ipropValues->getValues();
var_dump($arResult['IPROPERTY_VALUES']);
Для получения тегов раздела инфоблока:
$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($arResult['IBLOCK_ID'], $arResult['IBLOCK_SECTION_ID']);
$arResult['IPROPERTY_VALUES'] = $ipropValues->getValues();
var_dump($arResult['IPROPERTY_VALUES']);
Для получения тегов инфоблока:
 $ipropValues = new \Bitrix\Iblock\InheritedProperty\IblockValues($arResult['IBLOCK_ID']);
 $arResult['IPROPERTY_VALUES'] = $ipropValues->getValues();
 var_dump($arResult['IPROPERTY_VALUES']);
 
Обратите внимание, что во всех случаях задается ID инфоблока ($arResult['IBLOCK_ID']), а для выборки тегов раздела инфоблока или элемента инфоблока дополнительно указать ID раздела ($arResult['IBLOCK_SECTION_ID']) или ID элемента ( $arResult['ID']), соответственно. Отмечу, что код написан с использованием идеологии разработки D7, что привнесло,в том числе, единообразие в аналогичные методы для разных сущностей.
Рейтинг

Возврат к списку

Раздел Bitrix
(Codeblog)