Модуль позволяет пользователям выбирать себе друзей или врагов. Таким образом, можно ограничить просмотр объектов пользователя другими пользователями (например, только для друзей или всем, кроме врагов).
С этим модулем связан компонент «Пользователи: Друзья». Это компонент выводит на страницу всех пользователей (компонент устроен так, что выборка записей идет не из таблицы MessageXX, а из таблицы User, это сделано через $ignore_all и форму для сохранения результата (при наличии модуля «Кэширование» запретите кэширование для раздела, в котором используется этот компонент). Напротив каждого пользователя есть переключатели «Друг», «Нейтраль», «Враг». Все переключатели и кнопка «ОК» находятся в одной форме, действие формы идет на скрипт модуля. Сам компонент «Пользователи: Друзья» вы можете менять как угодно (например, заменив радиокнопки на выпадающий список или ограничив в системных настройках компонента выборку пользователей), но формат данных, попадающих на скрипт должен иметь определенный вид. Каким образом данные попадают на скрипт (через элементы формы и скрытые поля, через get-параметры) не важно. Сам скрипт находится по адресу /netcat/modules/auth/add_relation.php
Передаваемые параметры на скрипты должны выглядеть следующим образом:
user_X=y
где Х — номер пользвоателя
y — тип отношения (1 — сделать другом, 2 — сделать врагом, -1 — удалить отношение)
edirect_url=адрес_страницы
этот параметр определяет, куда перебросить пользователя после сохранения результата выбора друзей/врагов.
В компоненте «Пользователи: Друзья» redirect_url задается в скрытом поле:
<input type='hidden' value='<?= $_SERVER['REQUEST_URI']; ?>' name='redirect_url'>
Таким образом, после сохранения, пользователя перебросит опять же на эту страницу.
Как было сказано выше, не важно, как именно данные передаются на скрипт, их можно передать через GET-параметры, то есть пользователь проходит по определенной ссылке, а система добавляет к нему, допустим, друга.
Ссылка может иметь вид:
http://адрес_сайта/netcat/modules/auth/add_relation.php?user_3=1
Пользователь, зашедший на такую ссылку добавит к себе в друзья пользователя с номером 3.
Вот такая ссылка:
http://адрес_сайта/netcat/modules/auth/add_relation.php?user_35=2&user_2=1&user_5=-1&redirect_url=http://адрес_сайта/profile/
добавит пользователя 35 в враги по отношению к текущему пользователю, добавит в друзья пользователя 2,уберет из друзей/врагов пользователя 5и перебросит на страницу http://адрес_сайта/profile/.
Если возникает задача в списке пользователей вывести ссылку на «добавление в друзья» (по аналогии с «сообщение»), то решить ее можно следующим образом: в системной таблицу «Пользователи», в «объекте в списке» напишите:
<a href='/netcat/modules/auth/add_relation.php?user_<?= $f_RowID; ?>=1&redirect_url=<?= $_SERVER['REQUEST_URI']; ?>'>в друзья</a>