Codeigniter. Изящная обработка ошибки 404

Разработчики codeigniter настоятельно рекомендуют не изменять код ядра фреймворка. Если вы следуете этому правилу, то данные рекомендации не для вас.
Иногда просто необходимо для реализации какой-нибудь функции подтачивать исходный код. Мне понадобилась изящная обработка 404 ошибки с использованием
шаблонов. Проще говоря, мне необходимо было вписать 404 в свой шаблон. Я использую smarty

Итак, код в студию....

Открываем файл system/codeigniter/CodeIgniter.php и ищем строчку

if (!file_exists(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().EXT))
{
.........
}

выкидываем все, что написано между скобками и вставляем следующий код:

header("HTTP/1.1 404 Not Found");
$CI = new Controller();
$CI->templates->assign('html_title', '404. Страница не найдена');
$CI->templates->display('404.tpl');
exit;

у нас должно получиться

if (!file_exists(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().EXT))
{
header("HTTP/1.1 404 Not Found");
$CI = new Controller();
$CI->templates->assign('html_title', '404. Страница не найдена');
$CI->templates->display('404.tpl');
exit;
}

А теперь подробнее:

header("HTTP/1.1 404 Not Found"); - посылает заголовок 404. Это необходимо, в частности, для поисковых систем

$CI = new Controller(); - создаем экземпляр класса Controller. Он необходим для работы всех плагинов шаблона, которые используют функции ядра системы

$CI->templates->assign('html_title', '404. Страница не найдена');
- даю title своему шаблону (это особенности архитектуры моих шаблонов)

$CI->templates->display('404.tpl'); - подключаю шаблон 404 к основному шаблону сайта. (основной шаблон использует функцию include. В жанном случае я подключаю туда 404)

Важное примечание. Как видно из кода, библиотека templates уже загдужена автозагрузчиком (autoloader). Если это не сделано, ее можно вызвать следующим способом:

$CI = new Controller();
$CI->load->library('templates');
$CI->templates->assign('html_title', '404. Страница не найдена');
.......

вот ,собственно, и все.

Интересное

Проверка сайта на вирусы
Если пользоваться привычной терминологией, то web вирусы не являются вирусами в традиционном...
Project Glass — Очки будущего от Google
Компания Google представила суперсовременные «очки дополненной реальности» или Project Glass. Впрочем,...
Отзыв о FirstVDS
При покупке хостинга у FirstVDS мне предложили скидку за годный отзыв в блоге или на форуме....
Git и Bitbucket
Git – это распределенная система контроля версий. Пожалуй, на этом теория заканчивается, так как...

Комментарии

    Чтобы оставлять комментарии, авторизируйтесь

    Войти через OpenID

    рейтинг0+-
    Популярные
    Точки входа
    Наверх