Привет всем !
Очень понравилось как на некоторых сайтах реализованопостепенное исчезание
..
Решил сделать такое для нашего Инстанта )
Так как я сторонник скорости на сайте, решил сделать все без использования JS и прочего навесного ..
Исчезание коммента происходит посредством CSS.
В самой обработке исчезания используется простейшая математика,
так, что нагрузки на сайт — никакой!
И ко всему еще запускается она только при условии если у коммента есть минусы ..)
Постарался сделать все максимально кроссбраузерно.
Даже в ИЕ старых версий работает .))
Все файлы в архиве :
frontend.php — пишем поверх своего в \components\comments\
comments.php — ту да же в \components\comments\
com_comments_list.tpl — пишем поверх своего в \templates\ВаШ_ШабЛон\components\
com_comments_list_all.tpl — ту да же в \templates\ВаШ_ШабЛон\components\
Краткое описание :
frontend.php, com_comments_list.tpl и
com_comments_list_all.tpl — это для всех обычных комментов и для странички "Все комментарии"
comments.php — этот нужен если у вас комменты выводятся Аяксом.
После этого нужно зайти в свой styles.css и в любом месте вставить вот это :
На этом Все!)
* Все файлы — это дефолт версии 1.9 с доработками, если же эти файлы у вас уже менялись или версия другая, то просто нужно сравнением их склеить. )
Брать тУт
А тут ручное решение ) ::
Очень понравилось как на некоторых сайтах реализовано
постепенное исчезание
заминусованных комментариев
..Решил сделать такое для нашего Инстанта )
Так как я сторонник скорости на сайте, решил сделать все без использования JS и прочего навесного ..
Исчезание коммента происходит посредством CSS.
В самой обработке исчезания используется простейшая математика,
так, что нагрузки на сайт — никакой!
И ко всему еще запускается она только при условии если у коммента есть минусы ..)
Постарался сделать все максимально кроссбраузерно.
Даже в ИЕ старых версий работает .))
Все файлы в архиве :
frontend.php — пишем поверх своего в \components\comments\
comments.php — ту да же в \components\comments\
com_comments_list.tpl — пишем поверх своего в \templates\ВаШ_ШабЛон\components\
com_comments_list_all.tpl — ту да же в \templates\ВаШ_ШабЛон\components\
Краткое описание :
frontend.php, com_comments_list.tpl и
com_comments_list_all.tpl — это для всех обычных комментов и для странички "Все комментарии"
comments.php — этот нужен если у вас комменты выводятся Аяксом.
После этого нужно зайти в свой styles.css и в любом месте вставить вот это :
.hide_bad{-moz-transition: all 0.7s;-webkit-transition:opacity 0.7s;-o-transition:opacity 0.7s;transition:opacity 0.7s} .hide_bad:hover{opacity: 1 !important; filter: alpha(opacity=90) !important; -moz-opacity: 1 !important}
На этом Все!)
* Все файлы — это дефолт версии 1.9 с доработками, если же эти файлы у вас уже менялись или версия другая, то просто нужно сравнением их склеить. )
Брать тУт
Ну и как обычно… сделайте резервные копии и тд и тп ..
А тут ручное решение ) ::
в файле frontend.php (лежащем в \components\comments\)
нужно найти вот это условие
(Внимание! оно встречается в файле 2 раза! 1-для коментов в материале, 2-для странички всех коментов):
и сразу в него добавить вот это :
elseif ($comments[$next]['votes']<0){
В коде выше можно играть с цифрой 5, если ставить больше, то исчезание будет происходить позже..
$hid = 5 - $comments[$next]['votes']; $comments[$next]['hidebad'] = 'opacity: '.$hidd.'; filter: alpha(opacity='.(100 * $hidd).'); -moz-opacity: '.$hidd.'';
умножение убрано,(по математике мне -2((
$hidd — это вычисление показателя прозрачности .
ну а дальше просто формируется CSS и суется в массив ..
Далее, если у вас вывод комментов настроен в админке "с помощью аякса"
нужно в файле comments.php (лежащем в \components\comments\)
найти вот это условие: (Встречается 1 раз)
и сразу в него добавить вот это :
elseif ($comments[$next]['votes']<0){
Ну а в TPL файлах шаблона это: style="{$comment.hidebad}" class="hide_bad"
$hid = 5 - $comments[$next]['votes']; $comments[$next]['hidebad'] = 'opacity: '.$hidd.'; filter: alpha(opacity='.(100 * $hidd).'); -moz-opacity: '.$hidd.'';
и создаст прозрачность нужного элемента при минусовке .
Эти теги можно добавлять к любому нужному элементу в комментах..
Например можно сделать, что бы исчезал только текст (без аватара)
или наоборот весь bad коммент с датой и тп..
сделав вот это: <table class="cmm_entry">
так: <table style="{$comment.hidebad}" class="hide_bad">
(дополнительный стиль можно добавить например вот так:
<table style="padding:5px;color:gray; и тп;{$comment.hidebad}" class="hide_bad">)
И последнее — это добавить стили в свой css (описано чуть выше)
ps. делалось для себя )
так что извиняюсь за некоторые сложности с установкой ..
но зато никаких лишних обработок или еще чего…
+ + + + + + + + + + + + + + + + +
Реклама #
reload 12 лет назад #
SJen 12 лет назад #
чтобы уже совсем не исчезал(я про 99 минусов в примере), а то не очень понятно есть комментарий или просто пустой текст вместо коммента
Def 12 лет назад #
KS 12 лет назад #
Цифры для примера брал в основном здесь на сайте .. Больше -50 не находил .. )
хотя если сильно кому нибудь насолить ..))
deburger 12 лет назад #
а, еще можно по ховеру возвращать прозрачность в нормальное значение... убрал мышь — опять невидно... а-ля хабр
SJen 12 лет назад #
не все смогут просто заменить файлик, он может быть не совсем стандартный..
yury если с хаком ускорения - то глянув на код смогу сказать(). Просто аккуратно добавить код для этого исчезания.. конфликтов не будет, это совсем разные вещи.
KS 12 лет назад #
Я просто сделал в виде файлов для облегчения установки )
Подумал мало кто вносил туда глобальные изменения ..
maia 12 лет назад #
SJen 12 лет назад #
то есть так:
KS 12 лет назад #
Daze77 12 лет назад #
Daze77 12 лет назад #
KS 12 лет назад #
Все это может потихоньку повышать нагрузку . Сделать не сложно , но времени сейчас совсем не хватает (
Максим Шорин 12 лет назад #