
Представляем модуль для DLE Автоматическое создание содержания статьи автор Олег Александрович a.k.a. Sander будет полезна многим блогам, суть создания списка с тегами заголовка H2-H6 на динамической и статической странице сайта. Содержание статьи формируется в автоматическом режиме, как на популярном проекте электронной энциклопедии ВИКИ (Википедии).
чтобы информационный портал из-за повторения (или переоптимизации) не пострадал, в этом плане рекомендуется проконсультироваться с СЕО специалистами,, хотя поисковики не индексируют ссылки с хеш тегом (википедия к примеру).
Вот пример страницы на которой сформировано большое количество заголовков и подзаголовков:
Например по образу википедии:
Или пример с большим количеством заголовков и подзаголовков:
Пример формируемого 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;
Примеры:
С уважением,
Олег Александрович a.k.a. Sander
Совместимая версия DLE: 9.0 и старше
Автор: Sander
Инструкция по установке и поддержка модуля: