Как получить роли автора в template.php? И вывести картинку у его ника

Главные вкладки

Аватар пользователя AntNick AntNick 31 марта 2011 в 17:39

Здравствуйте, в общем, замучился и прошу помочи вот в чем:

мне надо сделать, чтобы в нодах, комментариях, где выводится "Опубликован пользователем Test в Чт, 01/06/2011 - 23:35" рядом с именем пользователя выводилась иконка, если у него есть определенная роль.

В теме Бартик эта функция выглядит так:

function bartik_preprocess_node(&$variables) {
  $variables['submitted'] = t('published by !username on !datetime', array('!username' => $variables['name'], '!datetime' => $variables['date']));
  if ($variables['view_mode'] == 'full' && node_is_page($variables['node'])) {
    $variables['classes_array'][] = 'node-full';
  }
}

И я никак не могу туда запихать роль пользователя. Нашел такой код:

<?php
global $user;
foreach(
$user->roles as $k => $v){
$role $v;
}
print 
$role;
?>

Подставлял переменные в вывод, чтобы хотя бы просто роль пользователя отображалась, но он выводит роль пользователя, просматривающего страницу...

Всякие другие варианты, которые находил, только ошибки и ругательства выдавали. Но основная проблема, как я понимаю, это получить роли пользователя, который является автором ноды или комментария. Ролей, кстати, несколько у юзера может быть. А написать условие, что если у него есть конкретная роль и написать код картинки, не самое сложное.

Вот, прошу помощи, как это реализовать?

Комментарии

Аватар пользователя Dimedrius Dimedrius 4 апреля 2011 в 19:07

Попробуй так:

function название_темы_preprocess_user_profile(&$variables){
  $items = array();
  foreach ($variables['account']->roles as $key => $value)
  if (count($items)) {
  $variables['user_profile'] .= '<h3>Список ролей</h3><dl class="user-roles"><dd>' . theme('item_list',$items) . '</dd></dl>';
  }
}

Надо было по идее работать с переменной $account, а не с $user.