Исчезающие плохие комментарии (*Хак))

+31
2.48K
Привет всем !
Очень понравилось как на некоторых сайтах реализовано

постепенное исчезание
заминусованных комментариев

..
Решил сделать такое для нашего Инстанта )



Так как я сторонник скорости на сайте, решил сделать все без использования 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.  
  2. .hide_bad{-moz-transition: all 0.7s;-webkit-transition:opacity 0.7s;-o-transition:opacity 0.7s;transition:opacity 0.7s}
  3. .hide_bad:hover{opacity: 1 !important; filter: alpha(opacity=90) !important; -moz-opacity: 1 !important}
  4.  

На этом Все!)

* Все файлы — это дефолт версии 1.9 с доработками, если же эти файлы у вас уже менялись или версия другая, то просто нужно сравнением их склеить. )

Брать тУт


Ну и как обычно… сделайте резервные копии и тд и тп ..

А тут ручное решение ) ::


в файле frontend.php (лежащем в \components\comments\)

нужно найти вот это условие
(Внимание! оно встречается в файле 2 раза! 1-для коментов в материале, 2-для странички всех коментов)
:

  1.  
  2. elseif ($comments[$next]['votes']<0){
  3.  
и сразу в него добавить вот это :
  1.  
  2. $hid = 5 - $comments[$next]['votes'];
  3. $hidd = number_format (($hid + $comments[$next]['votes']) / $hid , 1);
  4. $comments[$next]['hidebad'] = 'opacity: '.$hidd.'; filter: alpha(opacity='.(100 * $hidd).'); -moz-opacity: '.$hidd.'';
  5.  
В коде выше можно играть с цифрой 5, если ставить больше, то исчезание будет происходить позже..
умножение убрано,(по математике мне -2((
$hidd — это вычисление показателя прозрачности .
ну а дальше просто формируется CSS и суется в массив ..

Далее, если у вас вывод комментов настроен в админке "с помощью аякса"
нужно в файле comments.php (лежащем в \components\comments\)
найти вот это условие: (Встречается 1 раз)
  1.  
  2. elseif ($comments[$next]['votes']<0){
  3.  
и сразу в него добавить вот это :
  1.  
  2. $hid = 5 - $comments[$next]['votes'];
  3. $hidd = number_format (($hid + $comments[$next]['votes']) / $hid , 1);
  4. $comments[$next]['hidebad'] = 'opacity: '.$hidd.'; filter: alpha(opacity='.(100 * $hidd).'); -moz-opacity: '.$hidd.'';
  5.  
Ну а в TPL файлах шаблона это: style="{$comment.hidebad}" class="hide_bad"
и создаст прозрачность нужного элемента при минусовке .
Эти теги можно добавлять к любому нужному элементу в комментах..
Например можно сделать, что бы исчезал только текст (без аватара)
или наоборот весь 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. делалось для себя )
так что извиняюсь за некоторые сложности с установкой ..
но зато никаких лишних обработок или еще чего… v

+ + + + + + + + + + + + + + + + +

+2
reload reload 12 лет назад #
Красиво, просто, +
+1
SJen SJen 12 лет назад #
только, наверно, максимальную прозрачность надо ограничить
чтобы уже совсем не исчезал(я про 99 минусов в примере), а то не очень понятно есть комментарий или просто пустой текст вместо коммента
0
Def Def 12 лет назад #
SJen, а как скрестить с втвоими комментами? ты же чтото там оптимизировал
+1
KS KS 12 лет назад #
Точно не помню, но полное исчезание примерно на ~80 минусах .
Цифры для примера брал в основном здесь на сайте .. Больше -50 не находил .. )

хотя если сильно кому нибудь насолить ..))
0
deburger deburger 12 лет назад #
в этом же суть, чтоб плохое не показывать, дабы не смущать пользователей ;)
а, еще можно по ховеру возвращать прозрачность в нормальное значение... убрал мышь — опять невидно... а-ля хабр
+1
SJen SJen 12 лет назад #
KS, напишите если можно суть изменений - что по коду вставлять, там же не много?
не все смогут просто заменить файлик, он может быть не совсем стандартный..


yury если с хаком ускорения - то глянув на код смогу сказать(). Просто аккуратно добавить код для этого исчезания.. конфликтов не будет, это совсем разные вещи.
+1
KS KS 12 лет назад #
Ок, напишу .
Я просто сделал в виде файлов для облегчения установки )
Подумал мало кто вносил туда глобальные изменения ..
+1
maia maia 12 лет назад #
Очень интересненько )
0
SJen SJen 12 лет назад #
умножение на -1 это преобразование из отрицательного в положительное число. (проще не смог придумать)
И все-таки можно проще - просто вычесть отрицательное число (минус на минус:) )
то есть так:
Код PHP:
$hid = 5 - $comments[$next]['votes'];
0
KS KS 12 лет назад #
это я не с того конца потому что придумывал ))
0
Daze77 Daze77 12 лет назад #
А на сколько сложно реализовать данный хак в плагин?
0
Daze77 Daze77 12 лет назад #
Нету ли у вас такого желания?
0
KS KS 12 лет назад #
Я не очень хорошо отношусь к большому кол-ву плагинов в системе ..
Все это может потихоньку повышать нагрузку . Сделать не сложно , но времени сейчас совсем не хватает (
+5
Максим Шорин Максим Шорин 12 лет назад #
по-моему лучше плагины в системе чем хаки, легче обновляться. на счет повышения нагрузки , думаю неоправданно, не на столько много она и повышается, если вообще повышается.. joke

Еще от автора

Похожие в Универсальном каталоге (хак для 1.x)
На одном из сайтов, где используется универсальный каталог для вывода различных товаров и тд, появилась необходимость сделать вывод похожих при просмо
Плагин  'Вставить фото из своих альбомов' (ver.1.10* & &uarr;)
Добрый день! Заметил одну особенность..
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.