我正在尝试为我制作的自定义组件添加路由,并且我按照文档介绍了如何执行此操作。但是当我将router.php文件上传到组件时,它将该站点呈现为空白。不确定我是否遗漏了任何东西。就好像整个网站只引用这个新文件,从而给我一个空白页面。
组件的SEF URL的URL是:
index.php/en/products
我构建路由器的方式是让链接看起来像这样:
index.php/en/products/trousers
index.php/en/products/555-123-20
组件\ router.php
function componentBuildRoute( &$query )
{
$segments = array();
if(isset($query['view'])) {
$segments[] = $query['view'];
unset($query['view']);
}
if(isset($query['cat'])) {
$segments[] = $query['cat'];
unset($query['cat']);
}
if(isset($query['itemid'])) {
$segments[] = $query['itemid'];
unset($query['itemid']);
}
if(isset($query['color'])) {
$segments[] = $query['color'];
unset($query['color']);
}
return $segments;
}
function componentParseRoute($segments) {
$vars = array();
switch($segments[0])
{
case 'listing':
$vars['view'] = $this->chooseView($segments[1]);
break;
case 'item':
$vars['id'] = $segments[1].'-'.$segments[2];
break;
}
return $vars;
}
private function chooseView($cat) {
switch($cat) {
case '1':
$cat = 'trousers';
break;
case '2':
$cat = 'jackets';
break;
}
return $cat;
}
答案 0 :(得分:0)
@MasterAM对private
。
在一个有点相关的说明中,router.php
不喜欢位于函数之外的变量。我试图添加一个全局数组,但它无法访问。相反,我做了一个函数来返回数组。