Отправка сообщения






Добро пожаловать!

Использование SEO данных инфоблока через API

bitrix-seo-apiSEO оптимизация сегодня является неотъемлемой частью любого проекта, желающего продвинуться среди различных систем поиска. Множество разработчиков занимающиеся разработкой своих систем управлений сайтами учли этот факт, оснащая свои приложения нужным функционалом. Не стали исключением и разработчики платформы Битрикс. Начиная с версии 14.0.0 в модуле Информационные блоки доступна возможность автоматического создания метаданных для элементов и разделов инфоблока. Информацию о настройках можно почитать вот тут, мы же рассмотрим пример использования SEO данных посредством API.
API которые используется в SEO инфобоков расположены в директории:
\bitrix\modules\iblock\lib\inheritedproperty\
SEO поля элементов инфоблока можно заполнять посредством API, для этого при обновлении в массиве полей необходимо добавить ключ «IPROPERTY_TEMPLATES«:

...
"IPROPERTY_TEMPLATES" => array (
	"SECTION_META_TITLE" => "",
	"SECTION_META_KEYWORDS" => "",
	"SECTION_META_DESCRIPTION" => "",
	"SECTION_PAGE_TITLE" => "",
	"ELEMENT_META_TITLE" => "",
	"ELEMENT_META_KEYWORDS" => "",
	"ELEMENT_META_DESCRIPTION" => "",
	"ELEMENT_PAGE_TITLE" => "",
	"SECTION_PICTURE_FILE_ALT" => "",
	"SECTION_PICTURE_FILE_TITLE" => "",
	"SECTION_PICTURE_FILE_NAME" => "",
	"SECTION_DETAIL_PICTURE_FILE_ALT" => "",
	"SECTION_DETAIL_PICTURE_FILE_TITLE" => "",
	"SECTION_DETAIL_PICTURE_FILE_NAME" => "",
	"ELEMENT_PREVIEW_PICTURE_FILE_ALT" => "",
	"ELEMENT_PREVIEW_PICTURE_FILE_TITLE" => "",
	"ELEMENT_PREVIEW_PICTURE_FILE_NAME" => "",
	"ELEMENT_DETAIL_PICTURE_FILE_ALT" => "",
	"ELEMENT_DETAIL_PICTURE_FILE_TITLE" => "",
	"ELEMENT_DETAIL_PICTURE_FILE_NAME" => "",
),
...

Получить поля SEO для элемента можно так:

CModule::IncludeModule("iblock");
$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues(
						$arCurElem["IBLOCK_ID"], // ID инфоблока
						$arCurElem["ID"] // ID элемента
					);
$arElMetaProp = $ipropValues->getValues();

echo '<pre>'; print_r ($arElMetaProp); echo '</pre>';

Поля SEO для раздела можно получить похожим способом:

CModule::IncludeModule("iblock");

$rsSection = CIBlockSection::GetList(
	array(),
	array(
		"IBLOCK_ID"=>$arParams['IBLOCK_ID'],
		"ACTIVE"=>"Y",
		"=CODE"=>$arParams["SECTION_CODE"]),
		false
		);

if($arSection = $rsSection->GetNext()){

$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues(
	$arSection["IBLOCK_ID"],
	$arSection["ID"]
	);
	
	$arSection["IPROPERTY_VALUES"] = $ipropValues->getValues();
	echo "<pre>"; print_r($arSection); echo '</pre>';
}
Добавил: htmaker, 08.03.2014 г.
 
плохослабосойдетхорошоотлично (2 голосов, средний: 5,00 из 5)
Загрузка...

Комментарии

  1. Гость пишет:

    SEO поля элементов инфоблока можно заполнять посредством API, для этого при обновлении в массиве полей необходимо добавить ключ «IPROPERTY_TEMPLATES«:
    Где его нужно добавлять?

    Получить поля SEO для элемента можно так:
    Где нужно разместить данный код?

    1. htmaker пишет:

      IPROPERTY_TEMPLATES добавляется при обновлении полей элемента.
      Код получения SEO-полей можно разместить в компоненте, где происходит выборка элементов.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Комментарии

  • Загрузка...

Наверх