Личные сообщения только от друзей

Друзья, кто подскажет как прикрутить фильтр, который бы позволял получать личные сообщения только от друзей? Вещь очень полезная и нужная, особенно когда на сайте становится много народу, но о ее реализации почему-то пока никто не задумался. В какую сторону копать?

7 комментариев

avatar
при отправке письма поставьте условие, является ли адресат другом, и, если нет, выдавайте ошибку
  • dsg
  • 0
avatar
Ну это топорный вариант :) А есть желание сделать это более гибко, чтобы в настройках была галочка «Получать сообщения только от друзей», и при ее нажатии включался бы соответствующий фильтр.
avatar
так это ничего не меняет) при отправке письма проверяем, адресат друг автора? если нет, смотрим принимает ли адресат сообщения от недругов и т.д… просто 2 условия вместо одного.

Ну и чекбокс поставить в кабинете
avatar
А не подскажите, в каком файле это обрабатывается?
avatar
У меня в комментариях можете найти хук запрета отправки личных сообщений администрации. Пара правок — и ваша задача решена
avatar
За наводку спасибо, хук нашел. Но моих знаний не хватает чтобы вытащить массив айдишников друзей пользователя. Пытаюсь сравнить через
if(!$this->User_GetFriend($oUser->getId(),$oUserCurrent->getId()))
но там нестыковка типов данных. Как правильно выполнить это сравнение?
И еще, если не сложно, как потом вставить галочку в настройках, чтобы этот фильтр можно было включать по желанию?
avatar
{if $oUserFriend and ($oUserFriend->getFriendStatus()==$USER_FRIEND_ACCEPT+$USER_FRIEND_OFFER or $oUserFriend->getFriendStatus()==$USER_FRIEND_ACCEPT+$USER_FRIEND_ACCEPT)}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.