ПафНутиЙ-Блог » Статьи » Модифицируем вид коментариев на сайте.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для DLE 8.2 нужно править только файл <!--scode1--><!--escode1-->engine/classes/comments.class.php<!--scode2--><!--escode2-->

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

P.S.
За подсказку насчёт {group-id} спасибо flake с форума 4dle.
Обновлено: 31 августа 2009
(Добавлена установка на DLE 8.2)

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

  • Подсветка новостей и комментариев в DLE не вмешиваясь в php
  • Вывод новостей в 2 колонки.
  • Оформляем панель авторизации в DLE
  • Подсветка комментариев автора новости с помощью jQuery

Комментарии

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


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

а на 7.3 работать будет? Сделал все, но не заработало...
Dongwoo Animation
Dongwoo Animation 27 октября 2010 16:18
Ответов: 0 #296
На 9.0 работает?
ПафНутиЙ
ПафНутиЙ 27 октября 2010 17:51
Ответов: 0 #299
Да. Насколько мне известно comment.class.php не принципиально изменился начиная с версии 8.2, а на 8.2 работает.
despjke
despjke 3 ноября 2010 20:23
Ответов: 0 #325
на 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
Ответов: 0 #394
На девятке тоже работает winked

Информация

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