TCSE

Как поставить якорь для комментария в DLE 11

Думаю многие сталкивались с тем, что в DLE нет возможности перейти по прямой ссылке на нужный комментарий, по-умолчанию мы можем только пролистать до блока со всеми камментами, а уже там листать самостоятельно. Но есть возможность частично это исправить.

Новые теги появившиеся в DataLife Engine 11 наконец-то позволили добавить худо-бедно поддержку якорей для перехода к конкретным комментариям внутри публикации.

Для самых нетерпеливых пример кода:

в шаблоне comments.tpl для заголовка комментария пишем:

[aviable=lastcomments] {* отображает свое содержимое только при просмотре страницы /index.php?do=lastcomments  *}
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
	<h3 style="margin-bottom: 0.4em;"><a href="{news-link}-id-{id}">{news-title}</a></h3>
</div>
[/aviable]


в ком же шаблоне в начале блока с комментариев добавляем

<a href="#comment-id-{id}" title="постоянная ссылка на комментарий"><span class="badge">#{id}</span></a> 


Ну а теперь немного теории:



Онлайн-документация по шаблонам DLE на официальном сайте разработчиков выдает достаточно скудный набор поддерживаемых тегов. Полезных для создания якоря только два.

{comment-id}
Идентификационный номер комментария


{news-link}
Выводит URL новости, которой принадлежит данный комментарий, при просмотре последних комментариев. При выводе комментариев в новости тег вырезается. Данный тег будет полезен при использовании пользовательского вывода комментариев и при показе последних комментариев.


А вот альтернативная база документации по DLE, проект dle-doc.ru указывает еще на один крайне полезный, но не описанный в официальной документации тег

{id}
Идентификационный номер комментария в БД


Именно этот тег позволяет реализовать ссылку на якорь к конкретному комментарию внутри полной новости.
Как поставить якорь для комментария в DLE 11

<a href="#comment-id-{id}">#{id}</a>


пример #comment-id-114

Всем хорош данный метод, но и он увы не совершенен :(

Подобным образом не работают переходы к комментариям если они располагаются на второй и последующих страницах
Как поставить якорь для комментария в DLE 11

пример #comment-id-260

Так-же он не сработает, если у вас включена динамическая загрузка комментариев.

Но даже такое решение - лучше, чем ничего.