JToolBarHelper 方法如何工作?

How does JToolBarHelper method work?

几周来我一直在努力了解 JtoolBarHelper 方法的工作原理。

您可以在视图 class 中看到调用的方法,如下所示:

JToolBarHelper::addNew('controllername.methodname');

这里JToolBarHelper的addNew方法是这样使用的:

public static function addNew($task = 'add', $alt = 'JTOOLBAR_NEW', $check = false)
{
    $bar = JToolBar::getInstance('toolbar');
    // Add a new button.
    $bar->appendButton('Standard', 'new', $alt, $task, $check);
}

所以,现在检查 JToolBar 的 getInstance 方法:

它returns new JToolBar($name);。我还确保检查构造函数。但是在任何地方我都找不到 addNew() 方法参数是如何分离的。 Joomla 如何知道点之前的名称是控制器名称,之后的名称是它的方法名称。

我也用 javascript 代码检查了 Joomla.submmitbutton('controllername.methodname'); 但找不到。

所以,我的问题是传递给 JToolBarHelper 方法的参数如何知道它是点前的控制器名称?

此控制器拆分由 Joomla 核心控制器文件处理。文件路径因版本而异。

JControllerLegacy 将在 libraries/joomla/controller/legacy.phplibraries/cms/controller/legacy.phplibraries/legacy/controller/legacy.php 中定义。在最新的 Joomla 版本中。

使用旧版本/libraries/joomla/application/component/controller.php

希望,有道理!