Для продвижения сайтов зачастую необходимо устанавливать определенные значения (ключевые слова и название сайта) тэгам TITLE и META name=description и keywords. Для простоты далее мы будем называть все три тэга "МЕТА-тэгами". Для того, чтобы система стала работать с мета-тэгами необходимо в шаблонах страниц указать следующие подстановки:
<title>$TWL_TITLE$</title>
<meta name="keywords" content="$TWL_KEYWORDS$">
<meta name="description" content="$TWL_DESCRIPTION$">
Если в шаблонах нет мета-тегов, или они заполнены какими-то значениями, или если они пустые, то система не будет никак их модифицировать.
Если все прописано как показано выше, система обрабатывает мета-тэги так:
- Можно для каждой новости, товара или страницы прописать свой набор значений в МЕТА-тэги через макрос SetMetaTags. Если МЕТА-тэги переопределены с помощью этого макроса, то новые значения будут иметь приоритет как над глобально заданными значениями, так и над значениями, заданными для страницы с определенным псевдонимом.
- Если для страницы не были определены мета-тэги через макрос SetMetaTags, то система ищет набор значений мета-тэгов для страницы с конкретным псевдонимом. Редактирование переменных осуществляется посредством кнопки "Мета-тэги" в тулбаре редактора для каждой конкретной страницы, настраивать этот механизм никак не нужно. Естественно, поскольку у всех новостей или товаров в каталоге псевдоним один и тот же, а меняются только идентификаторы товара или новости, то если нужно определить уникальные для каждой записи мета-тэги, нужно пользоваться п.1.
- Если система не нашла ничего для страницы в шагах 1-2, то она ищет глобально устрановленные значения для мета-тэгов всего сайта. Для этого используется механизм "переменных по умолчанию" из справочника varlistd.dat. Достаточно определить в нем переменные ptitle, pkeyw и pdesc.
Чтобы в админзоне можно было редактировать справочник varlistd.dat достаточно прописать в entities.xml сущность:
<entity id="predefined_variable" name="Предустановленная переменная">
<field id="named" type="string" sortas="literal" name="Переменная"/>
<field id="valued" type="text" sortas="literal" name="Значение"/>
</entity>
и добавить в menu.xml стандартный справочник:
<link id="vrlstd_01" title="Предустановленные переменные">
<url/>
<admin-url editable="false">
$ListEditor[table: varlistd; entity: predefined_variable; viewonly: yes]$
</admin-url>
</link>
В демонстрационных проектах эти записи уже есть, добавлять их второй раз не нужно.
Примечание
Описанный механизм внедрен с версии 4.46, до неё вместо указанных подстановок использовались вызовы переменных через $Variable[ptitle|pdesc|pkeyw]$, которые имели сложную и нестандартную логику обработки. Начиная с версии 4.46 должен использоваться описанный вариант, а устаревший к использованию более не рекомендуется. Также нужно учесть, что вызов значений через $Variable[]$ будет работать стандартным для этого макроса образом, то есть возвращать значение из справочника. Ранее на них накладывались значения из п.2 (см. выше).