Работа с шаблонами SEO

Александр Стерхов

Веб-разработчик

Работа с шаблонами SEO

Одним из ключевых моментов, которые появились в 14 версии Битрикс, стала возможность создавать шаблоны мета-тегов (title, keywords, description) для инфоблоков, разделов и элементов. С помощью данной технологии пропала необходимость прописывать отдельные свойства для каждого товара, изменять их значения после каждого обновления, либо прописывать огромные функции, чтобы сгенерировать мета-теги.

Задача

Удобно? Конечно! Однако, что делать, если сайт работает для разных городов, и для каждого города нужно написать разные шаблоны мета-тегов? Например, для Санкт-Петербурга title будет «Отличные платья Baon от 1500 рублей в Санкт-Петербурге», а для Москвы — «Синие, красные, зеленые платья Baon от 2000 в торговых центрах Москвы». Вот тут уже возникает проблема!

Именно с такой проблемой к нам обратился интернет-магазин «Тапки на авто» в рамках услуги Поддержка сайтов на Битриксе. Попробуем разобраться с этой задачей.

Решение

В файлах папки /bitrix/modules/iblock/lib/template/entity/ созданы классы для обработки шаблонов SEO (iblock.php — для инфоблока, element.php — для элемента и т.д.).

Попробуем для элемента «Платье» с идентификатором 100 вывести его имя и символьный код. Для этого создадим шаблон:

Name: {=this.Name}. Code:{=this.Code}
и напишем пару строк кода:
if (\Bitrix\Main\Loader::includeModule('iblock')) {
  $e = new \Bitrix\Iblock\Template\Entity\Element(100);
}

print_r(\Bitrix\Iblock\Template\Engine::process(
  $e, 
  "Name: {=this.Name}. Code:{=this.Code}"
), 1);
В результате получаем:
Name: платье. Code:Futbolka. 
Таким образом можно задавать и более сложные шаблоны, например,
Купить {=this.Name} {=concat {=distinct this.catalog.sku.property.color ", "}} по низким ценам. От {=min this.catalog.sku.price.BASE} до {=max this.catalog.sku.price.BASE}
Применяя этот шаблон к нашему элементу:
if (\Bitrix\Main\Loader::includeModule('iblock')) {
  $e = new \Bitrix\Iblock\Template\Entity\Element(100);
}

print_r(\Bitrix\Iblock\Template\Engine::process(
    $e, 
    "Купить {=lower this.property.model_season} {=parent.Name} {=this.Name} {=concat {=distinct this.catalog.sku.property.color ", 
    "}} по низким ценам. От {=min this.catalog.sku.price.BASE} до {=max this.catalog.sku.price.BASE}"
), 1);
Получаем:
Купить платье синие, зеленые, черные по низким ценам. От 1000 руб. до 2000 руб. 

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

Комментарии

Тут без вас никак. Поделитесь с нами вашими мыслями

Горячие вакансии