0

我正在尝试为我制作的自定义组件添加路由,并且我遵循了有关如何执行此操作的文档。但是当我将 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;
}
4

1 回答 1

0

@MasterAM 关于private.

在某种程度上相关的说明,router.php不喜欢位于函数之外的变量。我试图添加一个全局数组,但它无法访问。相反,我创建了一个函数来返回数组。

于 2013-08-16T12:12:41.863 回答