在 Joomla! 1.5 中创建插件 如何创建自己的插件【转】

2024-01-16 02:38
文章标签 创建 插件 1.5 joomla

本文主要是介绍在 Joomla! 1.5 中创建插件 如何创建自己的插件【转】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

本文将展示开发你自己的插件所需的基本知识。 大部分插件仅包含一个单独的代码文件,但为了正确地安装插件,必须将它打包成 Joomla! 安装程序(installer)能够识别和处理的安装文件。

创建安装文件

同 Joomla! 的其他扩展附件一样,打包成 .zip 文件(或 .tar.gz 文件)的插件安装起来十分容易,不过安装包中必须包含一个格式正确的 XML 文件。这里有一个例子,是目录搜索机器人(categories searchbot)插件的 XML 安装文件:

 


正如你所看到的,它与其他 Joomla! XML 安装文件非常相似。你只需找到 <install> 标签中的属性 group=”xxx”,以及 <filename> 标签中的信息。这些信息告诉 Joomla! 这个插件属于哪一个类别(group),及应当把文件复制到哪个文件夹下。

创建插件

Joomla! 1.5 提供了一种新的、更符合对象思想的方式来编写插件。为了向前兼容,旧的方式仍然可以使用(见下一小节)。

 

 


创建插件(兼容模式)

这一节中将介绍 Joomla! 1.5 之前的版本中使用的插件编写方法,出于向前兼容的目的,这种方法目前仍然受支持。部分 Joomla! 核心插件可能仍然使用这种方式编写,不过随着时间推移,这些插件将逐步被重写。 
你希望在事件触发时执行的代码应该被写成 PHP 函数的形式。在函数定义之前,你应当调用 registerEvent() 方法,以使 Joomla! 事件系统能将你的函数和相应的事件关联起来。 
请看以下的代码框架示意:

 


通过函数 $mainframe→registerEvent(),你的插件在 Joomla! 事件系统中通过注册。这意味着在此之后,当名为 ‘<EventName>’ 的事件被触发时,函数 ‘<FunctionName>’ 将被调用。 
现在,你可以编写任何你想要的插件函数了。如果你想给函数添加参数,没问题,就像平常一样使用它们。你可以在一个文件里注册任意多个事件和插件函数。完成之后,你的插件就可用了。

在代码中调用插件

现在,你已经创建了自己的插件,你很可能想在代码中调用它。当然,Joomla! 内核中包括了一系列内置事件,你可能将你的插件绑定到这些内置事件上,在这种情形下你不必再多此一举了。
如果你希望触发一个事件,可以这样编码:

 

值得注意的是事件参数必须写在一个数组中,插件函数本身会逐个读取这些参数。返回值是一个由所有与此事件关联的插件的返回值组成的数组(因此可能是一个多维数组)。

结论

Joomla! 1.5 的插件结构鲁棒且具有可扩展性。插件不仅可以用于处理内核程序和各种扩展所触发的事件,而且使得第三方扩展的可扩展性更好,从而变得更强大。

 

这篇关于在 Joomla! 1.5 中创建插件 如何创建自己的插件【转】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/611054

相关文章

MyBatis分页插件PageHelper深度解析与实践指南

《MyBatis分页插件PageHelper深度解析与实践指南》在数据库操作中,分页查询是最常见的需求之一,传统的分页方式通常有两种内存分页和SQL分页,MyBatis作为优秀的ORM框架,本身并未提... 目录1. 为什么需要分页插件?2. PageHelper简介3. PageHelper集成与配置3.

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

Idea插件MybatisX失效的问题解决

《Idea插件MybatisX失效的问题解决》:本文主要介绍Idea插件MybatisX失效的问题解决,详细的介绍了4种问题的解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录一、重启idea或者卸载重装MyBATis插件(无需多言)二、检查.XML文件与.Java(该文件后缀Idea可能会隐藏

Java 如何创建和使用ExecutorService

《Java如何创建和使用ExecutorService》ExecutorService是Java中用来管理和执行多线程任务的一种高级工具,可以有效地管理线程的生命周期和任务的执行过程,特别是在需要处... 目录一、什么是ExecutorService?二、ExecutorService的核心功能三、如何创建

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3