Добрый день!
На сайте имеется обычный вывод комментариев, я пытаюсь создать блок views для вывода информации о пользователе (как на обычном форуме, ник, аватарка, количество комментариев), В принципе блок создал, все работает, информация выводится, вот только в выводе выводятся сразу все пользователи и я не понимаю как создать фильтр, что бы выводился только тот пользователь который создал тему/прокомментировал.
Я пытался в Критерии фильтрации добавлять "Содержимое: UID Автора", в контекстные фильтры "Содержимое: Пользователь написавший или прокомментировавший" - ничего не помогает, оно либо отображает всех авторов, либо тех которые когда либо комментировали, либо вообще ничего.
Как мне правильно настроить свой блок?
Вот привожу свой вьювс
П.С. Так же еще вопрос, как мне прикрутить данный вьювс к сообщениям, что бы напротив каждого отображался? Я конечно могу вывести программно в node.tpl.php, но ведь в таком случае вьювс будет одного и того же автора писать везде. Может есть какой-то другой способ?
Буду очень благодарен за ответ!
Комментарии
По каким путям выводиться этот блок?
В профиле пользователя(в пути есть uid пользователя)?
Блок выводится в каждой ноде "/node/*"
Так я вывожу не в профиль, а в ноду, или я вас не так понял?
блок будет просматривать только автор этих комментариев или любой пользователь который пожелает ?
Любой пользователь. Суть сделать как на обычных форумах, напротив каждого сообщения информация о пользователе (выделил красным)
Поняли правильно.
Я выяснял, какие в наличии аргументы для контектного фильтра вьюса.
Значит у нас есть nid текущей ноды.
А чьи комментарии интересуют?
Автора ноды или текущего пользователя пользователя ( просматривающего ноду)?
Комментарии интересуют всех и автора ноды и автора комментария. Суть сделать как на обычном форуме (смотрите скрин на мой ответ пользователю shishka0228)
В общем мне удалось вывести блок views через фильтр "Если есть материал, то использовать его автора" который выводи информацию о пользователе создавшего ноду.
Прикрутил данный блок программно в comment.tpl.php, но он все равно выводит информацию о создателе ноды. Теперь стоит вопрос как сделать так, что бы в комментариях он выводил информацию о создателе комментария
Выводите в комментарии не блок, а сам вьюс этой функцией:
http://www.drupalcontrib.org/api/drupal/contributions%21views%21views.mo...
Тогда можно передать в вьюс uid непосредственно автора комментария (3-й и следующие аргументы функции - это параметры контекстных фильтров вьюса)
а можно как-то по другому реализовать данный функционал?
а то я чуть сайт не положил этой штукой
перефразируя: views_embed_view бояться, в друпал не ходить.
проще только ассемлбером-)
Чтоб сайт не ложился надо кэшировать вьюсы..
Все другие способы или не используют вьюс (прямые запросы к БД) или используют туже функцию..
Кэширование в любом случае необходимо, т.к. считай для каждого коммента делается как минимум по одному запросу к БД с кучей джойнов.
А можно ли тогда более подробно что с views_embed_view делать, пожалуйста
Читаю статью http://xandeadx.ru/blog/drupal/178 но как-то не до конца понятно как реализовать вывод
Покажите код,которым блок в комментарии выводили..
Расскажу что поправить..
Если делать по аналогии как на сайте который я привел ранее, то:
echo views_embed_view('block-views-user-statistics-window-block--2', 'block');
?>
но я уверен, что это не правильно, так как должны быть еще какие-то аргументы насколько я понимаю. Вот еще http://drupal.stackexchange.com/questions/14103/how-do-i-embed-a-view-in... нашел один сайт с ответом "print views_embed_view('faculty_core','block_1', $node->nid);"
P.S. "block-views-user-statistics-window-block--2" потому что такое системное имя блока вьюхи. Это кстати тот вьювс который выводит информацию о пользователе, но как видите везде один пользователь, так как вывод привязан к контекстному фильтру "Если есть материал, то использовать его автора" который обращается к автору ноды, а не комментария.
Видимо уже долго сижу, что начинаю смотреть мимо строк.
Спасибо
Нашел $comment->uid, осталось прикрепить к views_embed_view
Получилось!
Спасибо всем огромное за ответы, особая благодарность пользователю Orion76
---------
На будущее таким умникам как я которые хотят вывести информацию о пользователе который прокомментировал:
Создаете вьюху, в контекстный фильтр ставите "Комментарии UID Автора" выбираете "Передать значение по умолчанию " + ID пользователя из URL и галочку "Если есть материал, то использовать его автора"
а в шаблон comment.tpl.php приписывайте:
print views_embed_view("user_statistics_window","default",$comment->uid);
?>
Где user_statistics_window - системное имя вашей вьюхи
а $comment->uid - вывод айди пользователя прокомментировавшего материал