Ссылка на последний комментарий/последнюю страницу

Главные вкладки

Аватар пользователя Ingumsky Ingumsky 27 ноября 2009 в 18:49

Пользователи на моём сайте стали жаловаться на то, что по ссылке на названия топика в блоке «Горячие темы» (список пяти последних топиков с новыми комментариями) они попадают на первую страницу, а не на последнюю. Попросили подумать над тем, чтобы сделать ссылку на последнюю страницу/комментарий. В общем, предложение здравое, поэтому я подумал, что нужно это реализовать. Сперва решил переделать этот блок с помощью views, нашёл даже в дефолтовых вьюсах отключенный у меня «вид» с последними комментариями и почти тотчас столкнулся с проблемой — ссылка на последний комментария работает только тогда, когда он находится на первой странице.

Предположим, что у вас есть тип нод story, для которого указано, что на странице должно отображаться 5 комментариев, так вот: для первых пяти ссылка, идущая в том самом вьюсе, работать будет (example.net/node/3#comment-1 будет вести на сам комментарий), а при клике на шестой и дальше (example.net/node/3#comment-6) вы попадёте на первую страницу, что логично, так как анкора comment-6 в коде на этой странице не будет...

ОК, тогда я решил посмотреть решение где-нибудь ещё, поискать сниппет, ибо очевидно, что не я первый, кто столкнулся с подобной проблемой. Полез почитать API, посмотрел у нас, на сетегноме и на .org, как кто решал подобную задачу, и... не нашёл. Какие я только варианты поисковых запросов не перепробовал, ничего не нашёл... Из API я почерпнул только, что полезной, возможно, была бы функция [ru-api=theme_pager_last]theme_pager_last[/ru-api], но я не уверен в том, что касается правильности её использования, тем более ещё и пять раз на блок её гонять...

В принципе, я вижу следующий вариант в том, что касается views — изменить вывод ссылки на комментарий, переписав её с помощью токенов. Фактически, нужно нечто вроде [node]?page=[page-num]#comment-[cid]. Проблема лично для меня в том, откуда взять [page-num]? Если кто-нибудь занимался решением подобной задачи, подскажите, пожалуйста, куда копать?

Комментарии

Аватар пользователя Arturus Arturus 12 октября 2010 в 5:06

Мне вот это решение через яваскрипт помогло
http://drupal.org/node/26966#comment-2428472

Просто вставить в шапку код
<script type="text/javascript" src="http://winhlp.com/commentlink.js"></script>
или скачать яваскрипт http://winhlp.com/commentlink.js, залить к себе на сайт и прописать к нему пути.

Аватар пользователя НовичОК НовичОК 12 октября 2010 в 19:43

Блин! Работает!! Супер. Я смотрел на эту статью, но так и не понял, что делать. А вы по русски написал. Lol
Работает . Спасибо!
Интересно, это код грузит сайт?
Жаль только что некоторая задержка идет

Аватар пользователя НовичОК НовичОК 14 октября 2010 в 16:52

К сожалению, очень кривое решение. Если пейджинг комментариев занимает 3-5-7 страниц и так далее, этот скрипт перелистывает все страницы!! соответственно, думаю, создается нагрузка на сайт, да и ждать финала долго приходится. Sad