Фото пользователей в закладки - как?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Дополнение Instant Bookmarks для 1.9

#1 11 января 2013 в 14:23
Всем здравствуйте!
Может быть кто-нибудь делал добавление в закладки фоток юзера (плагин instantcms.ru/blogs/udarnyi-blog/instant-bookmarks-zakladki-saita.html)? Очень бы хотелось узнать решение, поделитесь, пожалуйста!
Заранее большое спасибо!!!
Версия системы 1.9.
#2 11 января 2013 в 15:47
Товарищи, отзовитесь! АП
#3 13 января 2013 в 12:36
АП.
#4 13 января 2013 в 19:23
В общих альбомах есть закладки, так как они в альбомах. Добавляется то что в альбомах в базе cms_photo_albums. Естественно в базе нет альбомов пользователей, а значит в frontend.php переписывать. Но я не знаю как.
#5 13 января 2013 в 19:48
Если в frontend.php в строке case 'photo': заменить cms_photo_files на cms_user_photos соответственно cms_photo_albums заменить на cms_user_albums тогда в закладки пойдут фото пользователей, но нельзя будет добавить фото клубов.
#6 13 января 2013 в 20:05
По идеи если продублировать в frontend.php case 'photo': но дать ей другое название, скажем usrphoto заменить cms_photo_files на cms_user_photos соответственно cms_photo_albums заменить на cms_user_albums потом

в plugin.php добавить две строки на добавление и удаление
  1.  
  2.  
  3. case 'GET_USRPHOTO': $item = $this->echoBookmark($item, 'usrphoto'); break;
  4. и
  5. case 'DELETE_USRPHOTO': $item = $this->eventDeleteBookmark($item, 'usrphoto'); break;
  6.  
  7.  
Должно заработать, только я не проверял. Скорей всего придется поменять путь до фото.
#7 13 января 2013 в 20:56
Не-а, не работает, нужно что то другое.
#8 13 января 2013 в 21:41
Коля, спасибо большое за попытку помочь. :))) Попробую думать в вашем направлении.😊Мне в принципе нужны только фото пользователей в закладки… Альбомы ладно, ими никто почти не пользуется, не заходит.
Надо по аналогии попробовать.
Но где же товарищ Fuze он обычно всегда рядом когда его творения обсуждают. angel
#9 13 января 2013 в 21:43
Если в /components/users/frontend.php добавить после

  1.  
  2. /////////////////////////////// VIEW PHOTO /////////////////////////////////////////////////////////////////////////////////////////
  3. if ($do=='viewphoto'){
  4.  
  5. if (!$cfg['sw_photo']) { cmsCore::error404(); }
  6.  
  7. if (!$inUser->id && !$cfg['sw_guest']) {
  8. cmsUser::goToLogin();
  9. }
  10.  
  11. $photoid = $inCore->request('photoid', 'int', 0);
  12.  
  13.  
  14. --------------------------------
  15. $photo = cmsCore::callEvent('GET_PHOTO', $photo);
  16.  
подледную строку $photo = то иконка добавления появляется в фото, но не добавляется в фаербаге нет ид фото, оно туда не вставляется, если в ручную добавить, то в закладки вносится, только путь не тот. Походу нужно что то изменить вот в этом коде
  1.  
  2. case 'usrphoto':
  3. $item = $inDB->get_fields('cms_user_photos f INNER JOIN cms_user_albums cat ON cat.id = f.album_id', "f.id = '$target_id'", 'f.id, f.title, f.description, f.imageurl, cat.id as a_id, cat.title as a_title');
  4. $description_photo = '<div class="con_image"><a href="/photos/users/{$usr.id}/.$item['id'].'.html" class="act_photo"><img border="0" alt="'.$item['title'].'" src="/images/photos/small/'.$item['imageurl'].'" /></a></div>';
  5. $category = $_LANG['PHOTO_FROM_ALBUM'].': "<a href="/photos/'.$item['a_id'].'">'.$item['a_title'].'</a>".<br>';
  6. $item['description'] = $description_photo.'<br>'.$category.'<br>'.nl2br($item['description']);
  7. break;
  8.  
но я не знаю что.
#10 13 января 2013 в 21:51

Коля, спасибо большое за попытку помочь. :))) Попробую думать в вашем направлении. Мне в принципе нужны только фото пользователей в закладки… Альбомы ладно, ими никто почти не пользуется, не заходит.
Надо по аналогии попробовать.
Но где же товарищ Fuze он обычно всегда рядом когда его творения обсуждают.

Azura
В коде добавляется описание, сам альбом кажется добавить нельзя, даже для общих альбомов. Но идея интересная убрать альбом и description
#11 13 января 2013 в 21:56
Ну… Я вижу что из базы идёт выборка… А потом идёт вывод...
Но если путь во вкладке образуется не правильный, то по-моему сначала нужно редактировать plugin.php (внести евент), потом уже фронтэнд, и тогда уже тпл… Но я не умею :(((
#12 13 января 2013 в 22:14
Добавить в plugin.php:
  1. case 'GET_USER_PHOTO': $item = $this->echoBookmark($item, 'user_photo'); break;
А потом уже редактировать тот кусок в frontend.php...:
  1. case 'user_photo':
  2. $item = $inDB->get_fields('cms_user_photos..... и т.д.
Дальше понятия не имею(((((
#13 14 января 2013 в 00:41
А если както использовать sql запрос на вытягивание фотографий с базы?

Ну типа этого

  1. $sql = "SELECT p.*, a.title as album, pr.gender
  2. FROM cms_user_photos p
  3. INNER JOIN cms_user_albums a ON a.id = p.album_id
  4. INNER JOIN cms_user_profiles pr ON pr.user_id = p.user_id
  5. WHERE p.id = '$photoid' AND p.user_id = '$id' LIMIT 1";
  6. $result = $inDB->query($sql) ;
#14 14 января 2013 в 13:18
Искус, можно, но я вижу разницу между двумя запросами, а как её сгладить чтоб работало я даже и не знаю… 😥Я пробовала из
  1. case 'user_photo':
всю выборку заменить на ту что вы привели вручную, т.е. все поля запрошенные и т.д., но у меня ничего не заработало, ибо я вообще в связке пхп и мускула не шарю. Да что там говорить… Вообще в пхп ничего не соображаю...😊Может и работало бы, если бы я лучше понимала это всё… Я вижу переменную, вижу выборку, а прочесть всё это и осознать — увы.
#15 14 января 2013 в 14:03
Azura, Я просто еще не совсем хорошо знаком с движком, чтобы сразу выложить решение. Но я знаю сдесь есть умы которые это могут сделать и достаточно быстро, взять того же Марата, может он ленитс но я знаю, он это может довольно быстро сделать :)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.