JToolBarHelper方法是如何工作的


How does JToolBarHelper method work?

几周来,我一直在努力理解JtoolBarHelper方法是如何工作的。

您可以看到视图类中调用的方法如下:

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方法:

它返回CCD_ 1。我还保证了在构造函数中进行检查。但我找不到addNew()方法参数是如何分离的,即Joomla如何知道点前的名称是控制器名称,点后的名称是其方法名称。

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

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

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

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

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

希望,这是有道理的!