Joomla!插件开发指南

Joomla!的插件功能强大,增强了系统的功能和可变性。如同模块之于增强输出,插件主要用于对数据的预处理和事件的相应。比如在多系统中实现同步登陆等。本教程将教您自己动手DIY一个Joomla!的插件。

 

简介

Joomla!的插件功能强大,增强了系统的功能和可变性。如同模块之于增强输出,插件主要用于对数据的预处理和事件的相应。比如在多系统中实现同步登陆等。本教程将教您自己动手DIY一个Joomla!的插件。

 

插件类型

    Joomla!的插件类型繁多,核心的插件类型主要可以分为以下几类(在Joomla!的安装目录的plugin可看到相应文件夹)。

  • authentication
  • content
  • editors
  • editors-xtd
  • search
  • system
  • user
  • xmlrpc

 

Authentication:用于不同资源的使用认证,默认的如果你要登陆Joomla!站点,你必须通过Joomla!数据库里的用户认证。只要任何资源拥有公开的API,你就可以开发认证插件用于认证。

 

Content:用于文章内容的输出显示,在本文的实例中,将开发一个这种类型的插件,用于输出当前时间。

 

Editors:用于新增一个编辑器,通常是可见即可得的(WYSIYWG)

 

Editors-xtd:编辑器扩展(editors-extend),用于新增编辑器按钮,如图片,视屏等按钮。

 

Search:当使用搜索组件搜索时,将触发相应搜索事件。

 

System:主要用于控制Joomla!在执行PHP代码时的行为。

 

User:用于相应用户事件的插件,如用户登陆、保存用于等。

 

Xmlrpc:提供Xml-rpc网络服务时的插件。

 

 

实例

 

下面以实际开发一个插件作为实例讲解。

 

一.注册

 

使用SQL语句,往数据库里添加一个插件,名为TPlugin.

 

     

 

 

查看Joomla!的插件管理器,可以发现已经添加了该插件。根据信息可知此插件的源文件名称为TPlugin,且已发布。

 

二.创建插件源代码(推荐模式)

  此模式是 支持面向对象(OO)的开发模式,Joomla!推荐使用该模式

在Joomla!的安装目录下的plugin/content下新增一个名为TPlugin.php的文件。

之后打开该目录下的example.php,复制其中的内容到TPlugin.php,并把其中的类名和构造函数从原来的 plgContentExample改为plgContentTPlugin。

 

修改其中的onAfterDisplayTitle方法为 

 


 

要注意的是类名、构造函数名需一直,其中类名的插件名部分必须和SQL语句中的elmenet和php文件的名称以及之后xml文件中的filename中的plugin元素一致。

此函数的意义为文章的标题显示完以后将触发该事件。Joomla!内置了很多基本事件,你可以通过查看各个插件类型下的example.php了解。比如这里内容插件content目录下的事件就分为

  • onPrepareContent
  • onAfterDisplayTitle
  • onBeforeDisplayContent
  • onBeforeContentSave (new in 1.5.4)
  • onAfterContentSave (new in 1.5.4)

 

其它插件分类的事件列表如下:

Authentication

  • onAuthenticate

Editors

  • onInit
  • onGetContent
  • onSetContent
  • onSave
  • onDisplay
  • onGetInsertMethod

Editors XTD (Extended)

  • onDisplay

Seach

  • onSearch
  • onSearchAreas

System

  • onAfterInitialise
  • onAfterRoute
  • onAfterDispatch
  • onAfterRender

User

  • onLoginUser
  • onLoginFailure
  • onLogoutUser
  • onLogoutFailure
  • onBeforeStoreUser
  • onAfterStoreUser
  • onBeforeDeleteUser
  • onAfterDeleteUser

XML-RPC

  • onGetWebServices

 

三.创建插件源代码(兼容模式)

 

该方法创建的插件在当前仍在使用中,但将被逐步以面向对象的方法重写。

 


   首先取得一个mainframe对象,当注册一个'onAfterDisplayTitle'事件,当该事件被触发时,将调用pluginTPlugin()函数。

 

四.创建xml安装文件

          新建一个TPlugin.xml的文件,并从example.xml中复制全部内容到TPlugin.xml

 

注意install标签中的grounp元素代表插件的类型。Files标签的自标签filename中的属性plugin为标签的名称。

转载于:https://www.cnblogs.com/vicenteforever/articles/1632987.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值