Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller joomla控制器如何工作?_Model View Controller_Joomla - Fatal编程技术网

Model view controller joomla控制器如何工作?

Model view controller joomla控制器如何工作?,model-view-controller,joomla,Model View Controller,Joomla,我很难理解如何从joomla组件调用子控制器。控制器文件夹中要放置什么 我的组件的入口点如下- <?php // No direct access to this file defined('_JEXEC') or die('Restricted access'); // require helper file JLoader::register('TieraerzteHelper', dirname(__FILE__) . DS . 'helpers' . DS . 'my_helpe

我很难理解如何从joomla组件调用子控制器。控制器文件夹中要放置什么

我的组件的入口点如下-

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

// require helper file
JLoader::register('TieraerzteHelper', dirname(__FILE__) . DS . 'helpers' . DS . 'my_helper.php');

// import joomla controller library
jimport('joomla.application.component.controller');

$controller = JController::getInstance('MyController');  

// Get the task
$jinput = JFactory::getApplication()->input;
$task = $jinput->get('task', "", 'STR' );

// Perform the Request task
$controller->execute($task);

// Redirect if set by the controller
$controller->redirect();

您执行
任务=控制器功能

例如:您希望在/controllers/foo.php中调用
MycomponentControllerFoo
,并执行函数
bar()
。您可以使用以下URL调用此URL:

index.php?option=com_mycomponent&task=foo.bar

或者你可以使用一个表格,其中有一个隐藏的任务域。

磁铁,它们是如何工作的?你有一个奇怪的新旧混合体,即JInput(新的,好的),jimport(由于JLoader不再使用)。如果您查看joomla core组件,您将看到如何将分包商放入controllers文件夹中。你可能想看看MVC图坦卡蒙orialhttp://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5/Introduction 或者Andrew Eddie在他的网站上有一个专门针对分包商的分包商。我只是在关注joomla 2.5my核心网站的教程。我的问题是如何调用子控制器,如何初始化,我应该在哪里做?!看来我离这个问题越来越近了。因此任务GET变量可以容纳一个控制器。我认为这是保留的行动任务,如编辑,删除…无论是得到或张贴,都将工作。任务应该包含由controller.function组成的任务。如果没有点,Joomla会假设您想要运行默认的控制器,而不是子控制器。所以“编辑”、“删除”。。。通常不起作用。您需要“yoursubcroller.edit”、“yoursubcroller.delete”。但是当他(在他的代码中)明确告诉它使用
MyController
时,这将如何工作呢?