Сегодня 21.11.2024 г.
Ваш IP-адрес: 3.144.31.86

Создание своей страницы ошибки 404 в Joomla 3

Ошибка 404 видна посетителю в случае если он перешел на не существующую страницу или на удаленную.

На примере моего сайта, главная страница - https://alexfine.ru/

Если добавить в адресную строку набор символов - https://alexfine.ru/simvol123

404 OOPS Станица не найдена

Система перенаправит на страницу ошибки 404. Не настроенная (по умолчанию) страница ошибки 404, выглядит так:

404 Материал не найден

Согласитесь, такая страница имеет не презентабельный вид и может отпугнуть пользователя. Страница оформлена в виде отдельной страницы сайта. Такая реализация плоха тем, что она открывается вне содержимого сайта. Как показывает практика, посетитель уйдет с такого сайта, не задумываясь закроет вкладку. Другое дело, если страница ошибки 404 откроется как страница (статья/материал) самого сайта, в одном стиле с сайтом и навигацией. 

Теперь перейдем непосредственно к созданию страницы ошибки 404. 

Стандартными методами, создается новый материал. Примерно так, как на картинке ниже:

Создаем страницу ошибки Joomla

В материале выбираем категорию - "Uncategorised" или "Без категории". Создается статичный материал, который не принадлежит ни одной из категорий сайта. Как все поля заполнены, сохраняем данный материал и запоминаем его идентификатор (id). Его можно найти на странице со всем материалами - "id материала".

Теперь когда мы создали материал и запомнили его идентификатор, можем перейти к самому сложному :).

Необходимо скопировать файл error.php, который находиться по адресу:

alexfine.ru (на этом месте ваш сайт)/templates/system, в папку вашего шаблона (темы).

Открываем только что скопированный файл и вставляем туда следующий код:

<?php defined('_JEXEC') or die; if (!isset($this->error)) { $this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR')); $this->debug = false; } // Get language and direction $doc = JFactory::getDocument(); $app = JFactory::getApplication(); $this->language = $doc->language; $this->direction = $doc->direction; if($this->error->getCode()=='404') { header("HTTP/1.0 404 Not Found"); $url=JURI::root()."index.php?option=com_content&view=article&id=ХХ"; $data = file_get_contents($url) or die("Cannot open URL"); echo $data; } ?>

Далее в строчке: $url=JURI::root()."index.php?option=com_content&view=article&id=ХХ", заместо XX пишем id материала который мы создавали.

Сохраняем файл и проверяем его работу. Если сделали все правильно, откроется наш материал. 

Не правильно указан адрес страницы

Для более красивого и короткого адреса страницы ошибки 404, нужно создать скрытое меню для этого материала. Создаем меню, но на сайте никуда его не выводим. В меню, создаем пункт меню, который ведет на созданный материал.

 

Всем удачи!

 

Добавить комментарий


Если у вас имеются вопросы по поводу работы сайта, сотрудничества и предложений, вы можете написать на почту info@alexfine.ru

Я создал первую версию блога и введу его с 2015 года.

Копирование материалов сайта возможно только с указанием активной ссылки «www.alexfine.ru» в качестве источника.

Изображение кнопки наверх