joomla1.5后台组件开发总结

    使用joomla1.5版本已经有一段时间了,从对一无所知到可以开发简单后台管理组件,从中学的真的很多,今天为大家分享一下,虽然我知道园子里早有这方面的系列教程,但是我总觉得讲的不够,这里我的例子是一个广告管理组件,下面我们就来一步一步看看如何开发吧。

    1.我们登录到joomla数据库系统吧,在里面注册需要开发的组件信息,这里广告管理系统名字暂时定为Ads Manager吧。我们找到表jos_components,这个就是组件管理表,在里面添加3条数据。如图。

这里的82条数据其实就是后台菜单的一级连接,84,85是二级连接,后边的两个82就是关联了82的父ID。最后边的1,2是用来排序的,很重要,否则容易出现错乱的菜单。解释一下option就是组件名称表示,controller就是控制器,view就是视图,免得有的看不懂。

    2.我们到后台administrator\components目录下面建立文件夹com_ads,在里面分别建立tables文件夹用来表示表对象,views文件夹用来表示视图,controller文件夹表示控制器,models文件夹表示模型,另外建立文件ads.php,这个就是入口文件,组件从这里执行的。里面输入内容如下

 1 <?php
 2 defined( '_JEXEC' ) or die( 'Restricted access' );
 3 require_once( JPATH_COMPONENT.DS.'controller.php' );
 4 JTable::addIncludePath( JPATH_COMPONENT.DS.'tables' );
 5 $controllerName = JRequest::getCmd( 'controller', 'ads' );
 6 require_once( JPATH_COMPONENT.DS.'controllers'.DS.$controllerName.'.php' );
 7 $classname    = 'AdssController'.$controllerName;
 8 $controller    = new $classname( );
 9 $controller->execute( JRequest::getCmd( 'task' ) );
10 $controller->redirect();

解释一下,2:防止意外加载这个文件 3:导入joomla控制器 4:导入表对象 5:获取控制器名称ads 6:加载ads控制器 7-10:获得执行task任务,最后跳转。基本上组件都是这么写的。

有的组件还会写以下切换代码,我们这里由于数据库已经存入,所以这里不用了。

    3.再新建一个控制器文件controller.php,输入以下代码

<?php
defined('_JEXEC') or die( 'Restricted access' );
jimport( 'joomla.application.component.controller' );
class AdssController extends JController
{
	function display( )
	{parent::display();
	}
}

 这段代码就是继承了joomla控制器而已。

    4.由于这是一个广告管理系统组件,所以需要管理表两个,一个管理广告,一个管理广告位置。

这两个里面字段都很简单uid是登录系统的人员id,payment_status是付款审核状态,expiration_date是过期时间

第二张表就是广告位置 价钱 状态 发布时间,都很简单,没啥好说的,表建立好了,我们人为添加几条数据用于测试,当然最终是用表单提交数据。

    5.接着就是进入控制器文件夹建立ads.php这个控制器文件,里面有edit() save() remove() cancel() publish() unpublish() 这些方法对应的就是后台的那几个管理菜单图标。他们具体执行函数就在这里。接着就是模型文件夹,里面的模型主要就是数据处理函数,比如删除,更改发布状态,审核广告的操作。

    6.重点来了,就是view文件夹,里面每个文件夹对应一个模版,比如adss就是广告管理模版,进去里面建立view.html.php文件,这个就是操作数据的,他可以进行查询添加等操作,在里面写的数据会传给他的tmpl/default.php文件,default.php就是模版显示文件了,里面显示都是通过view.html.php传递数据的,当然有人也可以直接写查询,不过不符合MVC这种开发模式而已。

    7.这样基本上一个组件就完成了,不过这只是一个控制器,要想管理广告位置还需要另外一个控制器,一个控制器可以有多个模版去显示,比如在管理里面点击一条数据我们想编辑,或者显示详细信息,都需要单独的模版去完成。总的来说开发一个joomla组件需要了解执行过程,最后就是编码,这个你可以拷贝其他组件文件,改一改就差不多可以了,当然数据处理要自己写。模版显示都是大同小异的。

    8.结束吧,基本上开发一个组件就完成了,这里不需要把包什么的,直接搬到服务器,在数据库添加数据就ok,如果你想分发给更多人用,那就要写打包文件。这里暂时不说了。本文只是开发一个组件的思路和部分代码,完整的代码请下载附件。

下载https://files.cnblogs.com/logoove/com_ads.zip

(本文原创 未经许可不得转载)

posted @ 2012-05-14 15:15  Yoby  阅读(1998)  评论(4编辑  收藏  举报