Здравствуйте!
Сейчас у меня в шаблоне Bootstrap выводится во время ошибки 404 простое сообщение. Для большей эффективности хотелось бы оформить страницу ошибки 404 по подобию главной, чтобы и навбар был виден, и боковые блоки, и футер, и в поле контента можно было вставить приветствие с направляющими ссылками. В общем, чтобы страница 404 была частью сайта.
Подскажите, пожалуйста, как это сделать?
MEN, я попробовал по-вашему «добавить к нему header.html», скопировав код из header.html в body 404.html, не получается цельная страница сайта, всё то же простое сообщение. Попробовал и из theme.html скопировать, ничего не выходит, как было простое сообщение, так и остается.
Во-первых, отличайте ошибку 404, которую выводит веб-сервер, от ошибки, произошедшей в движке. Там все же разные механизмы.
При ошибке, произошедшей в движке (то есть запрос шел на index.php и движок его отрабатывал), он пытается вывести 404.html а-ля как theme.html. Так что можно просто привести страницу ошибок к ее содержанию с сообщением об ошибке.
Если ошибка происходит на уровне веб сервера (например, не найден запрошенный клиентом файл), то согласно правилам .htaccess он выводит файл из папки errorpages. Тут уж вы особо с блоками не разыграетесь, ибо страница статичная. Если не городить энтерпрайзов, то в таком случае можно создать статическую страницу в линкоре и перенаправлять на нее правилами .htaccess.
Кстати, если движок не находит файл 404.html в папке с темой, то он спокойно выплевывает аналог из папки errorpages без всяких там подключений шаблонизатора (то есть, как есть).
Мартин, понятно, жаль, что не получится просто оформить 404-страницу. Просто у меня после переноса сайта практически все ссылающиеся на него внешние ссылки в интернете стали неправильными, и когда люди переходят по ним, то видят только сообщение о 404, и наверняка закрывают его, и на этом всё и заканчивается. А полноценная сайтовая страница, с навбаром, меню и блоками, удержала бы этих посетителей на сайте.
Антонъ Расскажу как сделать, чтобы страница показывалась по умолчанию при ошибке 404.
Создайте страницу (в админ-панели, модуль страницы) и в поле ссылка напишите 404.
Откройте файл base/inc/system/location.php, найдите в конце файла функцию Error404, добавьте после строчки Header("HTTP/1.1 404 Not Found"); следующий код:
$_GET = array('name'=>'pages', 'file'=>'404');
System::site()->InitPage();
include 'modules/pages/index.php';
System::site()->TEcho();
if($Exit) exit; else return;
Напоследок откройте modules/pages/index.php и перед строчкой 62 "System::site()->AddTextBox...",
напишите Error404();