我正在关注Joomla的“开发MVC组件”。
在对前端进行编码时,com_helloworld\site\controller.php
中的默认控制器保留为空,如下所示
\\----com_helloworld\site\controller.php----
<?php
defined('_JEXEC') or die('Restricted Access');
jimport('joomla.application.component.controller');
/**
* HelloWorld Component Controller
*/
class HelloWorldController extends JControllerLegacy
{
}
这是因为,如果保留为空,则默认行为是调用JControllerLegacy类的display()
函数,该函数默认情况下会调用视图com_helloworld\site\views\helloworld\view.html.php
。
现在我已经达到了本教程的第7部分。在这里,我们将开始编写管理员后端。
但是现在,com_helloworld\admin\controller.php
不仅仅是一个空类。它作为自己的display()
函数。
\\---com_helloworld\admin\controller.php----
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla controller library
jimport('joomla.application.component.controller');
/**
* General Controller of HelloWorld component
*/
class HelloWorldController extends JControllerLegacy
{
/**
* display task
*
* @return void
*/
function display($cachable = false, $urlparams = false)
{
// set default view if not set
$input = JFactory::getApplication()->input;
$input->set('view', $input->getCmd('view', 'HelloWorlds'));
// call parent behavior
parent::display($cachable);
}
}
如果我们也将此课程留空,会发生什么?它会从helloworld
文件夹中调用默认的admin\views\
视图吗?
另外,我刚看到存在一个名为JControllerAdmin
的joomla类。我应该将它用于我的后端吗? Joomla文档中提供的教程适用于Joomla 2.5。他们没有完全专注于Joomla 3.0的教程。