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

Категории

Категории управляются классом-контроллером categories, который имеет следующие функции, представленные методами:

Действие

Метод

Просмотр категорий пользователя

user

Добавление новой категории

add

Редактирование категории

edit

Удаление категории

delete

Для манипулирования данными в БД используется модель categories_model, содержащая несколько специфических методов для категорий.

Структура контроллера categories

<?php

/**

* Контроллер категорий

*/

class Categories extends MY_Controller

{

/**

* Количество категорий на странице

*/

private $_categories_per_page = 2;

public function __construct()

{

parent::__construct();

}

/**

* Вывод списка категорий определенного пользователя

*/

public function user( $user_id, $page = 1 ) {}

/**

* Добавление новой категории

*/

public function add() {}

/**

* Редактирование категории

*/

public function edit( $category_id ) {}

/**

* Удаление категории

*/

public function delete( $category_id ) {}

}

Просмотр категорий пользователя

Метод user принимает идентификатор пользователя, категории которого необходимо просмотреть. Затем согласно номеру пользователя выбираются категории, им созданные. Это осуществляется вызовом метода модели categories_model – get_categories:

/**

* Получение списка категорий

*/

public function get_categories( $where, $limit = 999, $offset = 0 )

{

$categories = CATEGORIES_TABLE;

$albums = ALBUMS_TABLE;

$this->db ->select(" C.id,

C.user_id,

C.title,

C.date,

COUNT( A.id ) AS count_of_albums")

->from("$categories C")

->join("$albums A", "A.category_id = C.id", "LEFT")

->group_by("C.id, C.user_id, C.title, C.date")

->having($where);

$res = $this->db->get();

return $res->result_array();

}

Внешний вид страницы категорий:

Рисунок 16

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

Рисунок 17

Добавление новой категории

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

Рисунок 18

и сообщение:

Код обработчика добавления категории:

/**

* Добавление новой категории

*/

public function add()

{

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

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

{

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

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

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

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

{

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

$category['user_id']= $this->user['id'];

$category['title'] = $this->input->post('title');

$category['date'] = date('Y-m-d H:i:s');

if ( $id = $this->db_model->insert(CATEGORIES_TABLE, $category) )

{

$this->setMessage(

"Категория <b>{$category['title']}</b> успешно создана",

"albums/category/$id"

);

}

else

$this->setError("Произошла ошибка при добавлении категории");

}

}

// Загружаем вид

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

}