
- •Хранилище фотоальбомов
- •Введение
- •Постановка задачи
- •Описание инструментов субд
- •Язык программирования
- •Структура базы данных Диаграмма
- •Описание таблиц
- •Структура web-приложения Определение основных страниц
- •Определение реализации страниц
- •Контроллеры
- •Просмотр списка пользователей
- •Просмотр профиля пользователя
- •Вход пользователя в систему
- •Выход пользователя из системы
- •Регистрация нового пользователя
- •Редактирование профиля
- •Удаление профиля
- •Восстановление пароля
- •Категории
- •Просмотр категорий пользователя
- •Добавление новой категории
- •Редактирование категории
- •Удаление категории
- •Альбомы
- •Вывод списка альбомов
- •Отображение списка альбомов в категории
- •Отображение альбомов конкретного пользователя
- •Добавление альбома
- •Изменение альбома
- •Удаление альбома
- •Фотографии
- •Вывод списка фотографий
- •Вывод списка фотографий в альбоме
- •Вывод списка фотографий пользователя
- •Просмотр фотографии
- •Добавление фотографии
- •Редактирование фотографии
- •Удаление фотографии
- •Поиск фотографии
- •Комментарии
- •Добавление комментариев
- •Просмотр комментариев
- •Оценивание фотографии
- •Просмотр средней оценки
- •Просмотр друзей пользователя
- •Добавление в друзья
- •Запросы в мои друзья
- •Принятие заявки
- •Отклонение заявки
- •Просмотр отправленных мной заявок
- •Удаление пользователя из списка друзей
- •Сообщения
- •Отправка сообщения
- •Просмотр списка диалогов
- •Просмотр диалога
- •Заключение
Просмотр друзей пользователя
Просмотр друзей пользователя осуществляется методом 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
{
// Запись не удалена
}
И система оповестит: