Сообщение об отсутствии комментариев на jQuery
Сегодня представлю небольшой скриптик, для того, чтобы сообщать юзерам об отсутствии комментариев к новости, но так как я не сторонник вмешиваться из-за таких мелочей в двиг, сделаем это на jQuery.
В сети есть хаки, которые выводят сообщение «нет комментариев» если их нет, но это ХАКИ! Что будет с ним, когда вы решите обновить DLE до актуальной версии? А если ещё и забыли как ставили…… в общем очередная головная боль.
Всем известно, что в DLE девятой линейки уже встроена библиотека jquery? так почему бы не воспользоваться её возможностями, а не возможностями php?
Сегодня представлю небольшой скриптик, для того, чтобы сообщать юзерам об отсутствии комментариев к новости, но так как я не сторонник вмешиваться из-за таких мелочей в двиг, сделаем это на jQuery.
В сети есть хаки, которые выводят сообщение «нет комментариев» если их нет, но это ХАКИ! Что будет с ним, когда вы решите обновить DLE до актуальной версии? А если ещё и забыли как ставили…… в общем очередная головная боль.
Всем известно, что в DLE девятой линейки уже встроена библиотека jquery? так почему бы не воспользоваться её возможностями, а не возможностями php?
Итак:
Началось всё с того, что на сайте, в силу специфика вёрстки блок с комментариями, при их отсутствии оставался пустым и выглядело это не очень призентабельно. Поэтому и был найден несложный способ «заполнить» эту пустоту.
Для начала очмечу, что вывод комментариев осуществляется через тег {commеnts} в fullstory.tpl.
Теперь перейдём к разбору кода.
Для начала обернём тег {commеnts} в div с идентификатором fornocomments (вы можете использовать любой id, какой душе угодно) в результате получим вот такую конструкцию:
{comments}
</div>
Далее «включаем» логическое мышление:
— Если к новости есть хоть один комментарий, то он в любом случаи будет заключён в чтото типа:
— Если же комментариев к новости нет, значит и не будет блока с идентификатором комментария.
Отсюда делаем нехитрый вывод и пишем jquery скрипт:
var comments_block = $(«#fornocomments»);
if (comments_block.find(«div[id*=comment-id-]»).first().text() == «») {comments_block.prepend(‘<div class=»nocomments»>Комментариев пока нет</div>’);}
});
где:
это назначение переменной , для дальнейшей «удобности» работы (вдруг мы ещё чтото захотим покодить на jquery для комментариев )
далее условие:
т.е. если в блоке с id=»fornocomments» не найдётся ни одного блока, содержащего в идентификаторе слова comment-id- и имеющего внутри себя текст, то произойдёт:
внутрь блока с id=»fornocomments» добавится блок с классом nocomments и текстом Комментариев пока нет
В противном случаи ничего не произойдёт.
Вот собственно и весь скрипт.
Далее помещаем наш скрипт в файл с расширением .js, лучше всего в отдельный, чтобы лишний раз не нагружать браузер пользователя лишним js-кодом, закидываем в папку с шаблоном (обычно это папка /js) и подключаем файл в fullstory.tpl (опять же, чтобы скрипт не вызывался в других местах и не тратил «силы» браузера)