如何学习织梦二次开发,怎样进行dedecms二次开发
在织梦基地已经做过一个教程“织梦二次开发流程分析教程”,在这个教程里面对二次开发流程作了简单分析,本教程将介绍如何学习织梦二次开发和对织梦系统进行二次开发。
掌握二次开发基础知识
1)掌握基础后台标签:
要进行二次开发,首先要学会使用基本的织梦二次开发基础知识,这些基础知识不仅仅包括织梦标签的使用,织梦标签的使用是非常初级的,这些标签并不是指前台标签,而是二次开发用到的后台标签,例如 {dede:datalist}…{/dede:datalist}等,织梦后台的标签相当于数学中的阿拉伯数字,非常基础的,可能会有人说这太简单了吧,其实,使用这些标签是比较简单,但是,并不是每个标签都那么简单,例如,标签
{dede:if 条件} a-block {else} b-block {/dede:if}
这个标签在后台中虽然使用频率不高,但是,这个标签也是比较重要的,是在做织梦二次开发时常使用到,像这些标签我们在做织梦二次开发时必须会。
2)掌握织梦二次开发常用的类的使用:
在织梦二次开发时,一般都要实例化一些类,特别是像织梦模板引擎类、数据库类的基本使用,做织梦二次开发不要求大家必须弄明白这些类,但是,必须会使用,这是二次开发最基本的要求。特别是模板引擎类前后台的使用非常重要,当然,数据库也非常重要。
3)掌握常用的函数的使用:例如,最常用的织梦的对话框函数、中文截取函数、获取单篇文档信息等等,这些基本函数如果掌握具体代码最好,二次开发我们一般不改织梦官方代码,而是做一些基本的调用,所以,只要会使用这些函数就可以了。
4)掌握php语言基本的函数:例如,定义常量函数、把字符串转成数组、把数组转成字符串、正则匹配函数等等,这些重要的常用的函数要会使用,因为,有可能会用到。
5)掌握织梦系统的设计原理与规范:其实,做织梦二开发,只要把织梦系统的基本的设计原理和设计思想弄明白了,就相当于掌握织梦二次开发70%知识。这些设计原理和规范指的是,例如,圈子前后台设计时把后台操作放在了/dede/目录,而在前台则放到了/group/目录。这只是设计路径,设计方法里面的一个小小的方面,还有很多多。
实践二次开发
要进行二次开发,首先得掌握二次开发的基础知识,当把这些基本的东西掌握了,接下来就是进行二次开发,到底如何进行二次开发,对于初学者来说,最好的方法就是做一个项目,因为,掌握的基础再多不去实践一个项目是无法去理解二次开发的,只有把一个项目真正的完整的开发出来,才能更好的理解织梦二次开发的基础知识,也才能更好的去进行织梦二次开发。
1)如何选择一个好的项目来实践织梦二次开发 ?
选择一个好项目是非常重要的,因为,如果选择的不好可能使用到不多少织梦二次开发基础知识,如果使用的知识基本上是失败的项目,因为,完全就跟全新开发一样,这样的项目意义不大,特别是对于初学织梦二次开发的人员来说;但是,如果一个项目过于复杂,弄个半年才开发出来,这样的效果更不好,因为,毕竟学的是二次开发,而不是全新系统开发,这二者都不是最理想的项目。
2)什么样的项目才是学习织梦二次开发最好的项目?
a) 用到的知识是以织梦系统为主,而不是以php为主,如果以php为主的话,那么,这个项目基本上就是全新开发一个系统了。毕竟是二次开发,是在织梦使用php封装了php函数基础上进行的二次开发,所以,必须以使用织梦系统知识为主。
b) 以php基础知识为辅助,如果一个开发全是调用织梦系统函数,没有使用过php基础知识,那么,这个项目也不是一个好项目,虽然是二次开发,但是,我们以后开发不可能只调用织梦函数,很多时候是要用php知识来写原生态的代码。
实践项目
以前想找个项目来讲解织梦二次开发,找了几个,自己也想了几个但是最后都感觉不好,要么太复杂,要么,太简单学不到知识,要么,自己设计一个项目感觉不够好。
找来找去最后感觉,为什么不把织梦“圈子”当作一个项目呢?
把圈子当作项目的好处
织梦系统默认是没有圈子功能的,当我们安装完织梦系统后,如果让你开发一个圈子功能,你如何开发?我们开发圈子就是对织梦进行二次开发!我们为什么不把圈子功能当成一个像数学中的例题一样来学习呢,圈子是一个非常好的学习织梦二开发的功能。
1)把圈子当项目的原因:圈子功能是人家织梦团队经过10年左右时间的垂练,已经相当完善,与其使用其它项目,为什么不使用圈子呢。
2)圈子项目适中:织梦的圈子是一个简单且复杂的功能,简单是相对于织梦主功能来言,但是,这个功能看上去简单,其实,相当复杂的一个小功能,最重要的是这个项目几乎用到了织梦系统的所有二次开发知识,这是非常重要的,与主程序非常紧密相关。
本文章由织梦基地制作:http://www.dedebase.com/
如何学习织梦二次开发,怎样进行dedecms二次开发相关推荐
- php织梦二次开发的功能例子,织梦dedecms二次开发php使用json讲解
织梦dedecms二次开发php使用json讲解 简 单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将 ...
- 织梦二次开发写php,PHP教程—DedeCMS二次开发(二)
织梦内容管理系统(DedeCMS),是一个集内容发布.编辑.管理检索等于一体的网站管理系统(Web CMS),他拥有国外CMS众多特点之外,还结合中国用户的需要,对内容管理系统概念进行明确分析和定位. ...
- Polyworks脚本开发学习笔记(十六)-用C#进行Polyworks二次开发
Polyworks脚本开发学习笔记(十六)-用C#进行Polyworks二次开发 Polyworks支持C#二次开发,用对应的SDK文档试着做一下开发样例. 新建一个C#项目,在解决方案中右键添加引用 ...
- dedecms二次开发:自定义模型使用教程
dedecms二次开发:自定义模型使用教程 在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章.图集.软件.商品.分类信息.专题.通过系统 ...
- nx二次开发c语言,NX二次开发-UFUN API函数编程基础
1.NXOpen C 的函数 函数名称的约定 NX Open C 共有2类名称约定:一个是标准的NX Open C 的函数名称约定:另一个是以前版本的原有的名称约定. 1.标准名称约定 [格式]UF_ ...
- 房地产—客户关系管理系统CRM|软件开发|软件外包|程序二次开发
房地产-客户关系管理系统CRM|软件开发|软件外包|程序二次开发 主要:CRM管理,合同管理,绩效管理 1.CRM管理:新增客户,我的资源,公共资源,客户跟进,待审批客户,报备资源,审核释放,预约到访 ...
- php织梦二次开发的功能例子,织梦DedeCMS二次开发联动筛选功能的实现(含多选功能)...
织梦默认的列表页没有筛选功能,但有时候我们做产品列表页的时候,产品的字段比较多,很多人都需要用到筛选功能,这样可以让用户更方便的找到自己所需要的东西,实现这个联动筛选功能需要对织梦进行二次开发,下面就 ...
- 织梦php开发tags功能开发,织梦dedecms二次开发中几个标签的应用
在织梦dedecms 里面对于数组进行循环的标签有好几个,在前台模板即使用静态模板引擎有,{dede:foreach array='数组名称'}[field:key/] [field:value/]{ ...
- 测试开发必备技能-Jmeter二次开发
为什么需要做二次开发?JMeter作为一款开源的性能.接口测试工具,有时候无法满足我们工作的需要,一般体现在:协议不支持.没有相应数据处理功能等. 一般这种情况下,我们可以做的选择有: 第一种找插件 ...
最新文章
- 芯片、模组、开发板的区别与联系-结合ESP32浅谈(转载)
- sersync + rsync 实现文件的实时同步
- IIS/ Apache+PHP+MySQL+ Zend Optimizer完全安装手册
- mysql5.7.23版本环境配置
- Python模块:time模块详解(转)
- P3857-[TJOI2008]彩灯【线性基】
- leetcode 268
- 实验8 群体类、流类库与输入/输出(4学时)
- Intellij IDEA 添加jar包的三种方式
- [pthon]模块 time
- jquery1.6.2源码拆分一
- PHP中的数组(数据结构)
- 【2016-2017 ACM-ICPC (ECNA 2016) G】That's one Hanoi-ed Teacher【汉诺塔问题】
- 一文带你了解华为私有云
- 路由器修改dns服务器,路由器DNS怎么设置如何修改路由器DNS服务器地址
- spring Clound EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEW
- 蓝牙耳机连接了电脑但是声音外放的解决办法
- 安装doctrine
- pandas笔记(3)——DataFrame数据查看,缺失值,异常值,重复值预处理
- LiveData介绍
热门文章
- 结婚需要注意些啥礼节啊?
- 忘记使用优惠券,阿里云国际版退款流程及相关问题详解
- 华为android 消耗流量,避免手机卡顿,消耗流量,华为手机需要关闭这4个功能
- STC51单片机实现蓝牙无线下载程序
- 济南计算机大专学校有哪些科目,济南有哪些专科院校 附所有专科院校名单
- 【QA】启动时间同步服务失败:Failed to start ntpd.service: Unit not found
- HTML5新增的拖拽属性draggable,怎么实现拖拽?
- 【ARM 嵌入式 C 入门及渐进 6 -- Linux 内建函数 __builtin_】
- Ubuntu Linux操作系统tftp服务器和客户端安装(简单操作)
- CFA FRM CPA三证同持,你做到了吗?