在本节中我们将在后台显示我们的第一个后台页面。并分析后台的执行过程。
在joomla中,后台的执行流程和前台基本一样,也是MVC模式开发的。有了前台开发的经验,后台就不是大问题了。
直接看代码:
后台的入口点文件 guestbook.php(.注意以下所说的文件都是administrator/components/com_guestbook/目录下的)
 
defined('_JEXEC') or die('you can not access this file!');
// import joomla controller library
jimport('joomla.application.component.controller');
// get an instance of the controller prefixed by guestbook
$controller = JController::getInstance('Guestbook');
$jinput = JFactory::getApplication()->input;
$task = $jinput->get('task',"",'STR');
// perform the request task
$controller->execute($task);
// redirect if set by controller
$controller->redirect();
这里的执行流程和前台一样,只是代码我们采用新的书写方式(这种方式在2.5的开发中比较推荐,当然,我们以前的方式也是可以用的)
首 先调用JController类的getInstance方法得到主控制器。JController::getInstance()方法接受两个参数,一 个是控制器的前缀,另一个是一个可选的配置数组。这个方法将会在JPATH_COMPONET下寻找控制文件。(有待补充)
然后通过调用代码:
$jinput = JFactory::getApplication()->input;得到JInput对象。调用JInput对象的get方法得到需要执行的任务。
入口点文件产生有了之后,就是新建一个控制器文件。
新建文件controller.php文件
controller.php文件的内容为:
 
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.controller');
class GuestBookController extends JController
{
	function display($cachable = false,$urlparams = false)
	{
		// set default view if not set
		$input = JFactory::getApplication()->input;
		$input ->set('view',$input->getCmd('view','messagelist'));
		
		//call parent behavior
		parent::display($cachable);
	}
}
代码没什么好讲的。我们控制器类的display方法中使用了$input->set()来指定需要展示的视图为messaglist.(也就是显示一个消息列表的视图。)
建立视图的方法和前台一样。
新建views/messageslist/view.html.php文件
view.html.php内容如下:
 
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.view');
class GuestBookViewMessageList extends JView
{
     // messagelist view display method
     function display($tpl = null)	 
	 {
		//display the template
		parent::display($tpl);
	 }
}
视图文件有了之后就是输出默认的布局文件了。
在messagelist视图下新建文件夹tmpl.在tmpl下新建default.php文件。代码如下:
Welcome to www.Zmax99.com
到此,我们就完成了入口点文件,控制器文件,视图类文件和视图模版文件。
看一下执行效果吧:
 
说明我们的组件在管理后台成功执行了。美中不足的是有一个小小的警告。
这不是我们代码的问题,这是joomla自身的问题。解决方案请访问论坛:
http://www.zmax99.com/forum/component-develop/32-notice-undefined-property-jadministrator-jcomp

评论 (0)