当前位置: 首页 > 知识库问答 >
问题:

若姆拉3.0中的SEF

酆华皓
2023-03-14

我正在使用joomla 3.0,并在其中创建了一个组件。现在SEF url有一个问题。

在我的组件中,我实现了MVC结构。我的视图结构类似于view/Name/tmpl/default。php

我的非SEF网址是:index.php?option=componentName

当我尝试使用路由器创建SEF url时。php文件,然后它将创建URL索引。php/组件/组件名称/视图名称/默认值?布局=默认值

但是我想要像url一样的索引。php/component/name of component/name of view/default

我的router.php文件是:

function componentNameBuildRoute( &$query )
 {
      if(isset($query['view']))
       {
             $segments[] = $query['view'];
             unset( $query['view'] );
       }
      if(isset($query['layout']))
       {
              $segments[] = $query['layout'];
       };
 }
 function ComponentNameParseRoute($segments)
 {
       $vars = array();
       $app =& JFactory::getApplication();
       $menu =& $app->getMenu();
       $item =& $menu->getActive();
       // Count segments
       $count = count( $segments );
       if( $segments[0] == 'Profile')
       {
       $vars['view'] = 'Profile';
       $vars['layout'] = 'default';
    }
 }

当我取消设置布局段时,它会给出如下url:

指数php/component/name of component/name of view/default

但它没有显示我的页面

在joomla 2.5中,它正常工作,但在joomla 3.0中,它不工作

共有1个答案

裴金鑫
2023-03-14

您需要取消设置布局查询:

unset( $query['layout'] );

取消设置布局会阻止URL具有?布局=默认值其中的零件。

还要确保使用返回$段;结束您的ComponentnameBuildRoad函数。

如果此URL未显示页面,则表示ComponentnameParseRoute功能失败。这对我来说有点难说,因为我不知道视图的名称,但您需要检查$segments[0]中的每个可能值(viewname),并相应地设置变量。我还建议使用小写的视图名。

当然,这里也使用return$vars返回vars 位于函数末尾。

我在扩展中使用了如下内容:

function ComponentnameParseRoute($segments)
{
    $vars = array();
    // Check View
    switch ($segments[0])
    {
        case 'profile':
        default:
            $vars['view'] = 'profile';
            break;
        case 'anotherview':
            $vars['view'] = 'anotherview';
            break;    
    }
    // Check Layout
    if ($segments[1])
    {
        $vars['layout'] = $segments[1];
    }
    return $vars;
}

 类似资料:
  • 我想用这条流绘制一张地图 我试过很多方法,但都失败了。下面是使用Stream/Lambda和classic循环实现这一点的经典Java代码。 正如你所看到的,我只知道如何在列表中收集信息,但我就是不能在地图上做同样的事情。这就是为什么我必须再次流式处理我的列表,以构建第二个列表,最终将所有内容放在一张地图中。我也试过“收集”。groupingBy语句,因为它也应该生成一张地图,但我失败了。

  • 在Lagom开发环境中,使用lagomKafkaStart启动Kafka后 有时它会显示KafkaServer意外关闭,之后我需要运行clean命令才能再次使其运行。 请建议这是预期的行为。

  • 问题内容: 如何在引导程序3.0中将下拉触发按钮的宽度设置为等于下拉列表的宽度?与使用bootstrap-select所实现的功能类似。我试图用col- *类将整个列表包装在div中,但这似乎不起作用: 因此,我想:按钮宽度=下拉菜单列表= col- *宽度。 问题答案: 我通过设置下拉菜单和按钮宽度= 100%找到了解决方案。 现在,按钮和下拉列表的宽度相同,由列宽度控制。

  • 如何将bootstrap 3.0中下拉触发按钮的宽度设置为等于下拉列表的宽度?与使用引导选择时实现的功能类似(http://silviomoreto.github.io/bootstrap-select/).我试图用col-*类将整个列表包装在一个div中,但这似乎不起作用: 因此,我想:按钮宽度=下拉框列表=col-*宽度。

  • 1. HMM模型参数求解概述 HMM模型参数求解根据已知的条件可以分为两种情况。 第一种情况较为简单,就是我们已知D个长度为T的观测序列和对应的隐藏状态序列,即$${(O_1, I_1), (O_2, I_2), ...(O_D, I_D)}$$是已知的,此时我们可以很容易的用最大似然来求解模型参数。 假设样本从隐藏状态$$q_i$$转移到$$q_j$$的频率计数是$$A_{ij}$$,那么状态转

  • 我用的是卡珊德拉3.0.11自带的DSE 5.0.5 我正在尝试使用Spring XD 1.3.1连接到Cassandra 我有一个处理数据的处理器模块和一个实际接收数据的接收器。 我试图创建如下流 注入流是名称,摄入转换器是转换数据的模块。我几乎可以肯定它没有问题。 但在“卡桑德拉-3”这一水槽模块中,我面临着一个问题 流创建失败,日志中出现以下错误 2017-02-17T12:45:21 05