Добавить в друзья в списке пользователей

#1 29 апреля 2011 в 14:16
А кто нибудь пробывал прикрутить к списку пользователей кнопку — Добавить в друзья, как Вконтакте.

Список пользователей и напротив аватара — имя + кнопка добавить в друзья+ пользователю отправляется сообщение об отправке и тот кто отправил остается на страннице со списком юзеров и может дальше добавлять.

И поставить ограничение (например в сутки 30 приглашений)

Было бы очень удобно новеньким искать друзей.

Ну например если гость нажмёт на неё то ему предлагается зарегистрироваться.
#2 29 апреля 2011 в 22:15
Отличная идея! Поддерживаю! Только еще бы к этому прикрутить "отправить сообщение"!
#3 8 июля 2011 в 02:08
Тема умерла? look
#4 8 июля 2011 в 11:06
Апаем тему. тоже хочу данную функцию реализовать. Сегодня попробую сделать.
#5 8 июля 2011 в 15:33
Ser Mager, уже начал работать над этой штукой)
#6 9 сентября 2011 в 00:23
Что-то ноль движений по этому вопросу… отзовитесь кто обещал, или уже не интересно?
#7 9 сентября 2011 в 02:21
Решение безусловно очень нужное, будем надеятся что кто нибудь из разработчиков откликнется и подскажет как это реализовать!? look
#8 9 сентября 2011 в 12:06
А что если в файл /templates/ВАШ_ШАБЛОН/components/com_users_view.tpl
Вставить это:
  1. {if !$usr.isfriend}
  2. {if !$usr.isfriend_not_add}
  3. <a href="/users/{$usr.id}/friendship.html" title="{$LANG.ADD_TO_FRIEND}"><img src="/templates/ВАШ_ШАБЛОН/images/icons/profile/friends.png" border="0"/></a>
  4. {else}
  5. <a href="/users/{$usr.id}/nofriends.html" title="{$LANG.STOP_FRIENDLY}"><img src="/templates/ВАШ_ШАБЛОН/images/icons/profile/nofriends.png" border="0"/></a>
  6. {/if}
  7. {else}
  8. <a href="/users/{$usr.id}/nofriends.html" title="{$LANG.STOP_FRIENDLY}"><img src="/templates/ВАШ_ШАБЛОН/images/icons/profile/nofriends.png" border="0"/></a>
  9. {/if}
  10. <a href="/users/{$usr.id}/sendmessage.html" title="{$LANG.WRITE_MESS}"><img src="/templates/ВАШ_ШАБЛОН/images/icons/profile/message.png" border="0"/></a>
Это конечно не полностью удовлетворяет тому что нужно, но все же.
И кто знает каким условием надо проверять твоя ли это учетка в списке пользователей, а то напротив своей тоже будет отправить сообщение и добавить в друзья сомого себя…
#9 9 сентября 2011 в 13:48
Это не выход, пробывал. Кнопка Добавить, висит всегда и везде. Даже у вас. И даже у ваших друзей. Нужно PHP править. Только не знаю как. Все варианты испробовал, не получается.
#10 10 сентября 2011 в 19:05
в файле /components/frontend.php находим (у меня 330 строчка):
  1. if ($is_users){
  2. while($usr = $inDB->fetch_assoc($result)){
  3. $rownum++;
  4. $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid);
  5. $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']);
  6. $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true);
  7. $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']);
  8. $usr['num'] = $rownum + ($page-1)*$perpage;
и сразу после него вставляем это:
  1. $usr['friends'] = usrFriends($usr['id'], $usr['friends_total'], 6);
  2. $usr['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false);
  3. $usr['isfriend_not_add'] = $usr['isfriend'];
  4. $usr['is_new_friends'] = ($inUser->id==$usr['id'] && $model->isNewFriends($usr['id']));
в результате должно получиться это:
  1. if ($is_users){
  2. while($usr = $inDB->fetch_assoc($result)){
  3. $rownum++;
  4. $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid);
  5. $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']);
  6. $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true);
  7. $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']);
  8. $usr['num'] = $rownum + ($page-1)*$perpage;
  9. $usr['friends'] = usrFriends($usr['id'], $usr['friends_total'], 6);
  10. $usr['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false);
  11. $usr['isfriend_not_add'] = $usr['isfriend'];
  12. $usr['is_new_friends'] = ($inUser->id==$usr['id'] && $model->isNewFriends($usr['id']));
после этого изменения и изменения что я писал выше, у друзей будет кнопка удалить из друзей, а у остальных будет кнопка добавить в друзья
#11 10 сентября 2011 в 19:06
но у меня никак не получается сделать так чтобы кнопка добавить в друзья и написать сообщение не было у самого пользователя, кто может помочь напишите
#12 10 сентября 2011 в 19:39
будет типа такого при формировании списка пользователей
  1.  
  2. if ($usr.id!=$inUser->id){выведем кнопку.}
  3.  
#13 10 сентября 2011 в 21:26
Я решил совсем убрать свой профиль из списка пользователей. Будем считать что вы уже делали все что я писал выше, поэтому дальше, в /components/frontend.php находим:
  1. if ($is_users){
  2. while($usr = $inDB->fetch_assoc($result)){
  3.  
  4. $rownum++;
  5. $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid);
  6. $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']);
  7. $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true);
  8. $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']);
  9. $usr['num'] = $rownum + ($page-1)*$perpage;
  10. $usr['friends'] = usrFriends($usr['id'], $usr['friends_total'], 6);
  11. $usr['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false);
  12. $usr['isfriend_not_add'] = $usr['isfriend'];
  13. $usr['is_new_friends'] = ($inUser->id==$usr['id'] && $model->isNewFriends($usr['id']));
  14.  
  15. if (($orderby!='karma' || $orderto!='asc') || strip_tags($usr['karma'])<0){
  16. $users[] = $usr;
  17. }
  18.  
  19. }
  20. }
и заменяем его на:

  1. if ($is_users){
  2. while($usr = $inDB->fetch_assoc($result)){
  3. if ($usr['id']!=$inUser->id){
  4. $rownum++;
  5. $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid);
  6. $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']);
  7. $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true);
  8. $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']);
  9. $usr['num'] = $rownum + ($page-1)*$perpage;
  10. $usr['friends'] = usrFriends($usr['id'], $usr['friends_total'], 6);
  11. $usr['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false);
  12. $usr['isfriend_not_add'] = $usr['isfriend'];
  13. $usr['is_new_friends'] = ($inUser->id==$usr['id'] && $model->isNewFriends($usr['id']));
  14.  
  15. if (($orderby!='karma' || $orderto!='asc') || strip_tags($usr['karma'])<0){
  16. $users[] = $usr;
  17. }
  18. }
  19. }
  20. }
Спасибо maxisoftу за подсказку.
После всех изменений мы имеем:
1. Профиль самого пользователя в списке не показывается;
2. Добавить в Друзья или Удалить из Друзей теперь будут в списке;
3. Появиться Кнопка написать сообщение.

Теперь осталось додумать как отправку приглашения в друзья сделать без ухода со страницы со списком пользователей
#14 10 сентября 2011 в 21:49
мега респект! Заработало!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.