Простые заголовки (метатеги)
Приветствую всех и с радостью спешу поделиться с вами простым, но невероятно удобным и полезным инструментом.
Ко мне часто обращались с просьбой сделать заголовок страницы, чтобы он был по шаблону: "Смотреть {title} онлайн", "Скачать торрент {title}" и т.д.
Часто еще нужно было чтобы для разных категорий формировался разный заголовок.
Понятное дело сам алгоритм прост и легко делается на PHP. Но ведь не все знакомы с PHP и смогут правильно и в нужное место прописать код.
Вот данный хак позволяет легко настроить любой заголовок по своему шаблону.
Рекомендуется использовать новую "версию" модуля: Fullstory-Metatags by Sander
По умолчанию, если у новости не указан индивидуальный заголовок, то он будет сформирован по единому шаблону:
{title} » %Заголовок сайта%
где title - простой заголовок новости.
А что делать если хочется туда же вставить значение доп.поля. Или для разных категорий (фильмы, сериалы, ...) добавить разные шаблоны.
Вот для решения этой задачи я и написал этот хак (честно говоря случайно как-то вышло...)
С помощью хака можно менять title, description и keywords.
Вот простой пример того, что можно сделать, просто в шаблоне fullstory.tpl в самый верх вставить:
[title]
{title}
[if xfvalue_original] / [xfvalue_original][/if]
[if xfvalue_year] ([xfvalue_year])[/if]
- смотреть онлайн в хорошем качестве
[/title]
[description]
[if short_story]
{full-story limit="150"}
[else]
Смотреть
[catlist=2]фильм[/catlist]
[catlist=3]сериал[/catlist]
[catlist=4,8,9]мультфильм[/catlist]
{title}
[if1 xfvalue_original] / [xfvalue_original][/if1]
[if1 xfvalue_year] [xfvalue_year] года[/if1]
бесплатно, онлайн в хорошем качестве
[/if]
[/description]
[if !keywords]
[keywords]смотреть, онлайн, бесплатно, фильм[/keywords]
[/if]
Все двойные пробелы и табы будет заменены на один пробел.
Примечание: В данном примере ключевые слова заполняются только в том случае, если не заполнены ключи в самой новости.
Пример можно посмотреть на демо сайте
В данном примере использован хак Шаблонизатор условий Tpl-If v.2.0. Но можно использовать и xfgiven_ если их функционала будет достаточно.
Установка:
Открыть файл engine/modules/show.full.php
Найти строку:
$tpl->compile( 'content' );
После нее вставить:
////////////////////////////////////////////////////////////////////////////////////////////////
$simple_meta = array('title','description','keywords');
foreach ($simple_meta as $key) {
if (preg_match("#\[({$key})\](.*?)\[/\\1\]\s*#is", $tpl->result['content'], $meta_found)) {
if ($key == 'title' && $metatags['header_title']) {
} else {
$key = str_replace('title', 'header_title', $key);
$meta_found[2] = preg_replace("#\s{2,}#s", " ", $meta_found[2]);
$metatags[$key] = trim(strip_tags($meta_found[2]));
}
$tpl->result['content'] = str_replace($meta_found[0], "", $tpl->result['content']);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
На этом все :)
Надеюсь хак окажется полезным и поможет вам в продвижении ваших сайтов.
С уважением,
Олег Александрович a.k.a. Sander