Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Модули для DLE » Простые заголовки (метатеги)

Простые заголовки (метатеги)


     15.11.2017    Модули для DLE    5228    10 комментариев

Краткая информация о модуле (хаке)

Автор: Sander
Цена: Бесплатно
Простые заголовки (метатеги)

Приветствую всех и с радостью спешу поделиться с вами простым, но невероятно удобным и полезным инструментом.
Ко мне часто обращались с просьбой сделать заголовок страницы, чтобы он был по шаблону: "Смотреть {title} онлайн", "Скачать торрент {title}" и т.д.
Часто еще нужно было чтобы для разных категорий формировался разный заголовок.
Понятное дело сам алгоритм прост и легко делается на PHP. Но ведь не все знакомы с PHP и смогут правильно и в нужное место прописать код.
Вот данный хак позволяет легко настроить любой заголовок по своему шаблону.

По умолчанию, если у новости не указан индивидуальный заголовок, то он будет сформирован по единому шаблону:
{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]
		{short-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_ если их функционала будет достаточно.

[h2]Установка:[/h2]
Открыть файл 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') $key = 'header_title';
				$meta_found[2] = preg_replace("#\s{2,}#s", " ", $meta_found[2]);
				$metatags[$key] = trim($meta_found[2]);
				$tpl->result['content'] = str_replace($meta_found[0], "", $tpl->result['content']);
			}
		}
////////////////////////////////////////////////////////////////////////////////////////////////

На этом все :)

Надеюсь хак окажется полезным и поможет вам в продвижении ваших сайтов.

С уважением,
Олег Александрович a.k.a. Sander

10 комментариев

baseroad
Юзер

baseroad - 24 июня 2018 19:53 -

А можно как-то [not-catlist=2] сделать?

baseroad
Юзер

baseroad - 16 августа 2018 01:11 -

Не работает, если выводить в другом шаблоне, а не fullstory.tpl. Как сделать, чтобы во всех шаблонах или прописать дополнительный, кроме полной новости?

deadluk
Юзер

deadluk - 16 августа 2018 16:05 -

вместо engine/modules/show.full.php нужно редактировать engine/modules/main.php

Найти строку:
$tpl->compile ( 'main' );


вставить после:
////////////////////////////////////////////////////////////////////////////////////////////////
		$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') $key = 'header_title';
				$meta_found[2] = preg_replace("#\s{2,}#s", " ", $meta_found[2]);
				$metatags[$key] = trim($meta_found[2]);
				$tpl->result['content'] = str_replace($meta_found[0], "", $tpl->result['content']);
			}
		}
////////////////////////////////////////////////////////////////////////////////////////////////


или же после
$tpl->set ( '{content}', "<div id='dle-content'>" . $tpl->result['content'] . "</div>" );

baseroad
Юзер

baseroad - 18 августа 2018 11:33 -

deadluk,
автор модуля сказал, что там нужно совсем другие обработчики прописывать

PuP
Юзер

PuP - 6 декабря 2018 22:21 -

Скажите а с тегом {date} можно такое сотворить?

PuP
Юзер

PuP - 6 декабря 2018 22:22 -


Точнее сделать так чтобы у новости работал тег {date} ? Как на скриншоте.

lutskboy
Эксперт

lutskboy - 7 декабря 2018 13:01 -

PuP что за чушь вы несете. сверху подробная инструкция что и куда

[title]
	Моя новость {date} - смотреть онлайн в хорошем качестве
[/title]

в fullstory.tpl

baseroad
Юзер

baseroad - 27 марта 2019 14:19 -

а как сделать, чтобы то, что я написал между [description][/description] добавлялось еще в <meta property="og:description" content="сюда вставить то что между [description][/description]">

snamp
Юзер

snamp - 17 декабря 2019 12:07 -

Для категорий бы такой

ZHARAR
Юзер

ZHARAR - 23 декабря 2019 22:55 -

классно

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх