Работа с шаблонами SEO
Шаблоны SEO данных можно задавать как для всего инфоблока (т.е. для всех его разделов и элементов), так и для конкретных разделов, или элементов нужного раздела. Настройка может быть сделана для всего инфоблока, а потом для конкретного раздела/элемента переопределена на свою персональную. Все эти настройки выполняются на закладке SEO формы создания/редактирования соответственно инфоблока, раздела или элемента.
Содержимое закладки SEO для инфоблока и для раздела полностью идентично. В ней задаются шаблоны заголовков, ключевых слов, описаний для разделов и для элементов, а также шаблоны тегов для изображений разделов и элементов. На закладке SEO формы редактирования элементов присутствуют только те настройки, которые касаются самих элементов и их изображений.
Кроме текста можно использовать специальные конструкции в фигурных скобках:
{=this.Code}
символьный код раздела/элемента{=iblock.PreviewText}
описание инфоблока{=this.sections.name}
названия родительских разделов{=this.property.COLOR}
свойство инфоблока{=lower this.Name}
приведет значение к нижнему регистру{=concat this.sections.name " / "}
названия родительских разделов будут соединены с помощью слэша
Пример использования:
Купить {=this.Name} {=concat {=distinct this.catalog.sku.property.color ", "}} по низким
ценам. От {=min this.catalog.sku.price.BASE} до {=max this.catalog.sku.price.BASE}
Вывод:
Купить платье синее, зеленое, черное по низким ценам. От 1000 руб. до 2000 руб.
Работа с шаблонами SEO свойств инфоблоков
Получить SEO шаблоны для инфоблока с идентификатором $iblockId
:
$ipropIblockTemplates = new \Bitrix\Iblock\InheritedProperty\IblockTemplates($iblockId);
$templates = $ipropIblockTemplates->findTemplates();
print_r($templates);
Вывод:
Array
(
[SECTION_META_KEYWORDS] => Array
(
[ID] => 37
[CODE] => SECTION_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[SECTION_META_DESCRIPTION] => Array
(
[ID] => 38
[CODE] => SECTION_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[SECTION_META_TITLE] => Array
(
[ID] => 41
[CODE] => SECTION_META_TITLE
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[ELEMENT_META_TITLE] => Array
(
[ID] => 42
[CODE] => ELEMENT_META_TITLE
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[ELEMENT_META_DESCRIPTION] => Array
(
[ID] => 43
[CODE] => ELEMENT_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
[ELEMENT_META_KEYWORDS] => Array
(
[ID] => 45
[CODE] => ELEMENT_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower parent.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => N
)
)
Получить SEO шаблоны для раздела с идентификатором $iblockSectionId
:
$ipropSectionTemplates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($iblockId, $iblockSectionId);
$templates = $ipropSectionTemplates->findTemplates();
print_r($templates);
Вывод:
Array
(
[SECTION_META_KEYWORDS] => Array
(
[ID] => 37
[CODE] => SECTION_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[SECTION_META_DESCRIPTION] => Array
(
[ID] => 38
[CODE] => SECTION_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[SECTION_META_TITLE] => Array
(
[ID] => 41
[CODE] => SECTION_META_TITLE
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_TITLE] => Array
(
[ID] => 42
[CODE] => ELEMENT_META_TITLE
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_DESCRIPTION] => Array
(
[ID] => 43
[CODE] => ELEMENT_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_KEYWORDS] => Array
(
[ID] => 45
[CODE] => ELEMENT_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower parent.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
)
Получить SEO шаблоны для элемента с идентификатором $iblockElementId
:
$ipropElementTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($iblockId, $iblockElementId);
$templates = $ipropElementTemplates->findTemplates();
print_r($templates);
Вывод:
Array
(
[SECTION_META_KEYWORDS] => Array
(
[ID] => 37
[CODE] => SECTION_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[SECTION_META_DESCRIPTION] => Array
(
[ID] => 38
[CODE] => SECTION_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[SECTION_META_TITLE] => Array
(
[ID] => 41
[CODE] => SECTION_META_TITLE
[TEMPLATE] => {=this.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_TITLE] => Array
(
[ID] => 42
[CODE] => ELEMENT_META_TITLE
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_DESCRIPTION] => Array
(
[ID] => 43
[CODE] => ELEMENT_META_DESCRIPTION
[TEMPLATE] => {=this.Name}. {=parent.Name}. {=iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
[ELEMENT_META_KEYWORDS] => Array
(
[ID] => 45
[CODE] => ELEMENT_META_KEYWORDS
[TEMPLATE] => {=lower this.Name} {=lower parent.Name} {=lower iblock.PreviewText}
[ENTITY_TYPE] => B
[ENTITY_ID] => 5
[INHERITED] => Y
)
)
Изменить SEO шаблоны для инфоблока с идентификатором $iblockId
:
$ipropIblockTemplates = new \Bitrix\Iblock\InheritedProperty\IblockTemplates($iblockId);
$templates = $ipropIblockTemplates->findTemplates();
$newTemplates = array(
'SECTION_META_TITLE' => $templates['SECTION_META_TITLE']['TEMPLATE']." дополнительный текст - {=this.Name}"
);
$ipropIblockTemplates->set($newTemplates);
Изменить SEO шаблоны для раздела с идентификатором $iblockSectionId
:
$ipropSectionTemplates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($iblockId, $iblockSectionId);
$templates = $ipropSectionTemplates->findTemplates();
$newTemplates = array(
'SECTION_META_TITLE' => $templates['SECTION_META_TITLE']['TEMPLATE']." дополнительный текст - {=this.Name}"
);
$ipropSectionTemplates->set($newTemplates);
Изменить SEO шаблоны для элемента с идентификатором $iblockElementId
:
$ipropElementTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($iblockId, $iblockElementId);
$templates = $ipropElementTemplates->findTemplates();
$newTemplates = array(
'ELEMENT_META_TITLE' => $templates['ELEMENT_META_TITLE']['TEMPLATE']." дополнительный текст - {=this.Name}"
);
$ipropElementTemplates->set($newTemplates);
Удалить SEO шаблоны для инфоблока с идентификатором $iblockId
:
$ipropIblockTemplates = new \Bitrix\Iblock\InheritedProperty\IblockTemplates($iblockId);
$ipropIblockTemplates->delete();
Удалить SEO шаблоны для раздела с идентификатором $iblockSectionId
:
$ipropSectionTemplates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($iblockId, $iblockSectionId);
$ipropSectionTemplates->delete();
Удалить SEO шаблоны для элемента с идентификатором $iblockElementId
:
$ipropElementTemplates = new \Bitrix\Iblock\InheritedProperty\ElementTemplates($iblockId, $iblockElementId);
$ipropElementTemplates->delete();
Работа со значениями SEO свойств инфоблоков
Получение значений SEO для инфоблока с идентификатором $iblockId
:
$ipropIblockValues = new \Bitrix\Iblock\InheritedProperty\IblockValues($iblockId);
print_r($ipropIblockValues->getValues());
Получить значения SEO для раздела с идентификатором $iblockSectionId
:
$ipropSectionValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($iblockId, $iblockSectionId);
print_r($ipropSectionValues->getValues());
Вывод:
Array
(
[SECTION_META_KEYWORDS] => породы собак статьи о домашних животных
[SECTION_META_DESCRIPTION] => Породы собак. Статьи о домашних животных
[SECTION_META_TITLE] => Породы собак. Статьи о домашних животных
[ELEMENT_META_TITLE] => Породы собак. Статьи. Статьи о домашних животных
[ELEMENT_META_DESCRIPTION] => Породы собак. Статьи. Статьи о домашних животных
[ELEMENT_META_KEYWORDS] => породы собак статьи статьи о домашних животных
)
Получить значения SEO для элемента с идентификатором $iblockElementId
:
$ipropElementValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($iblockId, $iblockElementId);
print_r($ipropElementValues->getValues());
Вывод:
Array
(
[SECTION_META_KEYWORDS] => афганская борзая статьи о домашних животных
[SECTION_META_DESCRIPTION] => Афганская борзая. Статьи о домашних животных
[SECTION_META_TITLE] => Афганская борзая. Статьи о домашних животных
[ELEMENT_META_TITLE] => Афганская борзая. Породы собак. Статьи о домашних животных
[ELEMENT_META_DESCRIPTION] => Афганская борзая. Породы собак. Статьи о домашних животных
[ELEMENT_META_KEYWORDS] => афганская борзая породы собак статьи о домашних животных
)
Сбросить кэш SEO для инфоблока с идентификатором в переменной $iblockId
:
$ipropIblockValues = new \Bitrix\Iblock\InheritedProperty\IblockValues($iblockId);
$ipropIblockValues->clearValues();
Сбросить кэш SEO для раздела инфоблока с идентификатором в переменной $iblockSectionId
:
$ipropSectionValues = new \Bitrix\Iblock\InheritedProperty\IblockSectionValues($iblockId, $iblockSectionId);
$ipropSectionValues->clearValues();
Сбросить кэш SEO для элемента инфоблока с идентификатором в переменной $iblockElementId
:
$ipropElementValues = new \Bitrix\Iblock\InheritedProperty\IblockElementValues($iblockId, $iblockElementId);
$ipropElementValues->clearValues();