УрокВыделение комментариев (аноним, автор статьи, админ)

Комментарии - довольно часто используемый модуль друпала. И хорошим тоном считается выделение комментариев анонимов, или автора статьи, или админа, или их всех сразу. Теперь о том как это сделать.

Для того чтобы менять фон для комментариев разного типа, достаточно влесть в создание комментириев и повесить на коммент определённый класс, а потом в зависимости от этого класса через css вешать фон на эти стили.

Чтобы это всё сделать, вставьте следуйщий код в template.php:

function имяТемы_preprocess_comment(&$vars, $hook) {
  global $user;
 
  $node = node_load($vars['comment']->nid);
  $vars['author_comment'] = $vars['comment']->uid == $node->uid ? TRUE : FALSE; //опеределяет, текущий пользователь автор статьи или нет
 
  $comment_classes = array();
 
  static $comment_odd = TRUE;
  $comment_classes[] = $comment_odd ? 'odd' : 'even'; // делает "зебру" чередованием классов
  $comment_odd = !$comment_odd;
 
  if ($vars['comment']->status == COMMENT_NOT_PUBLISHED) {
    $comment_classes[] = 'comment-unpublished'; //если коммент неопубликован - добавится класс <strong>.comment-unpublished</strong>
    $vars['unpublished'] = TRUE;
  }
  else {
    $vars['unpublished'] = FALSE;
  }
 
  if ($vars['author_comment']) {
    $comment_classes[] = 'comment-by-author'; //если проверка на автора статьи сработала, до добавится класс <strong>.comment-by-author</strong>
  }
 
  if ($vars['comment']->uid == 0 ) {
    $comment_classes[] = 'comment-by-anon'; //если аноним - то коммент будет с классом <strong>.comment-by-anon</strong>
  }
 
  $vars['comment_classes'] = implode(' ', $comment_classes); //добавляются классы к комменту
}

Всё, сохраняем и чистим кэш. Теперь каждый коммент будет с классом "аноним" или "автор статьи" или "неопубликованный" + каждый класс будет либо "odd" либо "even" для "зебры".

Комментарии

Аватар пользователя D.Choomc
D.Choomc написал:

thanx man!!! и еще большое спасибо за комменты в коде. Я просто с пхп еще на Вы)) Так что будет легче понять.

02.09.2010 20:41
Аватар пользователя mamba
mamba написал:

А если ГЛАВНЫЙ admin?

26.02.2012 16:54
Аватар пользователя live
live написал:

Это для шестерки?Где подобное на семерку найти?Уже весь моск трещит по швам.
Знакомые разработчики говорят чтоб за пхп пока небрался,иначе вообще зависнуть можно,а делать стандатртными способами,но потребности упирабтся в кодирование.хз.как быть.Все что есть нормального,подходит под шестерку.Но что то после семреки я в шестерке себя уже неуютно чувствую))

05.04.2012 14:41

Комментировать