预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共22页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
在Joomla!1.5中创建插件
如何创建自己的插件
本文将展示开发你自己的插件所需的基本知识。大部分插件仅包含一个单独的代码文件,
但为了正确地安装插件,Joomla!安装程序(installer)能够识别和处理的安装必须将它打包成
文件。
创建安装文件
同Joomla!的其他扩展附件一样,.zip文件(或.tar.gz文件)的插件安装起来十分容打包成
易,不过安装包中必须包含一个格式正确的XML文件。这里有一个例子,是目录搜索机
器人(categoriessearchbot)插件的XML安装文件:
<?xmlversion="1.0"encoding="iso-8859-1"?>
<installversion="1.5"type="plugin"group="search">
<name>Categoriessearchbot</name>
<author>Joomla!Project</author>
<creationDate>November2005</creationDate>
<copyright>(C)2005OpenSourceMatters.Allrightsreserved.</copyright>
<license>GNU/GPL</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>1.1</version>
<description>AllowssearchingofCategoriesinformation</description>
<files>
<filenameplugin="categories.searchbot">categories.searchbot.php</filename>
</files>
<params>
<paramname="search_limit"type="text"size="5"default="50"label="SearchLimit"
description="Numberofsearchitemstoreturn"/>
</params>
</install>
正如你所看到的,它与其他Joomla!XML安装文件非常相似。你只需找到<install>标签
中的属性group=”xxx”,以及<filename>标签中的信息。这些信息告诉Joomla!这个插件
属于哪一个类别(group),及应当把文件复制到哪个文件夹下。
创建插件
Joomla!1.5提供了一种新的、更符合对象思想的方式来编写插件。为了向前兼容,旧的方
式仍然可以使用(见下一小节)。
<?php
//禁止直接访问
defined('_JEXEC')ordie('Restrictedaccess');
//导入所需的库文件
jimport('joomla.event.plugin');
classplg<PluginGroup><PluginName>extendsJPlugin
{
/**
*构造函数
*为兼容php4,我们不能直接使用__constructor作为插件的构架函数,因为func_get_args
(void)
*返回的是所有参数的拷贝,而不是引用,在交叉引用——这在观察者(observer)设计模式中
是必须的——
*将导致错误。
*/
functionplg<PluginGroup><PluginName>(&$subject)
{
parent::__construct($subject);
//loadpluginparameters
$this->_plugin=>JPluginHelper::getPlugin('<GroupName>','<PluginName>');
$this->_params=newJParameter($this->_plugin->params);
}
/**
*与事件同名的插件方法将被自动调用。
*/
function<EventName>()
{
global$mainframe;
//Plugincodegoeshere.
returntrue;
}
}
创建插件(兼容模式)
这一节中将介绍Joomla!1.5之前的版本中使用的插件编写方法,出于向前兼容的目的,这
种方法目前仍然受支持。部分Joomla!核心插件可能仍然使用这种方式编写,不过随着时
间推移,这些插件将逐步被重写。
你希望在事件触发时执行的代码应该被写成PHP函数的形式。