Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

.\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 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...