Joomla系统允许模板重新定义系统的出错页面。在本节中我们就来讨论一下该如何为我们的模板定义一个处理错误的页面。
了解如何自定义出错页面
2.1 有一些情况下,网站的页面会提示错误信息。比如:当我们访问一个不存在的地址的时候,系统就会显示出错信息。如图:
这个信息页面是系统默认的。这个页面模板的开发者是可以完全自定义的。下面是新定义的错误页面。如图:
当系统检测到出错的时候,会自动寻找当前模板下的error.php文件。如果在当前模板下没有找到error.php文件,那么系统就会加载templates/system/error.php文件。因此,我们现在需要做的就是在模板下面新建一个error.php文件。然后在error.php文件中写入我们需要的错误页面。典型的代码如下:
<html lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>"> <head> <meta charset="utf-8" /> <title><?php echo $this->error->getCode(); ?> - <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?></title> <link href="/<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" /> <link href="/<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/css/error.css" rel="stylesheet" /> </head> <body> <div class="middle-box text-center" > <img src="/templates/planc/image/error.png" /> <h1><?php echo $this->error->getCode(); ?></h1> <h3 >抱歉,页面好像去火星啦!</h3> <div > <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?> </div> <p><a class="btn btn-primary" href="/<?php echo JUri::root(true); ?>/index.php" >返回主页</a></p> </div> </body> </html>
上面的代码很简洁,首页引入需要的css文件,然后写错误的详情页面。为了方便排除错误,系统会将出错的信息设置到$this->error这个对象中,我们通过访问这个error对象获得具体的错误信息。需要注意的是,在error.php中我们不能够使用
$doc = JFactory::getDocument(); $doc->addStyleSheet($css);
来接着样式文件,而是使用html的link标签来加载。
4.1 代码
在本次版本中,我们为模板设计了出错页面。当我们在模板的根目录下新建一个error.php文件后,这个error.php文件会替换系统默认的出错页面。以此达到定制错误页面的目标。
4.2 v0.0.21版本
关于v0.0.21版本的代码,可以在此下载 tpl_plancv0.0.21_2019-01-21_for_j3x.zip