joomla论坛组件3中,单纯开发一个组件,不用开发插件,能完成目标吗?

建站相关资料
添加一个菜单项类型
在Joomla框架中,组件是通过点击菜单项运行的。&现在我们创建菜单项的时候还不会有&HelloWorld&这个选项,加上这个功能很简单:加一个&site/views/helloworld/tmpl/default.xml&文件内容如下:
site/views/helloworld/tmpl/default.xml
&?xml&version="1.0"&encoding="utf-8"?&
&metadata&
&layout&title="COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE"&
&message&COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC&/message&
&/metadata&
大家看到上述代码中诸如"COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE"的内容比较古怪,当然如果您看过joomla的代码,就会发现,到处都是这样的字符串,也会明白这是为了适用多语言环境的策略。当然现在还不能翻译过来,后面的教程我们将搞定这个事情。
修改&helloworld.xml&发布0.0.3这个版本:
helloworld.xml
&extension&type="component"&version="2.5.0"&method="upgrade"&
&name&Hello&World!&/name&
&!--&The&following&elements&are&optional&and&free&of&formatting&constraints&--&
&creationDate&November&2009&/creationDate&
&author&John&Doe&/author&
&authorEmail&该 Email 地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript 。
Joomla 2.5 MVC 组件开发教程【3】
Copyright (C)
星仔码头保留所有权利
该 Email 地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript 。   这是一个模块和插件开发实例详解文档,模块实现的是图片幻灯片方式切换,图片是自带的banner组件管理器来管理,对于图片可以只显示某一个分类下面的,切换方式可以选择多种,插件就是实现如何过滤文章中出现的email,凡是写了email的就自动过滤.从分析来看,是没有什么难度的,这里主要是开发的步骤,我在这里从开头到一个开发,打包成可以供所有joomla安装的zip文件为止,算是一个功能完成. 
1.建立模块文件结构样式如下图的文件结构
Mod_banner模块文件夹所有模块必须以为前缀就是模块名称
Images文件夹用来放样式中用的图片还有模块所需的库插件减少文件夹数量就不单独建文件夹了
Tmpl&模块模版文件夹
Default.php&模版显示样式文件必须的文件
Index.html&防止文件直接被调用用于安全考虑
Helper.php&功能实现文件里面主要写功能实现
Index.html&防止文件被直接调用所有模块文件夹子文件夹都应该加上这个文件
Mod_banner.php&模块入口文件必须的文件
Mod_banner.xml&参数配置和打包安装文件
2.文件建立好以后先来写这个文件吧内容如下
//后边是注释
&?xml&version="1.0"&encoding="utf-8"?&
&install&type="module"&version="1.5.0"&
&name&Banner&Change&/name&//模块显示名称
&author&Yoby&/author&//作者
&creationDate&2012&07&/creationDate&//创建日期
&copyright&Copyright&(C)&2012&-&2020&Open&Source&Matters.&All&rights&reserved.&/copyright&//版权
&license&http://www.gnu.org/licenses/gpl-2.0.html&GNU/GPL&/license&//软件协议
&authorEmail&&/authorEmail&//作者邮箱
&authorUrl&www.joomla.org&/authorUrl&//插件连接地址
&version&1.5.0&/version&//插件版本
&description&Banner&Change&Module&!&/description&//模块功能描述
&files&//用来描述模块的所有用到的文件在安装的时候根据这个来复制到模块对应路径
&filename&module="mod_banner"&mod_banner.php&/filename&&//文件
&filename&module="mod_banner"&helper.php&/filename&
&filename&module="mod_banner"&index.html&/filename&
&folder&tmpl&/folder&&//文件夹子文件和文件夹不用再次描述
&folder&images&/folder&
&params&addpath="/administrator/components/com_banners/elements"&//模块配置参数是用来加载组件里面定义的表单元素这里是广告的分类
&param&name="change"&type="list"&default="0"&label="Change&Mode"&//list列表类型表单元素这里是广告切换样式有种默认数字样式按钮样式
&option&value="0"&Default&/option&
&option&value="1"&Number&/option&
&option&value="2"&Button&/option&
&param&name="changetime"&type="text"&default="3000"&label="Change&Time&(ms)"/&//文本框类型这里是&切换时间微秒为秒
&param&name="adnumber"&type="text"&default="4"&label="AD&Number"/&//广告显示数量
&param&name="catid"&type="category"&section="com_banner"&default=""&label="Category"&/&//广告分类这里用到了组件的广告分类
&param&name="width"&type="text"&default="468"&label="AD&Width"/&//显示广告宽度
&param&name="height"&type="text"&default="60"&label="AD&Height"/&//显示广告高度
&param&name="moduleclass_sfx"&type="text"&default=""&label="Module&Class&Suffix"/&//模块显示样式附加类
&params&group="advanced"&&//高级配置一般模块都加上这个配置参数保持和官方一样标准
&param&name="cache"&type="list"&default="0"&label="Caching"&description="Select&whether&to&cache&the&content&of&this&module"&&//是否使用缓存
&option&value="1"&Use&global&/option&
&option&value="0"&No&caching&/option&
&param&name="cache_time"&type="text"&default="900"&label="Cache&Time"&description="The&time&before&the&module&is&recached"&/&//缓存时间
&/install&
3.mod_banner.php文件和文件编写
Mod_banner.php是入口文件模块就是从这里执行的
第一行代码&
这是为了防止文件被其他程序随便调用出于安全考虑所有组件插件模块等文件都应该开头写上这一行代码
第二行代码&
加载功能文件里面定义了这个模块所实现的功能主要是数据处理最后返回数据处理结果
这里是返回里面函数&结果这里是广告数据
不一样的模块这里可以写不同的返回结果
通过助手类提供的函数加载模版必须这样写参数就是模块名称
每个组件的入口文件至少包括第一行最后一行
第二行只有用到助手文件才需要写
第三行可以根据实际功能来写还可以添加更多代码来实现
Helper.php文件是一个类
class&modBannerHelper{
function&custom(){
里面的方法就是用来做数据处理或功能的返回值供模版使用
4.default.php,模块模版文件主要就是前台显示布局有些模块把所有的功能处理也写在这里这个文件是模块必须的一般混写和代码
5.总结模块开发
A.模块配置在文件中定义在或中调用通过读取配置参数在程序中应用
B.数据处理中的数据库连接步骤
$db&=&JFactory::getDBO();&&//建立数据库连接
$query&=&"select&*&from&#__table";&&//SQL查询语句
$db-&setQuery($query);&//执行查询
$rs&=&$db-&LoadObjectList();//得到结果集对象
C.对建立好的模块压缩成文件就得到了标准模块
后台参数说明
change&module显示样式切换有三种
change&time自动切换时间默认
ad&number设置广告数量对于数字有效
item类别不选择就是所有广告类
Ad&width,广告宽度尽量和图片宽度一样
Ad&height,广告高度
Css,这里可以用一个类来些样式
高级参数是设置缓存和时间的
前台样式图三种
文章内容邮箱地址过滤插件开发过程
1.定义插件文件分别是插件文件和安装配置文件
2.先来写配置文件基本上配置文件都有相似的地方内容如下
&?xml&version="1.0"&encoding="utf-8"?&
&install&version="1.5"&&method="upgrade"&type="plugin"&group="content"&//定义插件为
&name&Filter&/name&//插件名字
&creationDate&&/creationDate&//插件日期
&author&Yoby&/author&//作者
&authorEmail&&/authorEmail&//邮箱
&authorUrl&&/authorUrl&//网址
&copyright&Copyright&(C)&2012&&Open&Source&Matters.&All&rights&reserved.&/copyright& //版权
&license&GUN&/license&//软件协议
&version&1.0&/version&//软件版本
&description&This&is&filter&email&plugin&!&/description&//描述
&filename&plugin="filter"&filter.php&/filename&//安装文件还有其他的都需要列出来
&params&//配置参数列表本插件没有用到但是预留一个
&param&name="exid"&type="text"&default=""&label="ID"&description="description"&/&//#文本框
&/install&
基本上一个配置安装文件就完成了接着是定义插件内容模式如下
defined('_JEXEC')&or&//防止其他程序加载
$mainframe-&registerEvent('onPrepareContent',&'plgContentFilter');//注册一个事件这里的是输出文章之前触发事件
function&plgContentFilter(&$row,&&$params,&$page=0)&//触发的函数
if&(is_object($row))&{//判断是否是对象记录集
return&plgFilter($row-&text,&$params);
return&plgFilter($row,&$params);
function&plgFilter(&$text,&&$params)
$text&=&preg_replace("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",'',$text);&//正则替换邮箱为空
3.将这两个文件压缩成格式不需要文件夹直接压缩然后就可以安装了截图如下
后台编辑带有邮箱文章
前台显示自动替换掉了邮箱
最后附上文件树形结构图;内容中代码没有使用编辑器,需要代码插件的下载附件吧.包括开发文档哦.
最详细的开发文档,例子说明一切,还有注释,只适合新手,牛人绕行!
by Yoby编辑
阅读(...) 评论()君,已阅读到文档的结尾了呢~~
JEECG 引领J2EE新开发模式..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
JEECG 引领J2EE新开发模式插件式开发 - 公开课(可编辑)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 joomla 怎么删除组件 的文章

 

随机推荐