[Решено] Статус пользователя

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

Аватар пользователя Arturus Arturus 24 апреля 2015 в 15:48

Подскажите пожалуйста, как реализовать в Drupal 7 (скрипт, модуль) вывод информации под логином пользователя о том, что он заполнил в своем профиле определенное поле? К примеру юзер в профиле ставит отметку, что он занимается спортом и на сайте под логином ввводить - спортсмен.

Комментарии

Аватар пользователя Arturus Arturus 25 апреля 2015 в 6:06

Вставил в template.php

<?php
function professional_theme_preprocess_comment($variables) {
  
$user $variables['user'];
  
// Full load user
  
$user user_load($user->uid);
  
// Now access your field
  
$city field_get_items('user'$user'field_uzer_city');
  if (
$city) {
    
$variables['author_city'] = $city[0]['safe_value'];
  }
  else {
    
$variables['author_city'] = '';
  }
  
// On your comment.tpl.php using $author_city
}
?>

но в comment.tpl.php переменная $author_city не появилась.

Аватар пользователя Arturus Arturus 25 апреля 2015 в 13:02

Друзья, проблема в том, что поле field_uzer_city в профиле является термином словаря. Подскажите, как в этом случае скорректировать код?

Аватар пользователя Arturus Arturus 25 апреля 2015 в 14:01

Итак, рабочий код, который поможет вывести в профиль (слева от комментария) данные из полей профиля.

Выводим город юзера (город является термином словаря)

в файле template.php

<?php
function Ваша тема_preprocess_comment(&$variables) {
  
$user $variables['user'];
  
// Full load user
  
$user user_load($user->uid);
  
// Now access your field
  
$city field_get_items('user'$user'field_city');

  if (

$city) {
    
$term_id $city[0]['tid'];
    
$term taxonomy_term_load($term_id);
    
$variables['author_city']=$term->name;
  }
  else {
    
$variables['author_city'] = '';
  }

}

?>

В файле comment.tpl.php


<?php print 'Город: '$author_city?>
Аватар пользователя Arturus Arturus 25 апреля 2015 в 14:36

Но этот код выводит данные из профиля автора ноды, а как вывести для автора комментария?
Меняю на

<?php
  $comment 
$variables['comment'];
  
$user comment_load($comment->uid);
?>

вообще ничего не выводит.

Аватар пользователя Arturus Arturus 25 апреля 2015 в 15:35

Вот так получилось

<?php  
$user 
$variables['user'];
$comment $variables['comment'];

$user user_load(array('uid' => $comment->uid));
?>

Всем спасибо!