好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

开发DEDE插件—基础篇

前言

我是菜鸟,偶然间我遇到了织梦( DEDECMS V5.7 SP1 )想做一些自己需要的功能,听说可以开发插件,看了一些网上的教程,制作了一个没有任何实际功能的 lxl_test 插件。展示给大家 DEDE 插件开发的基本流程。我只是刚刚开始学习 DEDE ,教程中还有很多不足之处希望网友们批评指正。我的 QQ68817033 希望大家学习交流。建议先把附录二中的内容复制另存为 ***.xml 文件,上传安装后感受一效果。

制作时间: 2012-2-4

PHP 环境: DedeAMPZ 平台

织梦程序: DEDECMS V5.7 SP1

 

第一步:制作前台程序和模版

前台程序 lxl_test_a.php   存放在   根目录 /plus

dede   前台

<? php

require_ once ( dirname (__FILE__)."/include/ common.inc.php ");

// 加载 DEDE 核心程序

require_ once ( DEDEROOT."/templets/plus/lxl_test_a.htm");

// 加载模板

?>

前台模板 lxl_test_a.htm 存放在   根目录 / templets /plus

< head >

< meta   http-equiv="Content-Type" content="text/html;   charset = gbk " />

<title> 前台模板 </title>

</head>

 

< body >

前台模板

</body>

</html>

注意:由于插件是 GBK 编码所以要设置 content="text/html;   charset = gbk "

第二步:制作后台程序和模版

后台程序 lxl_test_b.php   存放在   根目录 / dede

dede   后台

<? php

require_ once ( dirname (__FILE__). "/ config.php ");

// 加载 DEDE 核心程序

require_ once ( dirname (__FILE__). "/templets/lxl_test_b.htm");

// 加载模板

?>

注意:后台调用模板与前台不同,至于为什么不同, DEDE 有多少种调用模板的方式不要问我

后台模板 lxl_test_b.htm 存放在   根目录 / dede/templets/plus

< html >

< head >

< meta   http-equiv="Content-Type" content="text/html;   charset =gb2312" />

<title> 后台模板   </title>

</head>

 

< body >

后台模板

</body>

</html>

注意:   gbk 与 gb2312 有相同的效果,至于原因我也不知道

第三步:在织梦后台打包

( 1 )在后台点击模块 >> 模块生成向导

填写模块名称,勾选封装类型,填写联系 Email ,开发团队,开发时间,官方网址。没有使用会员系统所以选择不涉及。

注意:模块识别码是由模块名称和 Email 自动生成,就是打包 xml 文件的文件名,不同插件识别码不能相同

( 2 )填写后台你管理菜单

< m:top   name='test 模块管理 ' c='6,' display='block' rank=''>

< m:item   name='test 管理 1' link=' lxl_test_b.php ' rank='' target='main' />

</ m :top >

这里设置菜单在安装后效果如下图

还可以在安装程序中添加后台管理菜单在文章的最后会给出。

( 3 )填写使用说明,这个需要自己填写

( 4 )设置安装程序由于例子中没有数据库操作,所以可以选择自动生成,内容空白

也可以在这里为后台添加菜单项,在最后会给出一个例子

( 5 )设置删除程序由于例子中没有数据库操作,所以可以选择自动生成,内容空白

( 6 )设置编译所有文件,并在文件列表中添加响应的文件。

plus / lxl_test_a.php

templets/plus/lxl_test_a.htm

dede/lxl_test_b.php

dede/templets/lxl_test_b.htm

第四步:备份、交流共享、安装插件

辛辛苦苦制作的插件,怎样备份,共享,让其他网友安装呢。

( 1 )备份、共享插件

经过织梦的打包,所有关于插件的信息和文件都打包成一个 xml 文件,

存放在   根目录 \data\module 目录下,文件名是模块识别码(由模块名称和 Email 生成)。这样你就可以把你制作的插件发到网上与大家交流共享。

( 2 )安装插件

下载 DEDECMS 的插件文件(扩展名是 xml )

在后台点击   模型 >> 上传新模块

选择已经下载的 xml 文件   点击   确定上传就可以了。

出现这个页面说明已经上传好了,可以点击   安装   出现安装页面。

根据不同的需要选择   对对于已存在文件处理方法   后点击完成安装

安装完成后就可以再后台管理插件,在前台调用插件。

( 3 )管理插件

在后台   点击模块 >> 模块管理

出现模块管理页面可以管理你自己的插件。

其中可以卸载、安装、修改、删除、还可以查看使用说明和插件的详细情况。都是点点鼠标就可以了,只要认真阅读 DEDE 给个提示就不会有问题。

 

第五步:最后也是最重要的 < 页面调用 >

可以再前台任意显示模板中添加如下代码调用你制作的模板。

< li   ><a   href ="{ dede:field   name=' phpurl '/}/ lxl_test_a.php " > lxl 调用测试 </a></ li >

 

总结:以上教程侧重于制作一个插件每一个过程,没有任何功能。全部代码由织梦自带模板的代码简化得到。

 

附录一:把后台菜单添加在 dede_plus 表中,效果如下图

( 1 )在安装程序添加如下代码

