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

Отображение списка альбомов в категории

За отображение альбомов согласно категории отвечает метод category. Он получает в качестве параметра номер категории и производит выборку из нее альбомов:

Рисунок 22

Боковая панель:

Рисунок 23

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

/**

* Отображение списка альбомов в категории

*/

public function category( $category_id )

{

...

$category = $this->categories_model->get_category($category_id);

if ( !$category )

{

$this->setError(

"Категории с номером <b>$category_id</b> нет",

"albums"

);

}

...

$this->load->view('view', $this->data);

}

Отображение альбомов конкретного пользователя

Выборка и отображение альбомов пользователя производится в методе user. Он принимает номер пользователя, альбомы которого необходимо показать. Внешний вид страницы с альбомами пользователя:

Рисунок 24

Частичный листинг метода user:

/**

* Отображение альбомов конкретного пользователя

*/

public function user( $user_id )

{

...

$user = $this->users_model->get_user(array('id'=>$user_id));

if ( !$user )

{

$this->setError(

"Пользователя с таким номером нет",

"albums"

);

}

...

$this->load->view('view', $this->data);

}

Добавление альбома

Добавление альбома производится в методе add, который загружает форму добавления альбома и обрабатывает данные, которые с ней приходят.

Внешний вид формы добавления альбома:

Рисунок 25

В данном случае в выпадающем списке категорий находятся только категории текущего пользователя. Таким образом, при попытке добавления альбома не в свою категорию система выдаст ошибку:

иначе, если добавление успешно, то сообщение будет таким:

Обработка добавления будет иметь код:

/**

* Добавление альбома

*/

public function add( $category_id = null )

{

$categories = $this->categories_model->get_categories(

array("user_id" => $this->user['id'])

);

if ( !$categories )

{

$errors[] = "Невозможно создать альбом. " .

"Для начала добавьте хотя бы одну категорию";

$this->session->set_userdata('errors', $errors);

redirect("categories/add");

}

// Принимаем данные формы

if ( $this->input->post("submit") )

{

// Определяем правила проверки

// Устанавливаем правила

// Проверяем данные формы

if ( $this->form_validation->run() == true )

{

// Данные корректны, принимаем их

$category = $this->categories_model

->get_category($album['category_id']);

if ( !$category || ($this->user['id'] != $category['user_id']) )

{

$errors[] = "Невозможно добавить альбом в чужую категорию";

$this->session->set_userdata('errors', $errors);

redirect("categories/user/" . $this->user['id']);

}

// Заносим информацию в БД

}

}

// Загружаем форму добавления альбома

$this->load->view('view', $this->data);

}

Изменение альбома

Изменение альбома происходит в методе edit аналогично добавлению, за исключением того, что вместо добавления данных, пришедших из формы, производится их обновление. Форма изменения альбома имеет вид:

Рисунок 26

При удачном изменении система выдает сообщение: