.\aplication\classes\controller\category.php
.. \aplication\classes\controller\category. php <? php defined('SYSPATH') or die('No direct script access. '); class Controller_Category extends Childrenbefore { public $template = 'title'; public function action_show() { $url = $this-> request-> param('id'); // запись параметра из url $data = array(); // инициализация пустого массива data $tree = new Model_Tree(); // объявление экземпляра класса(model_tree) $data['category'] = $tree-> categoryInfoByUrl($url); // использование метода categoryInfoByUrl модели tree // метод определит идентификатор и название категории по введенной пользователем ссылке и присвоит их массиву дата // --образуя многомерный массив-- if(! $data['category']) // проверка существования категории, если ее нету вывести ошибку 404 { throw new HTTP_Exception_404('Запрашиваемая категория не найдена'); return; } $data['materials'] = $tree-> contentСategoryById($data['category']['id']); // создать поле materials и запистаь туда результат обработки метода contentСategoryById // contentСategoryById получате значение многомерного массива=идентификатору категории(результата обработки categoryInfoByUrl) // все материалы введенной категории записываются по описанным методам в массив data поле materials $this-> template-> content = View:: factory('catview', $data); } }
.. \aplication\classes\controller\materials. php <? php defined('SYSPATH') or die('No direct script access. '); class Controller_Materials extends Childrenbefore { public $template = 'title'; public function action_category() { $nametrans = $this-> request-> param('id'); // передача параметра из ссылки, id будет являтся название категории // причина названия катогории как идентификатора кроется в маршрутизации Kohana файлом bootstrap
$data = array(); $category = new Model_Category('tree'); $material = new Model_Material(); $category_id = $category-> getCategoryIdByUrl($nametrans); if(! $category_id) { // если категории нету, то подключить класс HTTP_Exception_404, его путь использования в bootstrap(настройки) throw new HTTP_Exception_404('Страница не найдена! '); return; // завершить выполнение функции } $data['materials'] = $material-> getMaterialsByCategory($category_id); $this-> template-> content = View:: factory('materialsview', $data); }
public function action_showcontent() { $data = array(); $id = $this-> request-> param('id'); // звпись последней части url в переменную id $material = new Model_Material(); // создания экземпляра класса модели material $data = $material-> showMaterialById($id); // запись в массив data результата работы метода showMaterialById //(на который передаем ид материала) модели material
if(! $data) // если дата передана false она становится true и выдает ошибку ненайденной страницы 404 { throw new HTTP_Exception_404('Запрашиваемая статья не найдена'); return; } $this-> template-> content = View:: factory('contentview', $data); } } .. \aplication\classes\controller\netprav. php <? php defined('SYSPATH') or die('No direct script access. '); class Controller_Netprav extends Childrenbefore { public $template = 'title'; public function action_index() { $this-> template-> content = View:: factory('dontaccess'); } } .. \aplication\classes\controller\one. php <? php defined('SYSPATH') or die('No direct script access. '); // контроллер загружаемый по умолчанию ONE(согласно конфигу коханы 'bootstrap') расширяется от контроллера Template(Внутренний файл инструкций Kohana) class Controller_One extends Controller_Template { public $template = 'title'; // загрузка базового вида public function action_index() // функция по умолчанию { $this-> template-> content = View:: factory('titleview'); // добавление к базовому виду вида страницы titleview } }
.. \aplication\classes\controller\page. php
<? php defined('SYSPATH') or die('No direct script access. '); class Controller_Page extends Childrenbefore // обычная страница, расширяется от Childrenbefore { public $template = 'title'; // испоьзование базового вида страницы public function action_index() // функция выполняемая по умолчанию { $this-> template-> content = View:: factory('pageview'); // вывод вида pageview, добавит вид страницы к базовому } } .. \aplication\classes\controller\tag. php <? php defined('SYSPATH') or die('No direct script access. '); class Controller_Tag extends Childrenbefore { public $template = 'title'; public function action_showtag() { $url = $this-> request-> param('id'); // $url присваеваем последнее слово из адреса $data = array(); // инициализация пустого массива $tag = new Model_Tag(); // создание экземпляра класса модели_tag $data['tag'] = $tag-> tagInfoByUrl($url); // запись в массив дата поле tag результата работы метода tagInfoByUrl if(! $data['tag']) // елси тег не найден вывести ошибку { throw new HTTP_Exception_404('Запрашиваемый тег не найден! '); return; } // если тег найден записать в массив data поле materials результат функции contentTagById в моделе tag $data['materials'] = $tag-> contentTagById($data['tag']['id']); // на вход функции приходит найденный идентификатор тега. // запись материалов по данному тегу в массив data c полем material и вывод в файл вида tagview $this-> template-> content = View:: factory('tagview', $data); } }
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|