实现一个joomla编辑器的插件。

 

目标:

   实现一个joomla编辑器的插件。

理论:

   Joomla插件采用的是观察者模式。插件用观察者模式监视事件。这样当事件发生改变的时候,观察者就会知道。

这也就是说,当指定的事件发生的时候,我们可以修改系统的功能。同时这也说明,我们只能处理固定的系统事件。

插件就像监听者一样。我们可以采用一个类来实现监听,也可以通过一个函数来实现监听。

观察者模式是一个逻辑上的模式,就像运行普通的程序一样。这个模式允许监听者和具体的对象关联起来。这样,当被监听的对象发生改变的时候,它可以触发一个事件,这样监听者就可以采取相应的动作去响应这个事件。

当我们用一个类作为监听者的时候,我们必须让这个类继承自JPlugin这个虚基类。我们需要扩展这个类,因为这个类实现了一些插件基本功能。

 

joomla系统已经定义了一些事件 ,同时我们也可以自定一些事件。

triggerEvent()函数的作用是触发事件,并且通知和事件相关联的监听者。

triggerEvent()接受两个参数 一个是事件的名称。一个是由监听者传递进来的参数数组。

registerEvent()函数的作用是将事件和监听者关联起来。

registerEvent()函数接受两个参数 一个是事件的名称。一个是事件的处理函数。

 

当我们加载一个插件,这个插件是用类来实现的。Joomla会自动注册这个类和这个事件,并且将类和事件相关起来。


当我们用类来实现监听者的时候,我们需要遵循一定的命名规范。

plg+插件组的名称+插件的名称

在类中实现的方法名称就是他们要监听的事件。

处理之后的返回值存储在以事件为属性名的属性上。


代码:

XML File

<?xml version="1.0" encoding="utf-8"?> //此处必须为utf8
<extension version="2.5" type="plugin" group="editors-xtd">    //告诉joomla 这是一个插件 这个插将会响应editors-xtd中的事件
    <name>plg_editors-xtd_textonly</name>
    <author>min.zhang</author>
    <creationDate>2013-5-23</creationDate>
    <copyright>Copyright (C)by min.zhang All rights reserved.</copyright>
    <license></license>
    <authorEmail>这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。</authorEmail>
    <authorUrl>http://wwww.3hong.com.cn</authorUrl>
    <version>2.5.0</version>
    <description>PLG_TEXTONLY_XML_DESCRIPTION</description>
    <files>
        <filename plugin="textonly">textonly.php</filename>  //plugin="插件的名称"
        <filename>index.html</filename>    
        <folder>language</folder>
    </files>
</extension>

//注意我们不能够直接在XML中包含js css文件。因为这回造成一些错误。为了避免这个问题,我们

需要创建一个目录目录 然后用<files><folder>css</folder></files>加载进来。

 

插件的语言通常安装在administrator/languages/xx-XX 其实我们可以简单采用<folder></folder>文件夹下面。

当然我们需要在写插件的时候 新建language文件夹 新建 en-GB 下新建语言文件

参数的加入是通过

<params>

     <param name="参数的名称" type="参数的类型" default="参数默认值" label="参数的标题" description="参数的描述"/>

 

</params>

 

 

PHP文件

评论

  • 未找到评论