INSERT INTO ` dede_plus ` VALUES (10, 'lxl_test', '< m :item   name='' lxl_test_menu '' link='' lxl_test_b.php '' rank='' plus_lxl_test '' target=''main'' />', '', ' lxl ', 1, '');

( 2 )在卸载程序添加如下代码

DELETE FROM `detest_plus` where   plusname   like ' lxl_test_menu ';

( 3 )在插件管理器中管理插件

在后台点击   模型 >> 插件管理器

出现插件管理页面

可以在这里对插件进行修改、启用、禁用、删除。个人感觉 DEDE 是为了区分插件和模块才设计了这两种后台菜单模式。

附录二:教程制作插件的 xml 文件

只要复制另存为 ****.xml 文件就可以安装使用了。

< module >

< baseinfo >

name= lxl_test

team= lxl

time= 2012-02-04

email=68817033@qq.com

url =

hash= f12fc1644b97629e1b7f7f7e 1b27b3ea

indexname =

indexurl =

ismember = 0

autosetup = 1

autodel = 1

lang = gb2312

moduletype = soft

</ baseinfo >

< systemfile >

< menustring >

PG06dG9wIG5hbWU9J3Rlc3TE o7/pudzA7ScgYz0nNiwnIGRpc3B sYXk9J2Jsb2NrJyByYW5rPSc nPg0KPG06aXRlbSBuYW1lPSd 0ZXN0udzA7TEnIGxpbms9J2x 4bF90ZXN0X2IucGhwJyByYW5 rPScnIHRhcmdldD0nbWFpbic gLz4NCjwvbTp0b3A+DQoNCg==

</ menustring >

< readme >

yrnTw8u1w/fOxLz+ DQrV4srH0ru49sD919M=

</readme>

<setupsql40>

SU5TRVJUIElOVE8gYGRlZGVf cGx1c2AgVkFMVUVTICgxMCwg J2x4bF90ZXN0JywgJzxtOml0 ZW0gbmFtZT0nJ2x4bF90ZXN0 X21lbnUnJyBsaW5rPScnbHhs X3Rlc3RfYi5waHAnJyByYW5r PScncGx1c19seGxfdGVzdCcn IHRhcmdldD0nJ21haW4nJyAv PicsICcnLCAnbHhsJywgMSwg JycpOw==

</setupsql40>

< delsql >

REVMRVRFIEZST00gYCNAX19w bHVzYCB3aGVyZSBwbHVzbmFt ZSBsaWtlICdseGxfdGVzdF9t ZW51Jzs=

</ delsql >

< setup >

 

</setup>

< uninstall >

 

</uninstall>

< oldfilelist >

plus / lxl_test_a.php

templets/plus/lxl_test_a.htm

dede/lxl_test_b.php

dede/templets/lxl_test_b.htm

</ oldfilelist >

</ systemfile >

 

< modulefiles >

<file type='file' name=' .. /plus / lxl_test_a.php '>

ZGVkZSDHsMyoDQo8P3BocA0K cmVxdWlyZV9vbmNlKGRpcm5h bWUoX19GSUxFX18pLiIvLi4v aW5jbHVkZS9jb21tb24uaW5j LnBocCIpOw0KLy+809TYREVERbrL0MSzzNDyDQp yZXF1aXJlX29uY2UoREVERVJ PT1QuIi90ZW1wbGV0cy9wbHV zL2x4bF90ZXN0X2EuaHRtIik 7DQovL7zT1NjEo7DlDQo/Pg==

</file>

<file type='file' name=' .. /templets/plus/lxl_test_a.htm'>

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0 dHAtZXF1aXY9IkNvbnRlbnQt VHlwZSIgY29udGVudD0idGV4 dC9odG1sOyBjaGFyc2V0PWdi ayIgLz4NCjx0aXRsZT7HsMyo xKOw5TwvdGl0bGU+DQo8L2hlYWQ+DQoNCjxib2R5Pg0Kx7DMqMSj sOUNCjwvYm9keT4NCjwvaHRt bD4NCg0K

</file>

<file type='file' name=' .. / dede/lxl_test_b.php '>

ZGVkZSC688yoDQo8P3BocA0K cmVxdWlyZV9vbmNlKGRpcm5h bWUoX19GSUxFX18pLiAiL2Nv bmZpZy5waHAiKTsNCi8vvNPU 2ERFREW6y9DEs8zQ8g0KcmVx dWlyZV9vbmNlKGRpcm5hbWUo X19GSUxFX18pLiAiL3RlbXBs ZXRzL2x4bF90ZXN0X2IuaHRt Iik7DQovL7zT1NjEo7DlDQo/Pg0KDQo=

</file>

<file type='file' name=' .. /dede/templets/lxl_test_b.htm'>

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0 dHAtZXF1aXY9IkNvbnRlbnQt VHlwZSIgY29udGVudD0idGV4 dC9odG1sOyBjaGFyc2V0PWdi MjMxMiIgLz4NCjx0aXRsZT66 88yoxKOw5SA8L3RpdGxlPg0K PC9oZWFkPg0KDQo8Ym9keT4N CrrzzKjEo7DlDQo8L2JvZHk+DQo8L2h0bWw+DQoNCg0K

</file>

</ modulefiles >

</module>

查看更多关于开发DEDE插件—基础篇的详细内容...

  阅读:52次