
- •Хранилище фотоальбомов
- •Введение
- •Постановка задачи
- •Описание инструментов субд
- •Язык программирования
- •Структура базы данных Диаграмма
- •Описание таблиц
- •Структура web-приложения Определение основных страниц
- •Определение реализации страниц
- •Контроллеры
- •Просмотр списка пользователей
- •Просмотр профиля пользователя
- •Вход пользователя в систему
- •Выход пользователя из системы
- •Регистрация нового пользователя
- •Редактирование профиля
- •Удаление профиля
- •Восстановление пароля
- •Категории
- •Просмотр категорий пользователя
- •Добавление новой категории
- •Редактирование категории
- •Удаление категории
- •Альбомы
- •Вывод списка альбомов
- •Отображение списка альбомов в категории
- •Отображение альбомов конкретного пользователя
- •Добавление альбома
- •Изменение альбома
- •Удаление альбома
- •Фотографии
- •Вывод списка фотографий
- •Вывод списка фотографий в альбоме
- •Вывод списка фотографий пользователя
- •Просмотр фотографии
- •Добавление фотографии
- •Редактирование фотографии
- •Удаление фотографии
- •Поиск фотографии
- •Комментарии
- •Добавление комментариев
- •Просмотр комментариев
- •Оценивание фотографии
- •Просмотр средней оценки
- •Просмотр друзей пользователя
- •Добавление в друзья
- •Запросы в мои друзья
- •Принятие заявки
- •Отклонение заявки
- •Просмотр отправленных мной заявок
- •Удаление пользователя из списка друзей
- •Сообщения
- •Отправка сообщения
- •Просмотр списка диалогов
- •Просмотр диалога
- •Заключение
Структура web-приложения Определение основных страниц
На сайте определены следующие основные страницы:
Главная страница
Страница авторизации (вход/регистрация)
Страница со списком пользователей
Страница просмотра профиля пользователя
Страница со списком категорий пользователя
Страница со списком всех альбомов и альбомов пользователя
Страница со списком фотографий по альбомам, по пользователям
Страница поиска
Помимо этого, каждая страница будет разделена на несколько областей:
Главное меню |
Форма поиска |
Меню пользователя |
|
Боковая панель |
Основной блок |
||
Подвал |
Определение реализации страниц
Каждая сущность (пользователи, фотографии, альбомы …) будет иметь свой Контроллер, Модель и набор Видов. Контроллеры, модели и виды – это три кита шаблона MVC. В контроллерах определяются действия, модели возвращают данные из различных источников (обычно, баз данных), а виды определяют представление.
Контроллеры
Контроллер, в контексте фреймворка CodeIgniter – это PHP класс с именем, совпадающим с названием страницы. Контроллер определяет действия, производимые над сущностью, каждое из которых представлено методом класса-контроллера. Контроллер определяет поведение страницы в зависимости от направленного ей запроса.
Контроллер создается наследованием от класса-родителя CI_Controller. Все пользовательские контроллеры CodeIgniter по умолчанию располагают в папке application/controllers. Для более удобной работы был создан общий класс-контроллер для всех страниц с общими методами MY_Controller:
<?php
/*
* Расширенный контроллер
*/
class MY_Controller extends CI_Controller
{
/*
* Данные пользователя
*/
public $user = array();
/*
* Данные вида
*/
public $data = array();
public function __construct()
{
parent::__construct();
/*
* Проверяем, авторизирован ли пользователь
*/
...
}
/**
* Проверка авторизации
*/
protected function checkAuthorization( $redirect = "" ) {}
/**
* Установка ошибки
*/
public function setError( $msg, $redirect = "" ) {}
/**
* Установка сообщения
*/
public function setMessage( $msg, $redirect = "" ) {}
}
Таким образом, я определил некоторые общие методы и свойства, которые необходимы для функционирования системы без дополнительных запросов.
Модели
Модели – это тоже PHP класс, который для каждой сущности определяет перечень источников информации, методы с реализацией доступа к ним и другую информацию, необходимую для взаимодействия с источником данных.
Модель создается наследованием от класса-родителя CI_Model. Модели создаются в папке application/models.
Виды
Виды – это файлы с кодом представления на каком-либо языке разметки. В видах определены места для последующей подстановки в них значений, что обеспечивает возможность дифференцирования представления целой страницы на отдельные ее части. Набор представлений располагается в папке application/views.
Описание страниц
Пользователи
Страница «Пользователи» контролируется контроллером users и моделью users_model. Контроллер предоставляет следующие возможности для работы с пользователями:
Действие |
Метод |
Просмотр списка пользователей |
index |
Просмотр профиля пользователя |
user |
Вход пользователя в систему |
login |
Выход пользователя из системы |
logout |
Регистрация пользователя |
registration |
Редактирование профиля |
edit |
Удаление профиля |
delete |
Восстановление пароля |
restore |
Структура контроллера users следующая:
<?php
class Users extends MY_Controller
{
/**
* Количество пользователей на странице
*/
private $_users_per_page = 3;
public function __construct()
{
parent::__construct();
}
/**
* Вывод списка пользователей
*/
public function index( $page = 1 ) {}
/**
* Просмотр профиля пользователя
*/
public function user( $id = null ) {}
/**
* Вход пользователя в систему
*/
public function login(){}
/**
* Регистрация пользователя
*/
public function registration() {}
/**
* Выход пользователя из системы
*/
public function logout() {}
/**
* Редактирование профиля
*/
public function edit() {}
/**
* Деактивация профиля
*/
public function delete() {}
/**
* Напоминание пароля
*/
public function restore() {}
}