О web-разработке
и даже немного больше...

Использование 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>';
}
Опубликован: 08.03.2014 г.

См. также:

«Не удалось установить соединение с сервером. Проверьте …».
Получение Email-адреса покупателя в заказе (Bitrix D7)
Работа с URL-адресами в Bitrix D7
Работа с купонами в Bitrix API
Добавляем пункт меню для списков в админке Битрикс
Диалоговые окна в Bitrix API
Создание инфоблока при установке модуля
Создание копии корзины из заказа на Bitrix D7

Комментарии

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

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

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

    1. htmaker пишет:

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

  2. exe пишет:

    а как установить поля сео для информационного блока?

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

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

Комментарии
  • Загрузка...
Друзья сайта