Создание собственных страниц ошибок в Kohana 3.3

Здраствуйте ,сегодня у нас в статье создание собственных страниц ошибок в фреймворке Kohana 3.3
Скажу сразу что теперь это очень даже легкая задача )
Для этого достаточно скопировать папку с /system/classes/HTTP в папку нашего приложения /application/ и расписать метод get_response() для классов исключений.

Для примера организация страницы ошибки 404:
Расширим класс HTTP_Exception_404 в папке /system/classes/HTTP/Exception/.

<br />
<?php defined('SYSPATH') OR die('No direct script access.');
class HTTP_Exception_404 extends Kohana_HTTP_Exception_404 {
	 /**
     * Generate a Response for the 404 Exception.
     *
     * The user should be shown a nice 404 page.
     *
     * @return Response
     */
    public function get_response()
    {
        $view = View::factory('HTTP/404');
        // Remembering that `$this` is an instance of HTTP_Exception_404
        $view->message = $this->getMessage();</p>
<p>        $response = Response::factory()<br />
            ->status(404)<br />
            ->body($view->render());</p>
<p>        return $response;<br />
    }</p>
<p>}<br />

Вот и все ,осталось только создать VIEW для страницы с ошибкой.
HTTP/404
<br />
<!DOCTYPE html><br />
<html><br />
 <head><br />
  <meta charset="utf-8" /><br />
  <title>Ошибка HTTP 404</title><br />
  <?php
   echo HTML::style('themes/default/css/main.css');
  ?><br />
 </head><br />
 <body></p>
<div id="container">
<header id="header">
<h1>PEGAS <span>CMS</span></h1>
<p>Based on <?php echo Kohana::version() ?></p>
<div id="topmenu">
<ul>
<li><?php echo HTML::anchor('/#', 'Главная'); ?></li>
<li><?php echo HTML::anchor('/about/', 'О Pegas CMS'); ?></li>
</ul></div>
</header>
<div id="post">
<div style="text-align:center;">
<h2><?php echo $message?></h2>
<p>	<?php echo HTML::image('media/images/404.jpg', array('alt' => '404')) ?> </p>
<h4>Ошибка 404 или Not Found («не найдено») стандартный код ответа HTTP о том, что клиент был в состоянии общаться с сервером, но сервер не может найти данные согласно запросу.</h4>
<p>
	</div>
</p></div>
<footer id="footer">
	&copy; <?php echo HTML::anchor('/#', 'Pegas CMS'); ?> 2011-<?php echo date('Y'); ?> г<br />
  </footer>
</div>
<p></body><br />
</html><br />

Скачать уже готовую страницу и изображения можно с репозитория Pegas CMS.
Пример страницы http://cmspegas.ru/404

Остальные страницы ошибок реализуются также

P.S При возникновении вопросов прошу в комментарии

Вам также может понравиться ...