【问题标题】:Get the current controller joomla获取当前控制器 joomla
【发布时间】:2014-05-19 10:19:12
【问题描述】:

我正在 joomla 3.2 中开发一个站点,我在多个视图中具有相同的研究栏,并进行了一些细微的更改,因此我在一个独立的 php 文件中创建了它,并在不同的页面中使用它。 我想要做的是根据当前活动的控制器更改一些次要信息 我试过 $_SERVER['REQUEST_URI'] 它工作正常,但我的代码似乎有点乱

function startsWith($haystack, $needle) {
echo $needle;
echo $haystack;
return $needle === "" || strpos($haystack, $needle) === 0;
}

那我就这样测试

<?php if (startsWith($_SERVER['REQUEST_URI'], "/Immo/administrator/index.php?           option=com_xxo&controller=yy")) { show something ...}

有没有更好的方法来了解当前页面的活动控制器是什么? 我在 joomla 文档中没有找到类似的东西

【问题讨论】:

  • 使用:JRequest::get("controller");
  • @RahulK - 不正确。 JRequest 已弃用
  • 哦,是的@Lodder,使用JFactory::getApplication()-&gt;input-&gt;get('controller'); 我认为是现在..
  • 感谢我的代码现在更好了:)

标签: php joomla


【解决方案1】:

JFactory::getApplication()->input->get('controller');就这么简单

【讨论】:

    【解决方案2】:

    对我来说,JFactory::getApplication()-&gt;input-&gt;get('controller') 没有任何回报。我就是这样做的:

    $controller = \JControllerLegacy::getInstance('whatever');
    

    根据神话般的 Joomla 架构,您不能省略 getInstance 参数,尽管它会被忽略,因为返回的是单例控制器实例。

    【讨论】:

      猜你喜欢
      • 2011-05-19
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 2013-08-20
      • 2012-03-23
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多