Как вывести в comment.tpl.php данные из профиля (6-й друпал)

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

Аватар пользователя Valeratal Valeratal 31 марта 2009 в 23:33

Такой вопрос
есть код, работает для форумных нод

<?php if ($account->profile_city) print $account->profile_city .'<br/>'; ?>

Но, если я вставляю его в comments.tpl.php, то отображается данные из профиля автора ноды, а не автора комментария

Подскажите, как правильно сделать?

Заранее спасибо

Комментарии

Аватар пользователя ankheg ankheg 1 апреля 2009 в 0:12

Можно в comment.tpl.php написать что-то вроде

<?php
if ($comment->uid != 0) {
  
$user user_load(array('uid' => $comment->uid));
  print 
$user->profile_city;
}
?>

Но это плохо скажется на производительности.

Аватар пользователя Valeratal Valeratal 1 апреля 2009 в 9:03

спасибо
производительность - в связи с тем, что комментариев много на одной странице? и для каждого юзера друпалу придется делать этот запрос?

А я ведь думал о выводе не одного поля Smile

Аватар пользователя ankheg ankheg 1 апреля 2009 в 10:42

"Valeratal" wrote:
производительность - в связи с тем, что комментариев много на одной странице?

Да. Скажем, 50 комментариев на странице - нужно будет вызвать user_load() 50 раз. Лишние запросы к бд - от 50 штук, а скорее от 100 - добавят десятые доли секунды к генерации страницы. Вкюченный кеш MySQL отчасти решит проблему.