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

#16 10 сентября 2011 в 22:19
Как же теперь сделать чтобы гость нажимая на добавить в друзья попадал не на — страница не найдена, а на страницу регистрации?
Ну или отключить пользователям просмотр иконок — добавить в друзья. у меня для гостей эти иконки тоже получаются видными
#17 10 сентября 2011 в 22:43
ужасное решение — пальцем в небо "тычете" не думая.
  1. $usr['friends'] = usrFriends($usr['id'], $usr['friends_total'], 6);
лишнее — зачем вам в списке пользователей получать для КАЖДОГО пользователя список его друзей??

В общем, дабы не распылять далее, нужно оставить лишь одну строчку
  1. $usr['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false);
и все! потом в шаблоне манипулировать {if $user.isfriend}у меня в друзьях{else}не в друзьях{/if}
#18 10 сентября 2011 в 23:08
если я правильно понял то надо
  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. $usr['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false);
#19 11 сентября 2011 в 01:58
Попробую подвести первый итог всего вышесказанного :
/components/users/frontend.php
Находим:
  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.  
Заменяем на :


  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['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false);
  11.  
  12. if (($orderby!='karma' || $orderto!='asc') || strip_tags($usr['karma'])<0){
  13. $users[] = $usr;
  14. }
  15. }
  16. }
  17. }
В файл /templates/_default_/components/com_users_view.tpl
Находим:
  1. <div class="status">{$usr.status}</div>
  2. <div class="nickname">{$usr.nickname}</div>
  3. {if $usr.microstatus}
  4. <div class="microstatus">{$usr.microstatus}</div>
  5. {/if}
Ниже вставляем:
  1.  
  2. {if !$usr.isfriend}
  3. {if !$usr.isfriend_not_add}
  4. <a href="/users/{$usr.id}/friendship.html" title="{$LANG.ADD_TO_FRIEND}" target="_blank"><img src="/templates/_default_/images/icons/profile/friends.png" border="0"/>-Добавить в друзья! </a>
  5. {else}
  6. <a href="/users/{$usr.id}/nofriends.html" title="{$LANG.STOP_FRIENDLY}" target="_blank"><img src="/templates/_default_/images/icons/profile/nofriends.png" border="0"/>-Удалить из друзей. </a>
  7. {/if}
  8. {else}
  9. <a href="/users/{$usr.id}/nofriends.html" title="{$LANG.STOP_FRIENDLY}" target="_blank"><img src="/templates/_default_/images/icons/profile/nofriends.png" border="0"/>-Удалить из друзей. </a>
  10. {/if}
  11.  
  12.   <a href="/users/{$usr.id}/sendmessage.html" title="{$LANG.WRITE_MESS}" target="_blank"><img src="/templates/_default_/images/icons/profile/message.png" border="0"/> -Написать сообщение </a>

чтобы при попытке добавить в друзья гостями то перекидывало на страницу регистрации:
/components/users/frontend.php

Находим:
  1. if (!usrCheckAuth() || $inUser->id == $id) { cmsCore::error404(); }
Меняем на:
  1. if (!usrCheckAuth() || $inUser->id == $id) { cmsUser::goToLogin(); }
#20 11 сентября 2011 в 09:29
Думаю лучше сделать чтобы при попытке добавить в друзья гостями то перекидывало на страницу регистрации, а это можно сделать так:
Все в том же файле /components/users/frontend.php

найти:
  1. if (!usrCheckAuth() || $inUser->id == $id) { cmsCore::error404(); }
и заменить на:
  1. if (!usrCheckAuth() || $inUser->id == $id) { cmsUser::goToLogin(); }
#21 11 сентября 2011 в 09:33

ужасное решение — пальцем в небо "тычете" не думая.

Fuze
Ну это да пальцем в небо😊, пока только учусь, но надеюсь вскоре смогу что нибудь грамотное сделать.
#22 11 сентября 2011 в 10:11
Супер! Спасибки! Добавил это решение в предыдущий пост!
DagStudent — ты бы в своём блоге это оформил как хак, пущай люди пользуются.
#23 11 сентября 2011 в 11:06

DagStudent — ты бы в своём блоге это оформил как хак, пущай люди пользуются.

fact
Я хочу добавление в друзья и отправка сообщения из списка сделать на Аяксе. Ну типа нажал пользователь кнопку добавить в друзья, всплыло сообщение "Вы действительно хотите отправить приглашение дружить?" и варианты "Да" "Нет", Если "Да" то всплыло сообщение "Приглашение отправлено" и закрылось всплывающее окошко, если нет то просто закрылось всплывающее окошко, и тоже самое с сообщениями нажал написать всплыло окошко написал отправил и дальше ищешь друзей.😊вот тогда можно оформлять в блоге, а пока думаю сыро еше.
#24 11 сентября 2011 в 11:27

{if !$usr.isfriend_not_add}

fact
это условие не нужно.
#25 11 сентября 2011 в 11:41

вот тогда можно оформлять в блоге, а пока думаю сыро еше.

DagStudent
Версия 1.0, пока нет на аяксе это решение тоже очень гуд! Себе поставил — довольный как слон!
Как альтернативу в коде выше поставил открывать в новом окне — по нажатию добавить в друзья и написать сообщение.
И страница с пользователями остаётся открытой и дополнительный просмотр страницы сайта, которая в новой вкладке открывается, вроде поисковики как за гуд считают!

ещё вопрос — при удалении лишнего условия
  1. {if !$usr.isfriend_not_add}
нужно только эту строчку кода удалить или ещё что-то, например завершающее условие. Подскажите пожалуйста.
#26 11 сентября 2011 в 11:58
  1. {if $user_id}
  2. {if !$usr.isfriend}
  3. <a href="/users/{$usr.id}/friendship.html" title="{$LANG.ADD_TO_FRIEND}" target="_blank"><img src="/templates/_default_/images/icons/profile/friends.png" border="0"/>-Добавить в друзья! </a>
  4. {else}
  5. <a href="/users/{$usr.id}/nofriends.html" title="{$LANG.STOP_FRIENDLY}" target="_blank"><img src="/templates/_default_/images/icons/profile/nofriends.png" border="0"/>-Удалить из друзей. </a>
  6. {/if}
  7. {/if}
{if $user_id} — это условие не показывает вообще ссылки не авторизованным.
#27 11 сентября 2011 в 12:09
Fuze, а как отправит POST запрос для добавления в друзья и остаться на той же странице с которой отправил запрос, а не перекидываться на страницу пользователя кому отправил запрос?, нужно чтобы это во всплывающем окне реализовать:
  1. <form action="/users/{$usr.id}/friendship.html" method="POST">
  2.  
  3. <input style="font-size:24px; width:100px"
  4. type="submit"
  5. name="goadd"
  6. value="Да"
  7. onclick="true"
  8. />
  9. <input style="font-size:24px; width:100px"
  10. type="button"
  11. name="cancel"
  12. value="Нет"
  13. onclick="window.history.go(-1)"
  14. />
  15. </form>
#28 11 сентября 2011 в 12:12
DagStudent, создайте отдельно файл, который будет принимать ваш запрос и там обрабатывайте условия.
#29 8 ноября 2012 в 21:19
зачем тебе это
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.