Сообщение об отсутствии комментариев на jQuery

Без рубрики

Сегодня представлю небольшой скриптик, для того, чтобы сообщать юзерам об отсутствии комментариев к новости, но так как я не сторонник вмешиваться из-за таких мелочей в двиг, сделаем это на jQuery.

В сети есть хаки, которые выводят сообщение «нет комментариев» если их нет, но это ХАКИ! Что будет с ним, когда вы решите обновить DLE до актуальной версии? А если ещё и забыли как ставили…… в общем очередная головная боль.

Всем известно, что в DLE девятой линейки уже встроена библиотека jquery? так почему бы не воспользоваться её возможностями, а не возможностями php?

Сегодня представлю небольшой скриптик, для того, чтобы сообщать юзерам об отсутствии комментариев к новости, но так как я не сторонник вмешиваться из-за таких мелочей в двиг, сделаем это на jQuery.

В сети есть хаки, которые выводят сообщение «нет комментариев» если их нет, но это ХАКИ! Что будет с ним, когда вы решите обновить DLE до актуальной версии? А если ещё и забыли как ставили…… в общем очередная головная боль.

Всем известно, что в DLE девятой линейки уже встроена библиотека jquery? так почему бы не воспользоваться её возможностями, а не возможностями php?
Итак:
Началось всё с того, что на сайте, в силу специфика вёрстки блок с комментариями, при их отсутствии оставался пустым и выглядело это не очень призентабельно. Поэтому и был найден несложный способ «заполнить» эту пустоту.

Для начала очмечу, что вывод комментариев осуществляется через тег {commеnts} в fullstory.tpl.

Теперь перейдём к разбору кода.

Для начала обернём тег {commеnts} в div с идентификатором fornocomments (вы можете использовать любой id, какой душе угодно) в результате получим вот такую конструкцию:

<div class=»comments» id=»fornocomments»>
    {comments}
</div>

Далее «включаем» логическое мышление:
— Если к новости есть хоть один комментарий, то он в любом случаи будет заключён в чтото типа:

<div id=»comment-id-100″>Комментарий номер 100</div>

— Если же комментариев к новости нет, значит и не будет блока с идентификатором комментария.

Отсюда делаем нехитрый вывод и пишем jquery скрипт:

$(function(){    
var comments_block = $(«#fornocomments»);
if (comments_block.find(«div[id*=comment-id-]»).first().text() == «») {comments_block.prepend(‘<div class=»nocomments»>Комментариев пока нет</div>’);}
});

где:

var comments_block = $(«#fornocomments»);

это назначение переменной , для дальнейшей «удобности» работы (вдруг мы ещё чтото захотим покодить на jquery для комментариев )
далее условие:

if (comments_block.find(«div[id*=comment-id-]»).first().text() == «»)

т.е. если в блоке с id=»fornocomments» не найдётся ни одного блока, содержащего в идентификаторе слова comment-id- и имеющего внутри себя текст, то произойдёт:

comments_block.prepend(‘<div class=»nocomments»>Комментариев пока нет</div>’);

внутрь блока с id=»fornocomments» добавится блок с классом nocomments и текстом Комментариев пока нет

В противном случаи ничего не произойдёт.
Вот собственно и весь скрипт.
Далее помещаем наш скрипт в файл с расширением .js, лучше всего в отдельный, чтобы лишний раз не нагружать браузер пользователя лишним js-кодом, закидываем в папку с шаблоном (обычно это папка /js) и подключаем файл в fullstory.tpl (опять же, чтобы скрипт не вызывался в других местах и не тратил «силы» браузера)