Скрываем заминусованный комментарий [решение]

  • strict warning: Declaration of views_handler_field_user_name::init() should be compatible with views_handler_field_user::init(&$view, $data) in /var/www/shvabrashvabr.ru/sites/all/modules/views/modules/user/views_handler_field_user_name.inc on line 61.
  • strict warning: Declaration of views_handler_argument_many_to_one::init() should be compatible with views_handler_argument::init(&$view, $options) in /var/www/shvabrashvabr.ru/sites/all/modules/views/handlers/views_handler_argument_many_to_one.inc on line 169.


Решение вопроса открытого в теме "Скрываем заминусованный комментарий". Самый простой способ — это обернуть комментарий слоем, у которого свойство display = 'none', а затем, при необходимости изменить свойство display на ''. Для того чтобы решить задачу таким способом необходимо в самое начало файла comment.tpl.php добавить строчки:

<?php
$min_rating = 0;
$cmess = "Скрытый комментарий, раскрыть?";
$crating = db_fetch_object(db_query("SELECT `value` FROM {votingapi_cache} WHERE `content_type` = 'comment' AND content_id = %d AND `function` = 'sum' LIMIT 0,1", $comment->cid));
if($crating->value < $min_rating)print "

cid . "\" style=\"display: none;\">";
?>

, а в самый конец этого же файла строчку:

<?php
if($crating->value < $min_rating)print "

";
?>


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

Back to top