Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвБД_Курсовик_ОрищенкоТС.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
895.63 Кб
Скачать

Просмотр друзей пользователя

Просмотр друзей пользователя осуществляется методом user контроллера friends. Внешний вид списка друзей пользователя:

Рисунок 40

либо, если это список друзей текущего пользователя:

Рисунок 41

Метод user выбирает список друзей пользователя по его номеру и выводит его на экран.

Добавление в друзья

Добавление в друзья производится методом add контроллера friends_model. Он создает заявку и отправляет ее пользователю на подтверждение.

Для добавления необходимо на странице просмотра профиля пользователя кликнуть на ссылку

и, если заявка создалась, то система уведомит пользователя сообщением:

Частичный листинг метода add контроллера friends:

/**

* Добавление в друзья

*/

public function add( $user_id )

{

// Если заявка уже была отправлена ВАМИ

if ( $req = $this->friends_model->get_friend(array(

'friend1' => $this->user['id'],

'friend2' => $user_id)))

{...}

// Если заявка уже была отправлена пользователем ВАМ

if ( $req = $this->friends_model->get_friend(array(

'friend2' => $this->user['id'],

'friend1' => $user_id)))

{...}

// Создание записи о дружбе, но еще не подтвержденной

$friend['friend1'] = $this->user['id'];

...

// Вставка заявки в БД

if ( $this->db_model->insert(FRIENDS_TABLE, $friend) )

{...}

else

{...}

}

Заявка направляется пользователю. Он может ее просмотреть и одобрить или отказать в дружбе.

Запросы в мои друзья

Просмотр заявок осуществляется на странице /friends/requests. Метод requests выбирает список записей о дружбе, направленных текущему пользователю, но не подтвержденных, т.е. флаг confirmed = 0.

Внешний вид страниц заявок, направленных пользователю:

Рисунок 42

Принятие заявки

Пользователь может либо принять заявку, либо ее отвергнуть. В первом случае флаг записи confirmed выставится в 1:

Листинг метода accept:

if ( $this->db_model->update(FRIENDS_TABLE,

array('confirmed' => '1'),

array('id' => $request_id)))

{

// Запись обновлена

}

else

// обрабатываем ошибку обновления

Сообщение системы:

Отклонение заявки

При отклонении заявки метод decline удаляет запись о дружбе:

if ( $this->db_model->delete(FRIENDS_TABLE,

array('id' => $request_id)))

{

$this->setMessage(

"Вы отказали пользователю <b>{$user['name']}</b> в дружбе",

"friends/user/" . $this->user['id']

);

}

else

{

$this->setError(

"Произошла ошибка при отвержении заявки",

"friends/user/" . $this->user['id']

);

}

Сообщение системы:

Просмотр отправленных мной заявок

Пользователь, отправивший запрос, может следить за состоянием заявки. Метод контроллера friends my_requests выводит список активных заявок в друзья пользователям:

В это время у пользователя «Катя» в ее заявках появилось сообщение:

Если же текущий пользователь нажмет «Отменить запрос», то отработает метод abort контроллера friends и заявка будет отменена:

А у пользователя «Катя» заявка исчезнет из списка:

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

Для удаления пользователя из списка друзей необходимо при просмотре списка вызвать метод delete, кликнув на ссылке:

Рисунок 43

Отработает метод delete, который удалит запись о дружбе:

if (

$this->db_model->delete(

FRIENDS_TABLE,

array(

'friend1' => $this->user['id'],

'friend2' => $user_id

)

) ||

$this->db_model->delete(

FRIENDS_TABLE,

array(

'friend2' => $this->user['id'],

'friend1' => $user_id

)

)

)

{

// Запись удалена

}

else

{

// Запись не удалена

}

И система оповестит: