W Joomla obsługa strony błędu 404 jest obsługiwana przy pomocy pliku /templates/nazwa_szablonu/error.php oraz arkusza /templates/nazwa_szablonu/css/error.css
W jaki sposób edytować te pliki aby strona błędu była wczytywana z utworzonego artykułu ?
Systemowy error.php
- Kod: Zaznacz wszystko
<?php
/**
* @package Joomla.Site
* @subpackage Template.system
*
* @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
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;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title><?php echo $this->error->getCode(); ?> - <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?></title>
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/system/css/error.css" type="text/css" />
<?php if ($this->direction == 'rtl') : ?>
<link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/system/css/error_rtl.css" type="text/css" />
<?php endif; ?>
<?php if ($app->get('debug_lang', '0') == '1' || $app->get('debug', '0') == '1') : ?>
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/media/cms/css/debug.css" type="text/css" />
<?php endif; ?>
</head>
<body>
<div class="error">
<div id="outline">
<div id="errorboxoutline">
<div id="errorboxheader"><?php echo $this->error->getCode(); ?> - <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?></div>
<div id="errorboxbody">
<p><strong><?php echo JText::_('JERROR_LAYOUT_NOT_ABLE_TO_VISIT'); ?></strong></p>
<ol>
<li><?php echo JText::_('JERROR_LAYOUT_AN_OUT_OF_DATE_BOOKMARK_FAVOURITE'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_SEARCH_ENGINE_OUT_OF_DATE_LISTING'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_MIS_TYPED_ADDRESS'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_YOU_HAVE_NO_ACCESS_TO_THIS_PAGE'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_REQUESTED_RESOURCE_WAS_NOT_FOUND'); ?></li>
<li><?php echo JText::_('JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST'); ?></li>
</ol>
<p><strong><?php echo JText::_('JERROR_LAYOUT_PLEASE_TRY_ONE_OF_THE_FOLLOWING_PAGES'); ?></strong></p>
<ul>
<li><a href="<?php echo $this->baseurl; ?>/index.php" title="<?php echo JText::_('JERROR_LAYOUT_GO_TO_THE_HOME_PAGE'); ?>"><?php echo JText::_('JERROR_LAYOUT_HOME_PAGE'); ?></a></li>
</ul>
<p><?php echo JText::_('JERROR_LAYOUT_PLEASE_CONTACT_THE_SYSTEM_ADMINISTRATOR'); ?></p>
<div id="techinfo">
<p><?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?></p>
<p>
<?php if ($this->debug) : ?>
<?php echo $this->renderBacktrace(); ?>
<?php endif; ?>
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
systemowy error.css
- Kod: Zaznacz wszystko
/**
* @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
/* Start Common Styles */
* {
font-family: helvetica, arial, sans-serif;
font-size: 11px;
color: #5F6565;
}
html {
height: 100%;
margin-bottom: 1px;
}
body {
margin: 0px;
padding: 0px;
height: 100%;
margin-bottom: 1px;
background: #FFFFFF;
font-family: helvetica, arial, sans-serif;
font-weight: normal;
padding-top: 0px;
margin-top: 0px;
}
.error {
margin-left: auto;
margin-right: auto;
}
table, td, th, div, pre, blockquote, ul, ol, dl, address,.componentheading,.contentheading,.contentpagetitle,.sectiontableheader,.newsfeedheading {
font-family: helvetica, arial, sans-serif;
font-weight: normal;
}
#outline {
width: 900px;
margin: 0 auto;
padding: 0px;
padding-top: 60px;
padding-bottom: 60px;
background: #FFFFFF;
}
#errorboxoutline {
width: 900px;
margin: 0px;
padding: 0px;
border: 1px solid #000000;
}
#errorboxheader {
width: 900px;
margin: 0px;
padding: 0px;
background: #E44249;
color: #FFFFFF;
font-weight: bold;
font-size: 12px;
line-height: 22px;
text-align: center;
border-bottom: 1px solid #000000;
}
#errorboxbody {
margin: 0px;
padding: 10px;
text-align: left;
}
#techinfo {
margin: 10px;
padding: 10px;
text-align: left;
border: 1px solid #CCCCCC;
color: #CCCCCC;
}
#techinfo p {
color: #CCCCCC;
}