Шаблоны для title ресурсов
Добрый день!
Подскажите дополнение для создания своих правил (шаблонов) для title ресурсов.
Суть такая:
Есть магазин.
Необходимо для товаров разных категорий создать свои правила для title.
Что-то типа таких:
"«Название товара»" купить, "«Название товара»" цена и отзывы, инструкция по применению
— "«Название магазина»"
«Название товара» инструкция по применению, «Название товара» цена, «Название товара» купить — "«Название магазина»"
Есть ли дополнение, для создания таких правил и вывода?
Подскажите дополнение для создания своих правил (шаблонов) для title ресурсов.
Суть такая:
Есть магазин.
Необходимо для товаров разных категорий создать свои правила для title.
Что-то типа таких:
"«Название товара»" купить, "«Название товара»" цена и отзывы, инструкция по применению
— "«Название магазина»"
«Название товара» инструкция по применению, «Название товара» цена, «Название товара» купить — "«Название магазина»"
Есть ли дополнение, для создания таких правил и вывода?
Поблагодарить автора
Отправить деньги
Комментарии: 4
Тоже недавно возникла такая задача, решил написанием плагина.
Вешается на событие OnLoadWebDocument, так же создал TV поля pattern-seo-title, pattern-seo-keywords, pattern-seo-description.
В разделе для которого нужно применить шаблон, в TV полях уже можно писать например — "«[[*pagetitle]]»" купить, "«[[*pagetitle]]»" цена и отзывы, инструкция по применению — "«[[++site_name]]»"
В шаблоне выводятся как плейсхолдеры [[+pattern.seo.title]], [[+pattern.seo.keywords]], [[+pattern.seo.description]]
Я выводил так, на Fenom
Вешается на событие OnLoadWebDocument, так же создал TV поля pattern-seo-title, pattern-seo-keywords, pattern-seo-description.
if ($modx->event->name == 'OnLoadWebDocument') {
function getMeta($id) {
global $modx;
if ($resource = $modx->getObject('modResource', $id)) {
$title = $resource->getTVValue('pattern-seo-title');
$keywords = $resource->getTVValue('pattern-seo-keywords');
$description = $resource->getTVValue('pattern-seo-description');
if ((isset($title) && !empty($title)) || (isset($keywords) && !empty($keywords)) || (isset($description) && !empty($description))) {
$modx->setPlaceholder('pattern.seo.title', $title);
$modx->setPlaceholder('pattern.seo.keywords', $keywords);
$modx->setPlaceholder('pattern.seo.description', $description);
} else {
getMeta($resource->get('parent'));
}
}
}
$id = $modx->resource->parent;
getMeta($id);
}
В разделе для которого нужно применить шаблон, в TV полях уже можно писать например — "«[[*pagetitle]]»" купить, "«[[*pagetitle]]»" цена и отзывы, инструкция по применению — "«[[++site_name]]»"
В шаблоне выводятся как плейсхолдеры [[+pattern.seo.title]], [[+pattern.seo.keywords]], [[+pattern.seo.description]]
Я выводил так, на Fenom
{set $pattern_seo_title = $_modx->getPlaceholder('pattern.seo.title')}
{set $pattern_seo_keywords = $_modx->getPlaceholder('pattern.seo.keywords')}
{set $pattern_seo_description = $_modx->getPlaceholder('pattern.seo.description')}
{if $_modx->resource['seo-title']?}
{$_modx->resource['seo-title']}
{elseif $pattern_seo_title?}
{$pattern_seo_title}
{else}
{$_modx->resource.pagetitle}
{/if}
{if $_modx->resource['seo-keywords']?}
{$_modx->resource['seo-keywords']}
{else}
{$pattern_seo_keywords}
{/if}
{if $_modx->resource['seo-description']?}
{$_modx->resource['seo-description']}
{else}
{$pattern_seo_description}
{/if}
Спасибо за решение. Буду пробовать.
Вот еще что нарыл:
1) В pdoTools есть сниппет pdoTitle, может пригодиться
2) Есть дополнение CustomUrls CustomUrls
статейка по использованию Статья
Попробую с ними поработать.
1) В pdoTools есть сниппет pdoTitle, может пригодиться
2) Есть дополнение CustomUrls CustomUrls
статейка по использованию Статья
Попробую с ними поработать.
Андрей, спасибо за такой шикарный компонент — seoTemplates!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.