(转)dedecms入门
学dedecms一段时间了,把我的入门体会和大家分享一下。
什么是dedecm
cms(内容管理系统):现在有各种内容模型,如书评(包括书名,出版社,评论等字段)。cms一般有用户后台,网页的用户可以在后台中发表并分享自己的信息,如书评,并增删改之。cms就是这样一个提供发表,分享和修改的网站。
是一个产品:产品这个词区别于框架,框架就是同类开发中相同的地方,是用来加快开发进度的,给开发者保留的自由比较多;而产品说明dedecms不需要做太多的开发,dedecms大部分的功能已经做好,用户只要修改并配置一下就能使用了。可以类比一下discuz,它也是一个产品,一个论坛系统。
怎么使用dedecms?问题的答案取决于用dedecms的目标
1不会做网站,但想有一个网站。这时一般下载一个和需求相近的网站模板(样式),通过后台管理器创建栏目,修改一下关键字(如公司名),就能有一个网站了。我的认为这样做出来的网站不会太好。
2会一点技术,像在dedecms的基础上修改,完成项目,我认为这一点很适合刚开始编写网站的新手。
懂一点html,js,css,但不会架构网站。现在考虑想要写一个qq空间,具体的功能织梦已经写好了,你想用js和css改善一下用户界面,写一个空间装扮,这是你要做的是编写网页模板。dedecms就提供了方便的数据访问功能,访问数据仅需通过dede标签(类似于html标签)。也就是说,要写一个网站,仅需要写出一个个html页面,为之配上js和css就行了,仿佛像写静态网页,但却有动态功能。但是dedecms并没有简化写js和css的过程,在一般网页中写js和css的方法也能应用到dedecms的框架中,也就是说,从其他地方下载的js和css文件能方便地放入dedecms中。
dedecms提供的标签功能不够,想自己用标签封装功能功能--扩展标签,也可以自己写一些插件,这就要写php文件了。但不用怕,可以模仿系统自带文件。
3想快速赶出一个网站项目,dedecms网上也有不少模板、插件供下载。但前提是懂得html,css,js和php,并比较熟悉dedecms的内部结构。
4dedecms本来就是很好的网站架构实例,对于一个刚刚学完php语法的fresher,还不知道怎么用这些语法变出一个网站,能看到一个完整的代码组织,是入门的好途径。里面的一些机制如缓存等都值得思考和学习,但这就有点深了,慢慢来吧~~
千里之行,始于足下。上面讲的东西要循序渐进,以下来说说刚开始学dedecms要干什么(基本是第二步里的事)。
知识储备
1html,如果搞前端,还要会css和js;搞后台的还要会php,mysql。这些始终都要学的。
2如果想做到第三步,可以找本书学smarty模板,不少php教材都有一章讲smarty模板。通过书本,能更完善的认识模板的概念,学dedecms时就不会那么痛苦。
开始接触dedecms
1从官网上下载默认模板,安装。安装一个数据体验包,这样才有调试数据。
2把玩把玩前台,更重要是默认网站的后台。发现不编程也可以创建栏目,了解各个文件夹的作用,同时上网查一下新名词。
使用后台时可能会遇到一些不易理解的名词,以下列出一些解释,供查阅,现在没有必要记住它们:
标签:形如html标签,由标签名,属性值和标签间的InnerText组成(如<p>123</p>中的123)。dedecms自定义了许多标签,格式如如{dede:global name=cfg_webname/}
底层模版(InnerText):对于多条记录的模版输出,用户(或开发者)手工去指定单个记录的样式。就是块标签里的InnerText,利用到[field:name]。
默认底层模板:templets/system中的那些,一个默认放入对应块级标签中的底层模板。在块级标签内不写任何东西就会默认调用。
命名空间:就是标签里一开始的记号,如{dede:var.name}中的dede。
网页模板/模板:具有具体的html框架,调用标签来填充具体数据的htm文件。如templets中的htm文件。
栏目(type):一级导航,二级导航一类的,一个栏目里可能有许多文章和图片等。
频道(channel):频道是指不同的栏目类型。如文章模型,软件模型,图集模型,视频模型,FLASH模型等等。官方的定义是:频道指内容模型,网站的栏目都是基于不同的模型建立的。比如漫画和风景都可以用图片频道产生。
模板,插件和模块的区别:模板就是templets里的html,规定了文章,封面等的显示方法,有点类似于背景。插件就是一些小的实际的程序的集合,如vote(投票)插件,它可以简单的安装和删除,不过安装和删除仅去去掉数据库的索引记录,并非进行真正的安装和删除。模块和功能这个词是对应的,插件和基本的代码完成的都是零散的功能,而一个木块能相对自治地完成一组相关的功能,如group模块。
视图类:视图类是包含一个编译/解析引擎对象的类,它封装了编译/解析引擎对象,作为视图,而且扩展出新的特性。
生成:带有标签的htm页面和php文件经解释后生成静态的html文本,存放在(根目录)/a下。
采集:将别人网站上对自己有用的文章等信息转到自己网站上。dedecms有自己的采集器。
之后就可以开始学dede标签语法了,只要把dede标签写在html文档中,就能轻松访问到数据库
可以看一下这篇文章
推荐几本手册和一些社区
5 站长百科
学习的过程中可以按自己的程度,了解网站中各文件夹的组织,以及网站对应的数据库。
快速测试网页模板(带dede标签的html文件)的方法
根目录/index.php 中SetTemplet附近改成想要的模板。如
$pv->SetTemplet//($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
(dirname(__FILE__) . "/templets/default/myhtml.htm");
(要注意保存原来的路径,以备还原)
关于dedecms入门还可以看一下这些文章:
(转)dedecms入门的更多相关文章
- dedecms的入门使用
前段时间(其实也很远了)一直在学习dedecms,这里对前段时间的学习做一个总结. dedecms学习网址:http://help.dedecms.com/v53
- 读DEDECMS找后台目录有感
本文作者:红日安全团队——Mochazz 早上看了先知论坛的这篇文章:解决DEDECMS历史难题–找后台目录 不得不说作者思路确实巧妙,作者巧妙的利用了Windows FindFirstFile和织梦 ...
- 织梦网站dedecms防止挂马的思路
DedeCms做为国内使用最为广泛使用人数最多的CMS之一,经常爆出漏洞,每个漏洞的爆出,影响都是一大片,轻则被人挂广告.弹框,重则服务器成为肉机,宝贵数据丢失.那么有什么办法可以提高DedeCms的 ...
- 【shell】shell脚本入门
1. 前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚 ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
随机推荐
- BZOJ 1087 互不侵犯
Description 在\(N \times N\)的棋盘里面放\(K\)个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共\(8 ...
- [BZOJ 1033] [ZJOI2008] 杀蚂蚁antbuster 【模拟!】
题目链接: BZOJ - 1033 题目分析 模拟!纯粹按照题目描述模拟! 这是一道喜闻乐见的经典模拟题! 我一共写了2遍,Debug 历时2天的所有晚自习 ... 时间超过 8h ... 我真是太弱 ...
- [LeetCode#82]Remove Duplicates from Sorted Array II
Problem: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? F ...
- Building a Space Station(kruskal,说好的数论呢)
Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3820 Accepted: 1950 Description You a ...
- poj 3007 Organize Your Train part II(静态字典树哈希)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6700 Accepted: 1922 Description RJ Freigh ...
- Javascript 面向对象编程(一):封装 by 阮一峰
<Javascript高级程序设计(第二版)>(Professional JavaScript for Web Developers, 2nd Edition) 它们都是非常优秀的Java ...
- 【转】Android驱动开发之earlysuspend睡眠模式编程总结
原文网址:http://blog.csdn.net/bigapple88/article/details/8669537 (1)添加头文件: #include <linux/earlysuspe ...
- hdu 4705 dfs统计更新节点信息
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4705 #pragma comment(linker, "/STACK:16777216&qu ...
- Freemarker数字转时间
使用freemarker模板,展示一个时间字段,数据库保存的是毫秒.在网上找了许多文章,发现都是针对date或者是直接类似"1999-09-09"这样已经成型字符串进行操作的,心中 ...
- Redis 与 Memcached 的区别
[转]Redis 与 Memcached 的区别 传统 MySQL + Memcached 架构遇到的问题 实际上 MySQL 是适合进行海量数据存储的,通过 Memcached 将热点数据加 ...