文档章节

dede插件的自定义---PHP篇

crossmix
 crossmix
发布于 2015/12/08 13:28
字数 932
阅读 380
收藏 1

   dede织梦cms插件的开发,要使用Dreamweaver编辑器,或者zendstudio,myeclipse的IDE开发PHP网站程序。

平台:PHP+dede+ampz

   

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

前台程序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>

第三步:在织梦后台打包

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


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


<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)填写使用说明,这个需要自己填写




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

1)备份、共享插件

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

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

2)安装插件

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

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




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

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


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

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

 

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

 


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



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

教程制作插件的xml文件

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

<module>

<baseinfo>

name=lxl_test

team=lxl

time=2012-02-04

email=68817033@qq.com

url=

hash=f12fc1644b97629e1b7f7f7e1b27b3ea

indexname=

indexurl=

ismember=0

autosetup=1

autodel=1

lang=gb2312

moduletype=soft

</baseinfo>

<systemfile>

<menustring>

PG06dG9wIG5hbWU9J3Rlc3TEo7/pudzA7ScgYz0nNiwnIGRpc3BsYXk9J2Jsb2NrJyByYW5rPScnPg0KPG06aXRlbSBuYW1lPSd0ZXN0udzA7TEnIGxpbms9J2x4bF90ZXN0X2IucGhwJyByYW5rPScnIHRhcmdldD0nbWFpbicgLz4NCjwvbTp0b3A+DQoNCg==

</menustring>

<readme>

yrnTw8u1w/fOxLz+DQrV4srH0ru49sD919M=

</readme>

<setupsql40>

SU5TRVJUIElOVE8gYGRlZGVfcGx1c2AgVkFMVUVTICgxMCwgJ2x4bF90ZXN0JywgJzxtOml0ZW0gbmFtZT0nJ2x4bF90ZXN0X21lbnUnJyBsaW5rPScnbHhsX3Rlc3RfYi5waHAnJyByYW5rPScncGx1c19seGxfdGVzdCcnIHRhcmdldD0nJ21haW4nJyAvPicsICcnLCAnbHhsJywgMSwgJycpOw==

</setupsql40>

<delsql>

REVMRVRFIEZST00gYCNAX19wbHVzYCB3aGVyZSBwbHVzbmFtZSBsaWtlICdseGxfdGVzdF9tZW51Jzs=

</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'>

ZGVkZSDHsMyoDQo8P3BocA0KcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLiIvLi4vaW5jbHVkZS9jb21tb24uaW5jLnBocCIpOw0KLy+809TYREVERbrL0MSzzNDyDQpyZXF1aXJlX29uY2UoREVERVJPT1QuIi90ZW1wbGV0cy9wbHVzL2x4bF90ZXN0X2EuaHRtIik7DQovL7zT1NjEo7DlDQo/Pg==

</file>

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

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWdiayIgLz4NCjx0aXRsZT7HsMyoxKOw5TwvdGl0bGU+DQo8L2hlYWQ+DQoNCjxib2R5Pg0Kx7DMqMSjsOUNCjwvYm9keT4NCjwvaHRtbD4NCg0K

</file>

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

ZGVkZSC688yoDQo8P3BocA0KcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLiAiL2NvbmZpZy5waHAiKTsNCi8vvNPU2ERFREW6y9DEs8zQ8g0KcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLiAiL3RlbXBsZXRzL2x4bF90ZXN0X2IuaHRtIik7DQovL7zT1NjEo7DlDQo/Pg0KDQo=

</file>

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

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWdiMjMxMiIgLz4NCjx0aXRsZT6688yoxKOw5SA8L3RpdGxlPg0KPC9oZWFkPg0KDQo8Ym9keT4NCrrzzKjEo7DlDQo8L2JvZHk+DQo8L2h0bWw+DQoNCg0K

</file>

</modulefiles>


</module>

在Dreamweaver编辑器中上传,OK

插件开发完毕。

© 著作权归作者所有

共有 人打赏支持
crossmix
粉丝 66
博文 305
码字总数 645711
作品 0
广州
高级程序员
DEDE检测重复自定义字段禁止发布

织梦文档重复,要怎么实现标题重复时不允许发文章,其实后台是有个重复检测功能,但是添加文章的时候都能添加成,这显然没什么用原来的检测功能,现在我们要做的是在点击添加文章保存按钮之前...

asqq8
2015/11/06
0
0
dedecms源码分析(2014/4/3)

(一) dedecms没有什么框架而已,都是有php代码文件组成的逻辑。访问不同的php文件,管理不同的系统功能。 include目录放系统的一些公用函数和类,plus目录放插件,templates目录放模板,d...

YYCRiver
2014/04/03
0
0
DEDE标签(TAG)静态化插件,DEDETAG标签静态化

一、说明:本修改适用5.6 GBK,可以生成网站所有TAG列表的静态网页文件,还有生成tag的首页静态文件。 修改前,请备份相关的原始文件。http://asqq8.net/ 二、修改步骤: 1、在DEDE网站根目录...

asqq8
2011/03/28
0
0
DEDECMS给图集图片{dede:productimagelist}加自增函数

在图集内容页调用图集的时候,如果使用某些幻灯片特效或者jquery插件,难免会用到ID编号什么的,本教程将教会你如何给图集图片自动编号,也就是说,让{dede:productimagelist}标签支持自动编...

刘宗阳博客
2016/10/11
9
0
dedecms用同一个后台管理PC和移动端

必要文件下载:链接:http://pan.baidu.com/s/1sjzbOzN 密码:mn0o。包含:安装说明.txt、UTF和GBK两个文件夹、破解文件wappc.php。安装步骤如下: 1.进入网站后台 ,至少要有一个栏目; 把你...

跟版网
2016/03/02
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
40分钟前
1
0
AVA中CAS-ABA的问题解决方案AtomicStampedReference

了解CAS(Compare-And-Swap) CAS即对比交换,它在保证数据原子性的前提下尽可能的减少了锁的使用,很多编程语言或者系统实现上都大量的使用了CAS。 JAVA中CAS的实现 JAVA中的cas主要使用的是...

码代码的小司机
43分钟前
2
0
Android JNI开发系列(十三) JNI异常处理

JNI 异常处理 JNI异常与JAVA处理异常的区别 JAVA 有异常处理机制,而JNI没有 如果JAVA中异常没有捕获,后面的代码不会执行,JNI会执行 JAVA编译时的异常,是在方法显示的声明了某一个异常,编...

蔡小鹏
56分钟前
2
0
简单介绍Java 的JAR包、EAR包、WAR包区别

WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。War专用于Web方面。大部分的JAVA WEB工程,都是打成WAR包进行发布的。 War是...

Linux就该这么学
今天
3
0
Qt那些事0.0.7

在帮助文档(Overview - QML and C++ Integration)中随缘遇到一张图,是关于C++对象与QML整合介绍的,值得标记下来,虽然大部分功能也有所涉猎,但是还是留个记号,万一哪天我失忆了还想写Q...

Ev4n
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部