DLE Автоматическое создание содержания статьи

Категория: Модули DLE » Модуль для DLE 13.1, 13.0, 12.1, 12.0, 11.3, 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8
DLE Автоматическое создание содержания статьи
Представляем модуль для DLE Автоматическое создание содержания статьи автор Олег Александрович a.k.a. Sander будет полезна многим блогам, суть создания списка с тегами заголовка H2-H6 на динамической и статической странице сайта. Содержание статьи формируется в автоматическом режиме, как на популярном проекте электронной энциклопедии ВИКИ (Википедии).
DLE Автоматическое создание содержания статьи

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

Вот пример страницы на которой сформировано большое количество заголовков и подзаголовков:

Например по образу википедии:

Или пример с большим количеством заголовков и подзаголовков:

Пример формируемого HTML кода:

<ul class="h-menu">
	<li id="hmenu-item-1"><a href="#hmenu-1"><span>1</span> История</a></li>
	<li id="hmenu-item-2"><a href="#hmenu-2"><span>2</span> Различия описания концепции шаблона</a></li>
	<li id="hmenu-item-3"><a href="#hmenu-3"><span>3</span> Назначение</a></li>
	<li id="hmenu-item-4">
		<a href="#hmenu-4"><span>4</span> Концепция</a>
		<ul>
			<li id="hmenu-item-5"><a href="#hmenu-5"><span>4.1</span> Модель</a></li>
			<li id="hmenu-item-6"><a href="#hmenu-6"><span>4.2</span> Представление</a></li>
			<li id="hmenu-item-7"><a href="#hmenu-7"><span>4.3</span> Контроллер</a></li>
			<li id="hmenu-item-8"><a href="#hmenu-8"><span>4.4</span> Функциональные возможности и расхождения</a></li>
		</ul>
	</li>
	<li id="hmenu-item-9"><a href="#hmenu-9"><span>5</span> Условно-обязательные модификации</a></li>
	<li id="hmenu-item-10"><a href="#hmenu-10"><span>6</span> Наиболее частые ошибки</a></li>
</ul>



Формируемый html код на страницы сайта сделать в целом достаточно легко, все изменения можно быстро выполнить в самом файле модуля.

Внимание: Следует внимательно составлять и смотреть за иерархией используемых тегов. Например, если установить первый тег H3, а далее поставите тег H2, то он и все что ниже отображаться не будет.

Установка:
Скачать модули для DLE, модуль файла headers_menu.php и распаковать в папку engine/mods



Открыть файл engine/modules/show.full.php
Найти строку:

		$tpl->set( '{navigation}', "<!--dlenavigationcomments-->" );


После нее вставить:

		include_once ENGINE_DIR . '/mods/headers_menu.php';


В шаблоне fullstory.tpl использовать код:

[hmenu]<div class="contents">
	<h2>Содержание:</h2>
	<ul class="h-menu">{hmenu}</ul>
</div>
<script>
$(document).on('click', 'a[href*=hmenu-]', function(e){
	e.preventDefault();
	var id = $(this).attr('href');
	var top = $(id).offset().top - 90;
	$('html,body').animate({scrollTop:top + 'px'});
})
</script>
<style>
.contents{
	background: #F8F9FA;
	border: 1px solid #A2A9B1;
	padding: 15px 20px 10px 5px;
	display: table;
	border-radius: 2px;
	margin-top: 15px;
}
.contents>h2{
	margin: 0;
	padding: 0 0 15px;
	font: bold 17px 'Trebuchet MS';
	text-align: center;
}
.contents ul{
	margin: 0;
	padding: 0 0 0 20px;
	list-style: none;
}
.contents ul li{
	margin: 0;
	padding: 1px 0;
}
.contents ul li span{
	color: #444;
	font-size: .9em;
}
</style>
[/hmenu]




Установка для статической страницы

Открыть файл engine/modules/static.php
Найти строку:

			$tpl->set( '{static}', $template );


ПЕРЕД ней вставить:

			include_once ENGINE_DIR . '/mods/headers_menu.php';
			$menulist = HeadersMenu::init($template);
			$template = $menulist . $template;


Эту функцию можно добавить на страницу "Предварительный просмотр" в админке, чтобы перед добавлениеи формирование содержания статьи увидеть предварительный результат.

Открыть файл:
engine/inc/preview.php - админка
engine/preview.php - сайт
Найти строку:

        $tpl->set('{short-story}', stripslashes($short_story));


Перед ней вставить:

        include_once ENGINE_DIR . '/mods/headers_menu.php';
        $menulist = HeadersMenu::init($full_story);
        $full_story = $menulist . $full_story;


Примеры:

DLE Автоматическое создание содержания статьи

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

Совместимая версия DLE: 9.0 и старше
Автор: Sander
Инструкция по установке и поддержка модуля:
Представляем модуль для DLE Автоматическое создание содержания статьи автор Олег Александрович a.k.a. Sander будет полезна многим блогам всё лучшее у нас форумы, хаки, модули, шаблоны.
  • 80
Рубрика: DLE модули » Бесплатные
Ранее » InstaLink фотографии из Instagram на сайте DLE« Далее Модуль DLE статистика сайта «LightStat»
Нажмите на ссылку, чтобыОставить комментарий