Вывод последних фото пользователя в профиле 1.10.3 - 1.10.6

+12
2.07K
В продолжение этой темы на форуме instantcms.ru/forum/thread18721-3.html#179339. Случайно закрыл тему, но вопрос не был до конца решен. Огромная благодарность Lora за помощь в решении вопроса.
Итак, возникла необходимость вывода фотографий пользователя в профиле вместо фотоальбомов. Для вывода фотоальбомов использовал плагин фотоальбомы во вкладке. Поэтому то и необходимость вывода фотоальбомов во вкладке "профиль" отпала.
Сейчас страница пользователя выглядит так
Иллюстрация

Для этого делаем следующее:
1. в файле components/users/frontend.php находим "просмотр профиля"
  1.  
  2. if ($do=='profile'){
  3.  
и сразу после $myprofile = ($inUser->id == $usr['id']); вставляем
  1.  
  2. cmsCore::loadClass('photo');
  3. $inPhoto = cmsPhoto::getInstance();
  4. //устанавливаем номер текущей страницы и кол-во фото на странице
  5. $cfg['shownum'] = 3;
  6. // получаем фото
  7. $photos = $model->getUser_Photo($usr['id'], $cfg['shownum']);
  8.  
далее ниже после
  1.  
  2. cmsPage::initTemplate('components', 'com_users_profile.tpl')->
  3.  
вставляем
  1.  
  2. assign('photos', $photos)->
  3.  
2. в файле components/users/model.php вставляем функцию
  1.  
  2. /**********************************************/
  3. public function getUser_Photo($user_id,$limit) {
  4. $inUser = cmsUser::getInstance();
  5. $is_my = $inUser->id == $user_id;
  6. $filter = '';
  7. $photos = array();
  8. $filter = "AND (
  9. allow_who='all'
  10. OR
  11. (allow_who='registered' AND ({$inUser->id}>0))
  12.  
  13. )";
  14.  
  15. $private_sql = "SELECT id, pubdate, imageurl as file, hits, title,album_id
  16. FROM cms_user_photos
  17. WHERE user_id = '{$user_id}' $filter
  18. ORDER BY id DESC
  19. LIMIT $limit";
  20.  
  21. $private_res = $this->inDB->query($private_sql);
  22.  
  23. if ($this->inDB->num_rows($private_res)) {
  24. while($photo = $this->inDB->fetch_assoc($private_res)){
  25. $photo['file'] = '/images/users/photos/small/'.$photo['file'];
  26. $photo['url'] = '/users/'.$user_id.'/photo'.$photo['id'].'.html';
  27. $photo['fpubdate'] = cmsCore::dateFormat($photo['pubdate']);
  28. $photos[] = $photo;
  29. }
  30. }
  31. return $photos;
  32. }
  33. /*********************************************/
  34.  
3. и наконец файл templates/_default_/components/com_user_profile.tpl
заменяем
  1.  
  2. {if $usr.albums}
  3. <div class="usr_albums_block usr_profile_block">
  4. {if $usr.albums_total > $usr.albums_show}
  5. <div class="float_bar">
  6. <a href="/users/{$usr.id}/photoalbum.html">{$LANG.ALL_ALBUMS}</a> ({$usr.albums_total})
  7. </div>
  8. {/if}
  9. <div class="usr_wall_header">
  10. {if !$myprofile}
  11. {$LANG.USER_PHOTOS}
  12. {else}
  13. {$LANG.MY_PHOTOS}
  14. {/if}
  15. </div>
  16. <ul class="usr_albums_list">
  17. {foreach key=key item=album from=$usr.albums}
  18. <li>
  19. <div class="usr_album_thumb">
  20. <a href="/users/{$usr.login}/photos/{$album.type}{$album.id}.html" title="{$album.title|escape:'html'}">
  21. <img src="{$album.imageurl}" width="64" height="64" alt="{$album.title|escape:'html'}" />
  22. </a>
  23. </div>
  24. <div class="usr_album">
  25. <div class="link">
  26. <a href="/users/{$usr.login}/photos/{$album.type}{$album.id}.html">{$album.title}</a>
  27. </div>
  28. <div class="count">{$album.photos_count|spellcount:$LANG.PHOTO:$LANG.PHOTO2:$LANG.PHOTO10}</div>
  29. <div class="date">{$album.pubdate}</div>
  30. </div>
  31. </li>
  32. {/foreach}
  33. </ul>
  34. </div>
  35. {/if}
  36.  
на
  1.  
  2. <div class="usr_albums_block usr_profile_block">
  3. <div class="usr_wall_header">
  4. {if !$myprofile}
  5. {$LANG.USER_PHOTOS}
  6. {else}
  7. {$LANG.MY_PHOTOS}
  8. {/if}
  9. </div>
  10. {foreach key=tid item=photo from=$photos}
  11.  
  12. <a href="{$photo.url}" title="{$photo.title}">
  13. <img class="photo_thumb_img" src="{$photo.file}" width="64" />
  14. </a>
  15. <a href="/users/{$usr.login}/photos/private{$photo.album_id}.html">{$photo.title}</a>
  16.  
  17. {/foreach}
  18. </div>
  19.  
По стилям, оформляйте как душе угодно)
Удачного пользования и развития Ваших проектов. Всем успехов!;)
Нет комментариев. Ваш будет первым!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.