在Joomla控制器中注册任务

Geo*_*son 3 joomla joomla3.1

嘿伙计们,我正在尝试在我的控制器中注册Joomla 3.x中的自定义任务,所以我正在修改构造函数(如在1.5/2.5中):

<?php
 // No direct access to this file
defined('_JEXEC') or die('Restricted access');

class jjemailControllerjjemail extends JControllerLegacy
 {
/**
 * constructor (registers additional tasks to methods)
 * @return void
 */
public function __construct($config = array())
{
    parent::__construct($config);

    // Register Extra tasks
    $this->registerTask('email, 'email');
}

public function email()
{
    $this->setRedirect('index.php?option=com_jjemail&view=thanks', $msg);
}
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我在任务注册之前在构造函数中添加var转储然后显示但是在email()函数中添加var转储什么都没有.所以我想我在某处注册任务失败了.

调用此类似的路线如下: JRoute::_('index.php?option=com_jjemail&task=jjemail.email');

任何人都有任何关于为什么我以这种愚蠢的方式失败的想法 - 我一直盯着这看,这么久我已经睁眼了

Woo*_*Dzu 6

从Joomla 1.5开始,您无需注册默认任务的名称.您只需注册别名以将它们映射到控制器的方法之一:

$this->registerTask('emailAbc, 'email');
$this->registerTask('unpublish, 'publish');
Run Code Online (Sandbox Code Playgroud)

如果你无法停止执行应用程序,它会建议你从表单/链接中调用错误的任务.

检查您的表单/链接是否包含正确的任务,如:option = com_jjemail?task = jjemail.email Joomla将为您完成所有工作,将"jjemail.email"映射到控制器的电子邮件方法