Нужен программист!
Так как это довольно частая задача, мы вынесли некоторые практики по генерации текстов и метаданных в одну статью, которая будет пополняться.
Шаблон 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']){ код }