Synio: делаем удобную кнопку добавления в друзья
Тестировал данный шаблон и наткнулся на следующую пробелму: при открытии профиля пользователя кнопка «добавить в друзья» где-то снизу и её совсем не видно.
Логично вывести её на верх экрана, вот сюда:
Реализовал я это так:
В шаблон профиля (/templates/skin/synio/actions/ActionProfile/profile_top.tpl) добавил фрагмент кода добавления друзья:
Вставляется в 44-ю строку после выражения (код будет обернут в данный if):
Получилось вот так:
Логично вывести её на верх экрана, вот сюда:
Реализовал я это так:
В шаблон профиля (/templates/skin/synio/actions/ActionProfile/profile_top.tpl) добавил фрагмент кода добавления друзья:
{if $oUserProfile->getUserFriend() and ($oUserProfile->getUserFriend()->getFriendStatus()==$USER_FRIEND_ACCEPT+$USER_FRIEND_OFFER or $oUserProfile->getUserFriend()->getFriendStatus()==$USER_FRIEND_ACCEPT+$USER_FRIEND_ACCEPT)} <li> </li> {elseif $oUserProfile->getUserFriend() and $oUserProfile->getUserFriend()->getStatusTo()==$USER_FRIEND_REJECT and $oUserProfile->getUserFriend()->getStatusFrom()==$USER_FRIEND_OFFER and $oUserProfile->getUserFriend()->getUserTo()==$oUserCurrent->getId()} <a href="#" title="{$aLang.user_friend_add}" onclick="return ls.user.addFriend(this,{$oUserProfile->getId()},'accept');"><button type="submit" class="button button-action button-action-add-friend"><i class="icon-synio-add-friend"></i><span>{$aLang.user_friend_add}</span></button></a> {elseif $oUserProfile->getUserFriend() and $oUserProfile->getUserFriend()->getFriendStatus()==$USER_FRIEND_OFFER+$USER_FRIEND_REJECT and $oUserProfile->getUserFriend()->getUserTo()!=$oUserCurrent->getId()} <li> </li> {elseif $oUserProfile->getUserFriend() and $oUserProfile->getUserFriend()->getFriendStatus()==$USER_FRIEND_OFFER+$USER_FRIEND_NULL and $oUserProfile->getUserFriend()->getUserFrom()==$oUserCurrent->getId()} <li> </li> {elseif $oUserProfile->getUserFriend() and $oUserProfile->getUserFriend()->getFriendStatus()==$USER_FRIEND_OFFER+$USER_FRIEND_NULL and $oUserProfile->getUserFriend()->getUserTo()==$oUserCurrent->getId()} <a href="#" title="{$aLang.user_friend_add}" onclick="return ls.user.addFriend(this,{$oUserProfile->getId()},'accept');"><button type="submit" class="button button-action button-action-add-friend"><i class="icon-synio-add-friend"></i><span>{$aLang.user_friend_add}</span></button></a> {elseif !($oUserProfile->getUserFriend())} <div id="add_friend_form" class="modal"> <header class="modal-header"> <h3>{$aLang.profile_add_friend}</h3> <a href="#" class="close jqmClose"></a> </header> <form onsubmit="return ls.user.addFriend(this,{$oUserProfile->getId()},'add');" class="modal-content"> <p><label for="add_friend_text">{$aLang.user_friend_add_text_label}</label> <textarea id="add_friend_text" rows="3" class="input-text input-width-full"></textarea></p> <button type="submit" class="button button-primary">{$aLang.user_friend_add_submit}</button> </form> </div> <a href="#" title="{$aLang.user_friend_add}" onclick="return ls.user.addFriend(this,{$oUserProfile->getId()},'link');"><button type="submit" class="button button-action button-action-add-friend"><i class="icon-synio-add-friend"></i><span>{$aLang.user_friend_add}</span></button></a> {else} <a href="#" title="{$aLang.user_friend_add}" onclick="return ls.user.addFriend(this,{$oUserProfile->getId()},'link');"><button type="submit" class="button button-action button-action-add-friend"><i class="icon-synio-add-friend"></i><span>{$aLang.user_friend_add}</span></button></a> {/if}
Вставляется в 44-ю строку после выражения (код будет обернут в данный if):
{if $oUserCurrent && $oUserCurrent->getId()!=$oUserProfile->getId()}
Получилось вот так:
40 комментариев
Для стартер кит — не знаю, не тестировал. Хак корректен, т.к. я тут просто копирование кода элемента с одного места в другое.
Его, кстати, в ближайшее время тоже планирую «допилить», результаты выложу.
С другой стороны, можно и самому себе отправлять сообщения через /people, так что все это — в порядке вещей :)
если кнопка «написать сообщение» в своем профиле у вас тоже показывается, то значит вы и её забыли обернуть в проверку.
Тогда все работает правильно.
1. Заходим в файл, который находится по директории /templates/skin/synio/actions/ActionProfile/profile_top.tpl
2. Где-то в 45-50 строках видим следующий код:
3. Теперь исходный код добавления в друзья:
Вставляем до {/if}, чтобы условие проверки работало и не было возможности добавить самого себя в друзья.
У меня что то не работает (((
1. Без сопутствующего сообщения (кнопка срабатывает тут же)
2. В инбокс приходит письмо, что «вася хочет добавить вас в друзья» и 2 кнопки: добавить в друзья и оставить в подписчиках.
Все равно при добавлении в друзья никто не пишет ничего в этом окошке, ну смайлик какой то.
Я уже обращался и к программистам…
После замены кода на сайте ни чего не меняется
Кешь везде чистил и в браузере и в compiled, cache
Стоял плагин
«Simple Rating» — упрощает рейтинговую систему
plugins/simplerating/templates/skin/synio/actions/ActionProfile/profile_top.tpl
тут функционал точно такой же, как и при нажатии ссылки «добавить в друзья» со страницы пользователя, просто он повешен на кнопку.