Вывод фотографий в профиле пользователя 1.10.3
Новые фото в профиле пользователя
Возник такой вопрос касательно вывода фотографий в профиле пользователя 1.10.3 Как вы знаете в профиле выводятся фотоальбомы пользователей, есть плагин выводящий альбомы во вкладке (не помню у кого нашел и кого за этот плагин благодарить), соответственно необходимость вывода фотоальбомов пользователя в вкладке профиль отпадает (нужно либо удалять код либо его комментировать дабы не было дублирования). Подумал почему бы не заменить этот код на вывод последних добавленных фотографий (к примеру пяти или что б можно было выставлять сколько нужно) пользователем именно во вкладке профиль. А вот как это реализовать, немного затрудняюсь. Вот и прошу сообщество подсобить, так как поиск не дал результатов. Заранее благодарен проявившим интерес.
Во-первых, вам нужно получить из базы последние добавленные фото этого юзера.
Во-вторых, передать имена этих фото в файл tpl.
А в-третьих, отредактировать файл tpl, чтобы вместо фотоальбомов выводились последние фото.
Это довольно приличный по объему работы хак, поэтому не просите, чтобы я за вас его написал)))
Все зависит от вашего мастерства программирования.
Во-первых, вам нужно получить из базы последние добавленные фото этого юзера.
Во-вторых, передать имена этих фото в файл tpl.
А в-третьих, отредактировать файл tpl, чтобы вместо фотоальбомов выводились последние фото.
Это довольно приличный по объему работы хак, поэтому не просите, чтобы я за вас его написал)))
С удовольствием бы написал хак, но к сожалению не программист, все больше и больше склоняюсь к тому что не ту профессию я выбрал в свое время)))) Теперь же нужно именно просить знающего человека.
Может как то можно сделать по аналогии с выводом фотоальбомов в профиле пользователя?
ValeraK, не отчаивайтесь, а учитесь. Я сам по основной специальности авиационный инженер, а программирование освоил путем самообразования.
Ага, вот и учусь)
На примере было бы гораздо понятнее что и как нужно делать)
ValeraK, не отчаивайтесь, а учитесь. Я сам по основной специальности авиационный инженер, а программирование освоил путем самообразования.
Ага, вот и учусь)
Если актуально могу помочь, (ближе к вечеру).
очень актуально) заранее благодарен
{if $usr.albums} <div class="usr_albums_block usr_profile_block"> {if $usr.albums_total > $usr.albums_show} <div class="float_bar"> <a href="/users/{$usr.id}/photoalbum.html">{$LANG.ALL_ALBUMS}</a> ({$usr.albums_total}) </div> {/if}
<div class="usr_albums_block usr_profile_block"> {php} echo cmsModule('photo');{/php} </div>
Тогда и с админки вы сможете выставлять конфигурации, но к сажалению у меня это несработало.Почему в одих файлах работает, а в других нет, я не понял.Найдёте решение, поделитесь, нет, в /templates/default/components/com_user_profiles.tpl вместо кода, который выше пишите это
<div class="usr_albums_block usr_profile_block"> <a href="http://site.ru/photos/photo{$photo.id}.html" title="{$photo.title|escape:'html'}"> <img class="photo_thumb_img" src="http://site.ru/images/photos/small/{$photo.file}" /> </a> {/foreach} </div>
if ($do=='profile'){
вставляете этот код
cmsCore::loadClass('photo'); $inPhoto = cmsPhoto::getInstance(); $cfg['album_id'] = 0; $cfg['is_subs'] = 1; $cfg['showclubs'] = 0; $cfg['sort'] = 'pubdate'; $cfg['shownum'] = 5; // кол-во фото $cfg['is_full'] = 1; $inDB->addJoin('INNER JOIN cms_photo_albums a ON a.id = f.album_id AND a.published = 1'); $inDB->addSelect('a.title as cat_title, a.NSDiffer'); // если категория задана, выбираем из нее if($cfg['album_id']){ // Если выбирать нужно включая вложенные if($cfg['is_subs']){ // получаем категорию $album = $inDB->getNsCategory('cms_photo_albums', $cfg['album_id']); if (!$album) { return false; } $inPhoto->whereThisAndNestedCats($album['NSLeft'], $album['NSRight']); } else { $inPhoto->whereAlbumIs($cfg['album_id']); } } // если фото клубов не нужны if(!$cfg['showclubs']){ $inDB->where("f.owner = 'photos'"); } // Задаем период $inPhoto->wherePeriodIs($cfg['whatphoto']); //устанавливаем сортировку $inDB->orderBy('f.'.$cfg['sort'], 'DESC'); //устанавливаем номер текущей страницы и кол-во фото на странице $inDB->limit($cfg['shownum']); // получаем фото $photos = $inPhoto->getPhotos(false, $cfg['is_full']); if(!$photos) { return false; } // и далее ниже в cmsPage::initTemplate('components', 'com_users_profile.tpl')-> // вставляем assign('photos', $photos)->
// и далее ниже в cmsPage::initTemplate('components', 'com_users_profile.tpl')-> // вставляем assign('photos', $photos)->
В вашем файле строка 460:
cmsPage::initTemplate('components', 'com_users_profile.tpl')->
assign('photos', $photos)->
А вот я как то не понял. Ну, да ладно. Всё начинаем по новой.соответственно необходимость вывода фотоальбомов пользователя в вкладке профиль отпадает
файл /templates/default/components/com_user_profiles.tpl
заменяете ваш код на этот
<div class="usr_albums_block usr_profile_block"> <a href="{$photo.url}.html" title="{$photo.title|escape:'html'}"> <img class="photo_thumb_img" src="http://default/{$photo.file}" width="64" /> </a> <a href="/users/{$usr.login}/photos/private{$photo.album_id}.html">{$photo.title}</a> {/foreach} </div>
заменяете ваш код на этот
cmsCore::loadClass('photo'); $inPhoto = cmsPhoto::getInstance(); $cfg['shownum'] = 3; //устанавливаем номер текущей страницы и кол-во фото на странице $inDB->limit($cfg['shownum']); // получаем фото $photos = $model->getUser_Photo($inUser->id, $cfg['shownum']);
добавляетеэту ф-цию
/**********************************************/ public function getUser_Photo($user_id,$limit) { $inUser = cmsUser::getInstance(); $is_my = $inUser->id == $user_id; $filter = ''; $filter = "AND ( allow_who='all' OR (allow_who='registered' AND ({$inUser->id}>0)) )"; $private_sql = "SELECT id, pubdate, imageurl as file, hits, title,album_id FROM cms_user_photos WHERE user_id = '{$user_id}' $filter ORDER BY id DESC LIMIT $limit"; $private_res = $this->inDB->query($private_sql); if ($this->inDB->num_rows($private_res)) { while($photo = $this->inDB->fetch_assoc($private_res)){ $photo['file'] = '/images/users/photos/small/'.$photo['file']; $photo['url'] = '/users/'.$user_id.'/photo'.$photo['id'].'.html'; $photo['fpubdate'] = cmsCore::dateFormat($photo['pubdate']); $photos[] = $photo; } } return $photos; } /*********************************************/
Ну, что я могу вам сказать? Даже не знаю.Давайте ваши файлы, или описывайте подробно, что делали.Lora, как то странно, но фото не выводятся. Поправил ссылку на файл изображения, но безрезультатно(