Пришло время написать страничку "ошибки 404".
Стандартная страница в Joomla!, конечно, есть, но выглядит она скучно и убого, и ничего кроме зевоты не вызывает. А психологический эффект от попадания на неё, как говорят, сравним с падением в тёмный погреб. Но хочется-то интересненького - не только нам, но и клиенту. Точнее, не столько клиенту, сколько нам! Это гораздо важнее.
Поскольку фантазия буйствует, а сравнить с чем-то не вредно, идем по просторам Интернета и осматриваемся по сторонам...
Вот пример страницы 404 от нашего вечно любимого hoster.kg
Или вот - стандартная ( уж не знаю, кто стандартизировал...)
Скукотища...
На сайте webmascon.com есть прекрасная статья, поясняющая значение хорошей и корректной страницы 404. Смысл её создания заключён в том, чтобы избавить посетителя от негативных эмоций, создать более дружественную обстановку на сайте даже в случае "промаха" и исключить преждевременный уход посетителя с сайта. Однако, написанная довольно доходчиво, статья не даёт внятного представления о технологии создания страницы. А вот на joomlaforum.ru нашлись относительно подробные объяснения здесь и здесь.
По горячим следам написал собственное простое и краткое "...водство".
1. Создаём материал "Ошибка 404", не указывая раздел и категорию.Запоминаем id материала (справа в таблице материалов).
2. Создаём в любом меню пункт с привязкой к данному материалу. Пункт меню не публикуем. Впрочем, если есть нужда и желание, можно создать отдельное меню, например, Технический раздел - категория Ошибки и опубликовать его там.
3. Находим файл error.php в директории наш сайт/templates/system/, на всякий пожарный случай создаём его копию, переименовываем её, например _error.php и оставляем в покое. Исходный файл error.php открываем в редакторе (лично я использую pspad) и производим следующие действия:
- Удаляем начисто всё, что находится ниже DOCTYPE, оставляя в файле буквально следующее
/**
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- Заменяем фрагмент
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
на такой
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
if ($this->error->code = '404') {
header("HTTP/1.0 404 Not Found");
} ?>
- Ниже строки
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
пишем
<?php
defined('JPATH_BASE') or die();
echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=180');
?>
Заменяем число ( в данном случае 180 ) на id реального материала (смотри п.1). Фактически мы создали редирект со штатной страницы 404 на нашу.
Теперь оформляем нашу страницу - например, так, как здесь. Получилось примерно вот что -
Не правда ли, гораздо интереснее, чем в предыдущих примерах?
Вот и всё! Дерзайте. Будьте здоровы и веселы!
PS. Небольшое дополнение по итогам смены версии 1.5.20 на 1.5.21 и далее
При заливке очередной версии Joomla! 1.5 файл error.php, естественно, заменяется тоже. Поэтому Ваша "прекрасная", столь любовно нарисованная "страничка 404" заменится унылым стандартом.
Не волнуйтесь, она никуда не делась. Делся редирект. Собственно материал "Страница 404" в целости и сохранности, просто он стал недоступен. Одно из двух - либо вновь тратим 1 минуту на все описанные выше операции с файлом error.php, либо заменяем его из сохранённого резерва. И будет вам счастье!
Комментарии
RSS лента комментариев этой записи