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

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

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

<?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();
        $response = Response::factory()
            ->status(404)
            ->body($view->render());
        return $response;
    }
}

Вот и все ,осталось только создать VIEW для страницы с ошибкой.
HTTP/404

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title>Ошибка HTTP 404</title>
  <?php
   echo HTML::style('themes/default/css/main.css');
  ?>
 </head>
 <body>
 <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>
	<?php echo HTML::image('media/images/404.jpg', array('alt' => '404')) ?> <br />
	<h4>Ошибка 404 или Not Found («не найдено») стандартный код ответа HTTP о том, что клиент был в состоянии общаться с сервером, но сервер не может найти данные согласно запросу.</h4> <br />
	</div>
  </div>
  <footer id="footer">
	&copy; <?php echo HTML::anchor('/#', 'Pegas CMS'); ?> 2011-<?php echo date('Y'); ?> г
  </footer>
</div>
</body>
</html>

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

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

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

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