我正在尝试为我制作的自定义组件添加路由,并且我遵循了有关如何执行此操作的文档。但是当我将 router.php 文件上传到组件时,它使站点变为空白。不知道我是否遗漏了什么。就好像整个站点只引用这个新文件,从而给了我一个空白页。
带有 SEF URL 的组件的 URL 是:
index.php/en/products
我构建路由器的方式是让链接看起来像这样:
index.php/en/products/trousers
index.php/en/products/555-123-20
组件\路由器.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;
}