Вывод автарки анонимных юзеров в комментариях при определенном условии.

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

Аватар пользователя Alex_web Alex_web 27 июня 2014 в 19:37

Добрый день, уважаемые.
Подскажите, пожалуйста, ответы на два вопроса:

  1. С помощью какого кода в шаблоне отображения комментария comment.tpl выводить дефолтную аватарку для незарегистрированных пользователей?
  2. Я создал дополнительное поле комментария (тип виджета - изображение), для добавления собственной аватарки анонимными юзерами. Как в шаблоне comment.tpl задать условие: если добавлена автарка (field_avatar) к комментарию -> то выводим эту аватарку, если автарка не добавлена, то выводим дефолтную аватарку?
    Примерно как здесь нужно http://www.racionika.ru/l/standalone/kak-bystro-pokhudet/?utm_source=vko....

Комментарии

Аватар пользователя Dirst Dirst 28 июня 2014 в 7:56

Очень просто. Нужно по условию выводить поле. У меня такой код в comment.tpl

И такой в модуле или можно засунуть в template.php
function get_user_avatar($user){
$user = user_load($user->uid);
if($user->uid)
return field_view_field('user', $user, 'field_avatar',
array(
'type' => 'image',
'label'=>'hidden',
'settings' => array(
'image_style' => 'circle',
'image_link' => 'content',
)
));
else
return "";
}

?>

Аватар пользователя Alex_web Alex_web 29 июня 2014 в 13:46

Спасибо за ответ. Но так выводятся дефолтные аватарки у всех гостей подряд. Не срабатывает условие: если добавлена автарка (field_avatar) к комментарию -> то выводим эту аватарку, если автарка не добавлена, то выводим дефолтную аватарку.

Возможно у комментариев машинные имена полей как-то по другому определяются? А я взял из ссылки редактирования поля, как у обычной ноды.
Ваш код добавил в самый низ template.php.

Собственно вот страница http://maria-psy.ru/?q=intensiv-sekrety-seksualnogo-blagopoluchiya. Правда комментарии там ещё не темизированы.

Аватар пользователя Dirst Dirst 29 июня 2014 в 6:40

<?php $av = get_user_avatar($cuser); ?>
Забыл переменная $cuser это переменная в которой хранится объект текущего пользователя, который оставил комментарий - его надо получить.
<?php $cuser = user_load($comment->uid); ?>

Так должно заработать.

Аватар пользователя Alex_web Alex_web 29 июня 2014 в 13:57

Куда это дописать, не подскажите?
Сделал так:


<?php $cuser user_load($comment->uid); ?>
<?php $av 
get_user_avatar($cuser); ?>
<?php 
print render($av); ?>

Всё оформление слетело.

Аватар пользователя drupby drupby 29 июня 2014 в 14:54

"x_88_x" wrote:
Всё оформление слетело.

у друпала просто крышу сорвало после кузера

в настройках поля вообще то можно указать "Изображение по умолчанию" и просто выводить его без всяких условий

Аватар пользователя Alex_web Alex_web 29 июня 2014 в 17:15

drupby wrote:

в настройках поля вообще то можно указать "Изображение по умолчанию" и просто выводить его без всяких условий

Блин, вот это я тупанул. Спасибо)

Аватар пользователя Dirst Dirst 29 июня 2014 в 14:48

"x_88_x" wrote:
Всё оформление слетело.

Здесь надо поставить свой стиль изображения, системное имя т.е. написать
<?php 'image_style' => 'circle', ?>

field_avatar Вы поменяли название поля на свое?

Аватар пользователя Dirst Dirst 29 июня 2014 в 15:35

"drupby" wrote:
в настройках поля вообще то можно указать "Изображение по умолчанию" и просто выводить его без всяких условий

точно уже не припомню, но кажется были проблемы с выводом дефолтного изображения, поэтому выводил по условию