如何在Joomla中处理路由器文件中的任务和变量


How To Handle Tasks and variables in router File in Joomla

我已经浏览了网页,并通过使用以下链接

上的指令为我的组件com_listing准备了一个路由器文件http://forum.joomla.org/viewtopic.php?t=611587

这是我的路由器文件代码

function listingBuildRoute(& $query)
{

     $segments = array();
       if(isset($query['view']))
       {
                $segments[] = $query['view'];
                unset( $query['view'] );
       }


       if(isset($query['task']))
       {
                $segments[] = $query['task'];
                unset( $query['task'] );
       };

       if(isset($query['id']))
       {
                $segments[] = $query['id'];
                unset( $query['id'] );
       };
        if(isset($query['type']))
       {
                $segments[] = $query['type'];
                unset( $query['type'] );
       };
       return $segments;

}
function listingParseRoute($segments)
{

   $vars = array();
       switch($segments[0])
       {
               case 'accomodation':
                       $vars['view'] = 'accomodation';
                        $id = explode( ':', $segments[2] );
                       $vars['type'] = (int) $id[0];
                       break;
               case 'entertainment':
                       $vars['view'] = 'entertainment';
                       $id = explode( ':', $segments[2] );
                       $vars['type'] = (int) $id[0];
                       break;
       }

        switch($segments[1])
       {
               case 'listing':
                       $vars['task'] = 'listing';
                       $vars['task'] =$segments[1];
                       break;
               case 'details':
                       $vars['task'] = 'details';
                       $vars['task'] =$segments[1];
                       break;
       }

       return $vars;


}    

它正在准备URL,例如,对于任务"listing"和变量"type",URL是

index.php/component/listing/entertainment/listing/11

,但它实际上并没有进入任务列表。它只是展示娱乐的观点。我认为解析路由函数没有正确调用,但我没有达到正确的解决方案。请帮助

我认为你应该像这个例子那样使用$item-­>query['view']