» » Модифицируем вид коментариев на сайте.

Модифицируем вид коментариев на сайте.

24.08
12
20 310
Наверняка многие видели на некоторых сайтах и в блогах, что комментарии администратора отличаются по внешнему виду от комментариев пользователей.
Это очень удобно т.к. комментарий сразу заметно. Жалко только что в DLE нет такой возможности.
Сегодня будем исправлять этот недостаток, но пойдём немного дальше и сделаем возможность использовать своё оформление для любой группы пользователей.

Концепция проста:
Присвоить каждой группе пользователей свой стиль отображения комментариев через CSS на основании ID этих групп, с помошью тега {group-id}

Но проблема в том что в DLE нет возможности поставить тег {group-id} в шаблон комментариев.
Чтобы реализовать эту возможность нам нужно поправить файлы show.full.php и lastcomments.php

1. Открываем show.full.php.

Ищем: $tpl->set('{group-name}', $user_group[$row['user_group']]['group_name']);

Ниже пишем: $tpl->set( '{group-id}', $user_group[$row['user_group']]['id']);

2. Открываем lastcomments.php.

Ищем: $tpl->set('{group-name}', $user_group[$row['user_group']]['group_name']);

Ниже пишем: $tpl->set( '{group-id}', $user_group[$row['user_group']]['id']);

Всё, теперь при вставке в шаблон comments.tpl тега {group-id} будет выводиться ID группы пользователя.

Ну а остальное дело техники:

В style.css создаём стили для каждой из групп пользователей:
.com_1 {background: #fdf5e6;}
.com_2,.com_3,.com_4,.com_5, {background: #fff;}

В comments.tpl пишем примерно следующее:
<div class="com_{group-id}"> тут код шаблона </div>
Таким образом при публикации комментария {group-id} будет принимать значение от 1 до 5 и задавать соответствующий css-класс. В данном примере оментарии администраторов будут на светло-оранжевом фоне, а коментарии остальных пользователей на белом фоне.

Дальше включаем воображение и красиво оформляем комментарии у себя на сайте.

Для DLE 8.2 нужно править только файл engine/classes/comments.class.php

Пример работы можно посмотреть на Cinamamir.com

P.S.
За подсказку насчёт {group-id} спасибо flake с форума 4dle.

Похожие материалы

Комментарии

DLE
DLE 17 февраля 2010 10:45
&lt;div class=&quot;com_{group-id}&quot;&gt; тут код шаблона &lt;/div&gt;


код шаблона - это название?
ПафНутиЙ
ПафНутиЙ 17 февраля 2010 10:48
нет, код шаблона - это содержимое файла comments.tpl
DLE
DLE 17 февраля 2010 11:05
Ааа... все же ясно написано respekt буду пробовать ставить

а на 7.3 работать будет? Сделал все, но не заработало...
Dongwoo Animation
Dongwoo Animation 27 октября 2010 16:18
На 9.0 работает?
ПафНутиЙ
ПафНутиЙ 27 октября 2010 17:51
Да. Насколько мне известно comment.class.php не принципиально изменился начиная с версии 8.2, а на 8.2 работает.
despjke
despjke 3 ноября 2010 20:23
на 9-ке в файле comments.class.php находим
$tpl->set( '{group-name}', $user_group[$row['user_group']]['group_prefix'].$user_group[$row['user_group']]['group_name'].$user_group[$row['user_group']]['group_suffix'
] );

ну и после нее ставим
$tpl->set( '{group-id}', $user_group[$row['user_group']]['id']);

и все smile
LUCEfeel
LUCEfeel 5 декабря 2010 03:35
На девятке тоже работает winked
shmel1985
shmel1985 16 августа 2013 18:15
На 9.6 работает нормально, обновил к 10, устанавливаю данный хак и не работает, просьба помочь разобраться с DLE 10
ПафНутиЙ
ПафНутиЙ 16 августа 2013 19:28
А что выводит?
shmel1985
shmel1985 16 августа 2013 19:48
1. Открываем show.full.php.
Ищем:
$tpl->set('{group-name}', $user_group[$row['user_group']]['group_name']);

там такого нет, я добавил после 917 строки
if (stripos ( $tpl->copy_template, "{custom" ) !== false) {
			$tpl->copy_template = preg_replace_callback ( "#\{custom(.+?)\}#i", "custom_print", $tpl->copy_template );
		}

$tpl->set( '{group-id}', $user_group[$row['user_group']]['id']);

И вот что у нас получается
ПафНутиЙ
ПафНутиЙ 16 августа 2013 20:06
engine/classes/comment.class.php
$tpl->set( '{group-name}', $user_group[$row['user_group']]['group_prefix'].$user_group[$row['user_group']]['group_name'].$user_group[$row[&
#39;user_group']]['group_suffix'] );

после этого кода и вставляйте.
shmel1985
shmel1985 16 августа 2013 20:57
ПафНутиЙ Спасибо работает.

Добавить комментарий

Комментировать могут только зарегистрированные пользователи

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.