前言
我是菜鸟,偶然间我遇到了织梦( 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>