Задать Мета-теги (description, keywords, title, H1) для страницы на 1С-Битриск
Получить поля СЕО элемента в 1С-Битрикс
Пример вывода:
<?php
$ipropElementValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arResult["IBLOCK_ID"], $arResult["ID"]);
$arResult["SEO"] = $ipropElementValues->getValues();
if (isset($arResult["SEO"]["SECTION_PAGE_TITLE"]) && $arResult["SEO"]["SECTION_PAGE_TITLE"] != "") {
$APPLICATION->SetPageProperty("H1", $arResult["SEO"]["SECTION_PAGE_TITLE"]);
}
if (isset($arResult["SEO"]["ELEMENT_META_TITLE"]) && $arResult["SEO"]["ELEMENT_META_TITLE"] != "") {
$APPLICATION->SetTitle($arResult["SEO"]["ELEMENT_META_TITLE"]);
}
if (isset($arResult["SEO"]["ELEMENT_META_KEYWORDS"]) && $arResult["SEO"]["ELEMENT_META_KEYWORDS"] != "") {
$APPLICATION->SetPageProperty("keywords", $arResult["SEO"]["ELEMENT_META_KEYWORDS"]);
}
if (isset($arResult["SEO"]["ELEMENT_META_DESCRIPTION"]) && $arResult["SEO"]["ELEMENT_META_DESCRIPTION"] != "") {
$APPLICATION->SetPageProperty("description", $arResult["SEO"]["ELEMENT_META_DESCRIPTION"]);
}
Для вывода H1 в нужной части страницы:
<h1><? $APPLICATION->ShowTitle('H1') ?></h1>
Пример в файле result_modifier.php у шаблона компонента project:catalog.list.retail:
<?
if(!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
$pageTitle = $APPLICATION->GetTitle();
if (isset($arResult["ITEMS"])) {
if ($USER->IsAdmin()) {
print "<pre>";
}
$isFirst = false;
foreach ($arResult["ITEMS"] as &$item) {
if ($isFirst === false) {
$ipropSectionValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($item["IBLOCK_ID"], $item["IBLOCK_SECTION_ID"]);
$arResult["SEO"] = $ipropSectionValues->getValues();
$APPLICATION->SetPageProperty("keywords", "");
if ($pageTitle != "") {
$APPLICATION->SetPageProperty("H1", $pageTitle);
} else if (isset($arResult["SEO"]["SECTION_PAGE_TITLE"]) && $arResult["SEO"]["SECTION_PAGE_TITLE"] != "") {
$APPLICATION->SetPageProperty("H1", $arResult["SEO"]["SECTION_PAGE_TITLE"]);
}
if (isset($arResult["SEO"]["SECTION_META_TITLE"]) && $arResult["SEO"]["SECTION_META_TITLE"] != "") {
$APPLICATION->SetTitle($arResult["SEO"]["SECTION_META_TITLE"]);
}
//if (isset($arResult["SEO"]["SECTION_META_KEYWORDS"]) && $arResult["SEO"]["SECTION_META_KEYWORDS"] != "") {
// $APPLICATION->SetPageProperty("keywords", $arResult["SEO"]["SECTION_META_KEYWORDS"]);
//}
if (isset($arResult["SEO"]["SECTION_META_DESCRIPTION"]) && $arResult["SEO"]["SECTION_META_DESCRIPTION"] != "") {
$APPLICATION->SetPageProperty("description", $arResult["SEO"]["SECTION_META_DESCRIPTION"]);
} else if (isset($arResult["SEO"]["SECTION_META_TITLE"]) && $arResult["SEO"]["SECTION_META_TITLE"] != "") {
$APPLICATION->SetPageProperty("description", $arResult["SEO"]["SECTION_META_TITLE"]);
}
$isFirst = true;
if ($USER->IsAdmin()) {
print_r($arResult["SEO"]);
}
}
$ipropElementValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($item["IBLOCK_ID"], $item["ID"]);
$item["SEO"] = $ipropElementValues->getValues();
if ($USER->IsAdmin()) {
print_r($arResult["SEO"]);
}
}
if ($USER->IsAdmin()) {
print "</pre>";
}
}
Результат print_r:
Array
(
[SECTION_META_TITLE] => Купить SIGMA (SPORT)/Детская в интернет-магазине
[SECTION_META_DESCRIPTION] => Купите SIGMA (SPORT)/Детская в интернет магазине Медиса ЮГ. Доставка по Краснодарскому краю и РФ. SIGMA (SPORT)/Детская по низким ценам в наличии. Скидки и акции!
[ELEMENT_META_DESCRIPTION] => SIGMA (SPORT)/Детская купить
[SECTION_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[SECTION_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[ELEMENT_PREVIEW_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[ELEMENT_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[SECTION_PAGE_TITLE] => SIGMA (SPORT)/Детская
)
Array
(
[SECTION_META_TITLE] => Купить SIGMA (SPORT)/Детская в интернет-магазине
[SECTION_META_DESCRIPTION] => Купите SIGMA (SPORT)/Детская в интернет магазине Медиса ЮГ. Доставка по Краснодарскому краю и РФ. SIGMA (SPORT)/Детская по низким ценам в наличии. Скидки и акции!
[ELEMENT_META_DESCRIPTION] => SIGMA (SPORT)/Детская купить
[SECTION_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[SECTION_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[ELEMENT_PREVIEW_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[ELEMENT_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[SECTION_PAGE_TITLE] => SIGMA (SPORT)/Детская
)
Array
(
[SECTION_META_TITLE] => Купить SIGMA (SPORT)/Детская в интернет-магазине
[SECTION_META_DESCRIPTION] => Купите SIGMA (SPORT)/Детская в интернет магазине Медиса ЮГ. Доставка по Краснодарскому краю и РФ. SIGMA (SPORT)/Детская по низким ценам в наличии. Скидки и акции!
[ELEMENT_META_DESCRIPTION] => SIGMA (SPORT)/Детская купить
[SECTION_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[SECTION_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[ELEMENT_PREVIEW_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[ELEMENT_DETAIL_PICTURE_FILE_ALT] => SIGMA (SPORT)/Детская фото
[SECTION_PAGE_TITLE] => SIGMA (SPORT)/Детская
)
Пример ALT картинки в фале template.php:
<?
// ...
?>
<!-- ... -->
<img class="product__img" src="<?= $item['PREVIEW_PICTURE'] ?>" alt="<?= (isset($item["SEO"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]) && $item["SEO"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"] != "" ? $item["SEO"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"] : $item['NAME']) ?>"/>
<!-- ... -->
<?
// ...