模型: 管理数据
控制器:执行任务,设置或者获取模型的状态,请求视图显示
视图:显示被控件选中的内容
(1)Setting the controller
JController是一个管理控制器的类, 在site/helloworld.php添加如下代码。
JControllerLegacy::getInstance('HelloWorld'); (注意3.x版本使用的是JControllerLegacy,如果看官网上使用的是JController)// Perform the Request task$input= JFactory::getApplication()->input;$controller->execute($input->getCmd('task')); // Redirect if set by the controller$controller->redirect();创建一个名为HelloWorldController的控制器类,Joomla将会在controller.php中查找这个类的声明。所以在site/controller.php文件中写入下面代码:当没有指定task的值时,默认task将会被执行,默认task任务是display,所以在HelloWorldController中创建display方法。
(2)Setting the view
当JController想去展示一个view的时候,他将会从目录component/com_helloworld/views/helloworld/目录下查找site/views/helloworld/view.html.phpmsg='Hello World'; // Display the view parent::display($tpl);}}JView类的display方法会被JController类的task方法调用,在这个例子中display方法将会显示tmpl/default.php文件。site/views/helloworld/tmpl/default.php这个模板文件将会被JView类包含,所以$this指的是HelloWorldViewHelloWorld类。msg;?>
helloworld.xmlHello World! November 2009 John Doe john.doe@example.org http://www.example.org Copyright Info License Info 0.0.2 Description of the Hello World component ... sql/updates/mysql index.html helloworld.php controller.php views index.html helloworld.php sql