Аватар в последних комментариях

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 19 января 2012 в 12:05
Здравствуйте, вот как только дали инвайт, прибежал к Вам за помощью smile
На сайте есть модуль "Последние комментарии" хочу сделать, чтобы в этом модуле выводило не только тему и сообщение юзера но и его аватар.
Думаю понятно выразился, а то я люблю "закрутить" простые вещи.
#2 19 января 2012 в 15:06
заодно и это, если кто знает
#3 19 января 2012 в 15:21
Попробуйте, например, воспользоваться функцией из файла /components/users/includes/usercore.php
  1.  
  2. if (!function_exists('usrImageNOdb')){
  3. include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
  4. }
  5. $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']);
  6.  
передайте её в нужном месте в шаблон (frontend.php)
  1.  
  2. $smarty->assign('avatar', $userimage);
  3.  
#4 19 января 2012 в 20:55
А как реализовать для модуля?
#5 19 января 2012 в 22:10
/public_html/modules/mod_comments/module.php
находим запрос к БД, начинается с
  1. $sql = "SELECT c.id as id, ...
заменяем целиком на:
  1.  
  2. $sql = "SELECT c.id as id,
  3. c.target as target,
  4. c.target_id as target_id,
  5. c.target_link as target_link,
  6. c.target_title,
  7. c.content as content,
  8. c.guestname,
  9. c.pubdate as fpubdate,
  10. IFNULL(c.user_id, 0) as user_id,
  11. IFNULL(u.nickname, '') as author,
  12. IFNULL(u.login, '') as author_login,
  13. up.imageurl as author_avatar,
  14. u.is_deleted as author_out,
  15. IFNULL(v.total_rating, 0) as rating
  16. FROM cms_comments c
  17. INNER JOIN cms_users u ON u.id = c.user_id {$guest_sql}
  18. LEFT JOIN cms_user_profiles up ON up.user_id = u.id
  19. LEFT JOIN cms_ratings_total v ON v.item_id=c.id AND v.target='comment'
  20. WHERE c.published=1 {$target_where}
  21. GROUP BY c.id
  22. ORDER BY c.id DESC
  23. LIMIT 70";
  24.  
далее в этом же файле ниже вставляем, например после этого:
  1. if (!$con['text']) { $con['text'] = '...'; }
новый блок:
  1.  
  2. if (!function_exists('usrImageNOdb')){
  3. include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
  4. }
  5. $con['avatar'] = usrImageNOdb($con['user_id'], 'small', $con['author_avatar'], $con['author_out']);
  6.  
с этим файлом всё, открываем
/public_html/templates/_default_/modules/mod_comments.tpl
в нужном месте вставляем:
  1.  
  2. {$comment.avatar}
  3.  
настраиваем согласно собственных предпочтений) …
#6 20 января 2012 в 15:23
• Mike •, спасибо, с меня + =)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.