我正在关注 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
{
}
这是因为,如果留空,则默认行为是调用display()
JControllerLegacy 类的函数,该函数又默认调用视图com_helloworld\site\views\helloworld\view.html.php
。
现在我已经到了教程的第 7 部分。在这里,我们将开始对管理员后端进行编码。
但是现在,thecom_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 2.5。他们没有完全专注于 Joomla 3.0 的教程。