Посетите Дворцовую площадь

Шаблоны и автогенерация текста и меты


Нужен программист!

Так как это довольно частая задача, мы вынесли некоторые практики по генерации текстов и метаданных в одну статью, которая будет пополняться.

Шаблон title и description для всех разделов и товаров каталога на поддоменах

Например, вы хотите оставить прежнюю мету в каталоге у главного домена, но на поддоменах сделать что-то своё. И чтобы не писать значения отдельно для каждого товара и раздела, можно сделать свой шаблон метаданных для каждого конкретного региона и генерировать строки по шаблону.

Шаг 1. Хранение шаблонов

Шаблоны будем хранить просто как свойства региона. Создайте 4 строковых свойства инфоблока регионов (коды должны быть такими символ в символ):

  • Title товаров (ELEMENT_META_TITLE)
  • Description товаров (ELEMENT_META_DESC)
  • Title разделов (SECTION_META_TITLE)
  • Description разделов (SECTION_META_DESC)

Если вы не знаете как создавать такие свойства, то посмотрите здесь.

Шаг 2. Вывод

Довольно сложный шаг, так как нужно немного программирования.

Во-первых, вам нужно найти место в коде, где выводится раздел или элемент. В 90% случаев это находится в компонентах catalog.section или catalog.element соответственно. А затем или в component_epilog.php этого компонента или сразу после подключения компонента вам нужно написать следующий код:

// для раздела
// ставим тайтл
$APPLICATION->SetPageProperty("title", \Aristov\Vregions\Tools::makeText($_SESSION['VREGIONS_REGION']['SECTION_META_TITLE'], \Aristov\Vregions\Sections::getReplaceArray({id категории})));
// ставим дескрипшион
$APPLICATION->SetPageProperty("description", \Aristov\Vregions\Tools::makeText($_SESSION['VREGIONS_REGION']['SECTION_META_DESC'], \Aristov\Vregions\Sections::getReplaceArray({id категории})));

// для элемента
$APPLICATION->SetPageProperty("title", \Aristov\Vregions\Tools::makeText($_SESSION['VREGIONS_REGION']['ELEMENT_META_TITLE'], \Aristov\Vregions\Elements::getReplaceArray({id элемента})));
// ставим дескрипшион
$APPLICATION->SetPageProperty("description", \Aristov\Vregions\Tools::makeText($_SESSION['VREGIONS_REGION']['ELEMENT_META_DESC'], \Aristov\Vregions\Elements::getReplaceArray({id элемента})));

Обратите внимание, что в этом месте кода вам нужно знать id сущности.

Также обратите внимание на массивы внутри getReplaceArray(), они довольно полезные. Распечатайте их на тестовой странице, чтобы посмотреть их возможности. Они позволяют использовать в мете переменные вроде названия товара, его свойств, цены и так далее.

Дополнительно

Вот это условие работает только для поддоменов:

if ($_SESSION['VREGIONS_REGION']['ID'] != $_SESSION['VREGIONS_DEFAULT']['ID']){
	код
}


Аристов Василий
Разработчик всех модулей на проекте

Теги



Что-то осталось непонятным или вы нашли неточность? Напишите, пожалуйста об этом в комментариях.

Написать комментарий

Чтобы писать комментарии, вам нужно войти на сайт

Авторизоваться через соцсеть

Авторизоваться через vk.com Авторизоваться через facebook.com

Хотите такие же комментарии себе на сайт? Купите готовый к установке модуль