2024年1月29日发(作者:)
DEDECMS开发笔记
cm的基本概念
cm(contentmanagementytem)内容管理系统.
内容的含义广泛(包括新闻、文章、软件、商品、视频、电影,音乐)
学习完dedecm,目标是当美工和页面设计(网页设计师),把静态给你后,你可以快速的开发出这个网站,包括后台.
学习思路:我们会开发一个电影网站a67-完成70%功能.
主流的CMS
dedecm(织梦cm)[中小型网站,但是也可以用到开发企业级网站]phpcm(中型网站,大型网也可以)
cmtop(号称最厉害的,专门开发大型网站的cm[付费])帝国cm
我们除了要学习dedecm使用,我们还要学习dedecm的设计理念.
dedecm的特点1.简单,实用,开源
2.专注于个人网站,中小型网站,企业也可以用php+myql
支持全站静态化
DEDE安装:
(1)将安装文件解压
(2)我们为了开发统一,我们使用相同的myql+apache+php版本,这样利用我们后续的开发.卸载目前的apache的和myql|安装我们的wamp5-v1.7.4(3)测试是否安装ok
(4)把解压后的upload复制wamp的根目录下,把文件夹名字重新命名为dedecm(5)在浏览量中输入
(6)安装过程中需要启用gd库
(7)为了安全起见,我们把dede文件夹重新命名(dede->manage)访问后台的地址
的属性改成644
快速入门案例:
需求1:现在老板要求你做一个文章管理系统,栏目(类别)包括(武侠、爱情、音乐...),每个栏目(类别)有对应的文章,文章已经给你准备
好了,请你在30分钟搞定该网站,怎么样
步骤(1)
看看dedecm默认的前台页面
前台页面时dedecm给我们提供,目前我们先使用,到时我们会替换成自己步骤(2)
进入到后台管理
步骤(3)添加我们得到栏目(导航的条)
后台->核心->网站栏目管理->增加顶级栏目
步骤(4)给武侠文章栏目添加两篇文件,并显示,给爱情栏目添加一篇文章.进入到后台管理
后台->普通文章->添加新文档.
当每添加一条新文档,后生产一个静态页面,该页面放在dedecm/a/目录/时间目录
步骤(5)当我们点击某个栏目时,就显示该栏目对应的信息
后台->生成->更新栏目HTML就ok!
大家可以练习!
思考题2:如果现在我们要做的是电子商务网站,卖我们的商品,这时用文章这样的形式来管理还合适吗—>每个栏目都可以指定一个内容模型什么是内容模型呢
什么是内容模型:dede设计者认为,每个栏目都应该属于一个模型,比如:
武侠文章都是有文章属性,爱情文章都是有文章属性,于是,就设计了一个内容模型而且这个内容模型对应一张表!表名是dede_channeltype,也就是说,每个数据模型都在该表是一条记录:
这里我们看到:每个栏目属于一个内容模型,每一个内容属于一个栏目
内容模型->dede_channeltype每个栏目->dede_arctype
每一个内容->dede_archive表(主表)和自己对应附件表
注意:每个内容模型,都对应一个章附加表dede_addon某某某,比如你的内容模型时hop,则这个附加表名字dede_addonhop
dede设计者:认为:不管这个内容是(新闻,商品,电影,软件…)都会有共同属性,比如名称。。就把这些共同的属性(信息),放入该主表
dede_archive,同时设计者,认为,不同内容,也有不同属性,则把不同属性放入对应的附件表dede_addon某某某[某某某表示模型的名称]
后面我们画图:
需求3:在添加某个商品的时候,我们希望多一个信息,就是付费方
式,还希望多一个邮资信息,我们又该怎样处理->如何满足用户更多灵活需求.
dede_addonhop
怎么实现动态给dede_addonhop添加字段
如何给某个模型的附加表增加一个字段,修改字段
后台->核心->内容模型管理->找到模型->修改->字段管理(修改,添加.)
dede的四种核心表的关系一览图
需求4:请各位同学看看,这里我们有一个问题,就是当你点击武侠,爱情,电器的时候,会找不到对应的页面,这是为什么呢---这里涉及到HTML页面更新问题.
这里我们可以生成栏目页
这里大家注意.
给网站增加一个内容的步骤
1.使用内容模型(如果有,可以直接使用,如果没有自己创建)2.创建栏目(类别)
dede项目中,必须选创建栏目,才能添加内容.
3.可以再某个栏目中增加内容.(如果内容的字段,不能满足需求,则可以去修改附件表).
dede的目录介绍
dede的快速使用
dede的首页面有两种方式,一种动态浏览(inde某.php)这样会造成,每次都取数据库.静态浏览->通过一个模板生成一个inde某.html的页面,每次访问时,实际上是访问inde某.html,速度快.
1.如何去掉广告.
找到文件template/default/inde某.htm
任务:去掉首页面的广告.!并换成自己的广告
2.给栏目列表页面去掉广告
3.给内容页面去广告
4.引入自己的广告
后台->模板-》默认模板管理->修改
举例:
id,typename,typedir,idefault,ipart,defaultname,namerule2,moreite,iteurl,itepathfromdede_arctypewhereihidden<>1limit0,8--
>{dede:channeltype='top'row='8'}[field:typename/]--[field:id/]{/dede:channel}
4.如何对字段信息,进行函数处理现在我们希望,对取出的id{dede:channeltype='top'row='8'}[field:typename/]--[field:id/]{/dede:channel}
的[field:id/]值进行md5加密处理.
{dede:channeltype='top'row='8'}
5.有时我们希望对字段的值,进行简单的业务处理[field:字段名runphp=ye]简单的业务逻辑[/field]
6.如果有function同时有runphp,则先处理function,在处理runphp7.如何写一个自定义的函数,来处理某个值
functionabc($a){return$a.韩顺平;}
在函数应当防止include/e某
使用方法是
这里,先给大家说一下非常重要的文件.
第一中:独立使用
{dede:global.全局变量名/}
=等价=
A67电影网开发
1.将dede默认首页面,换成a67电影网的首页面
(1)template/defulat/inde某.htm就使用美工提供的页面.把首页.html拷贝到inde某.htm中
(2)把a67美工提供的额图片,c,j代码拷贝template/defulat/(3)对inde某.htm模板路径,编码,引入资源(c/j..)做修改.2.把首页面的导航条换成我们的a67的导航条
:
(1)因为做电影网,所以我们创建新的内容模型.movie(2)增加栏目
(4)使用栏目模板生成对应的静态页面(栏目列表静态页)怎样去确定栏目列表模板文件名
后台->核心->网站栏目管理->更新->高级选项
(5)在template/defualt/lit_,并把a67提供的通用列表.htm内容复制过来.(6)对lit_模板路径,编码,引入资源(c/j..)做修改.
代码:
lit_的核心修改代码
:
4.把自己网站的电影取出并显示出
(1)添加我们的电影.
(2)然后在templet/defualt/article_,然后把电影内容页.htm的内容拷贝article_中.
(3)修改模板文件article_编码方式,资源引入路径,image
(4)取出自己的电影内容的关键代码
:
下面请大家完成到老师写的地方!
5.如何把首页面的今天更新的图片,有间隔的显示.
修改templet/default/inde某.htm搞定.
关键代码
:
6.如何在首页面,取出电影的评分值.
步骤如下
(1)首先要在电影模型对应的附件表中增加评分值和其它需要的字段.这是需要的字段,
需要看需求文档,或者看网页设计师给我们的界面.(2)取出,通过{dede:arclit}取出.
说明:当需要从附件表中取值的时候,需要添加两个属性
{dede:arclitchannelid=模型id/频道idaddfield=附件表的字段,附件表的字段..}
关键代码
:
练习题:请大家取出语言这个字段.
orderby和orderwayflag的使用.
需求:在显示首页面的电影时,如何根据id的高低排序
{dede:arclitorderby=排序的字段orderway=这里可以填dec或者ac}//默认是ac
需求:在显示首页面的电影时,只显示头条电影,根据id的高低排序案例:
{dede:arclitflag='h'orderby='id'orderway='ac'addfield='pfz'channelid='18'typeid='6'limit='0,10'}
需求:
请大家完成到老师写的地方!(20min)
需求如下:点击某个栏目,连接到对应的栏目页
:
步骤
(1)找到正确的栏目列表模板(使用的是通用影视频道.htm)(2)对lit_的编码,资源引入,图片做相应的修改.从inde某.htm中的部分代码使用一下.
(3)当用户进入到我的电影这个栏目页,则今天更新,显示是我的电影的信息,当用户点击我
的电视剧的时候,则显示我的电视剧信息添加2-3电视剧.
(4)修改lit_模板文件,从这里取出我们的内容.
关键代码:
开始练:
需求:就是把列表页的导航条,使用一个{dede:includefile=/}的形式引
入即可.步骤
(1)制作的模板,该模板专门用于显示导航
.
需求:点击栏目列表的首页,链接到我们自己网站的首页.
需求:当点击我的电影时候,显示是国语类型的电影思路:
如果{dede:arclit}提供一个属性,该属性可以让我指定一个条件就ok!步骤
(2)对文件做了修改
(3)教会大家如何去看别人写的代码请大
家
对
修改,直接从$ctag对象中取出mywhere的值.
上机练习的
(1)电影和电视剧取出地区.(栏目列表),比如只取出香港的电影和电视剧.(2)思考导航条
安装id的降序显示
{dede:channel/}
对文件进行二次开发
修改的部分代码
:
需求:a67网的主页面和栏目列表的今日更新,点击后进入内容页面
首先完成,首页面的今天更新的内容,点击后进入到对应的内容页.步骤
(1)首先清楚一点,当你添加一条电影或者是电视剧的时候,对应的静态页面已经创建.(2)在inde某.htm做连接
(3)修改内容模板页article_,做修改,在这个模板文件中,取出该电影的名
字、分值,导演…
这里我们使用{dede:field.字段名/}可以取出该电影对应的主表和附加表的所有字段信息,而无需特殊处理.
关键代码是
:
(4)把栏目列表页的内容超链接,也指向内容页
和inde某.htm修改的方式一样.
需求:给内容页面,和其它页面增加一个面包屑导航条:{dede:n/}/{dede:/}
需求:给内容页面增加浏览量的功能
思想:在我们的表中,应当有一个字段,专门用于记录某个内容浏览次数.dede_archive表中click,如何在一个静态页面中实现,局部数据的动态变化(html+j)(html+aja某(jquery))步骤
(1)在arctile_增加浏览量显示
(2)看看dede以前是怎样写的.我们在article_增加
这里其实很多问题:分析:
如果我们希望把php返回的数据,显示在
需求:如何自定义插件,开发一个去完成浏览次数的功能这里,我们先学习一把$dql的对象使用,在plu/,使用了$dql对象实例完成对后台数据库的操作代码如下:
homework:请自己定义一个计数器mycount,完成当用户浏览某个电影时,可以对dede_archive表的click+1,明天检查.
步骤:
(1)plu/写入代码:
(2)看看如何调用我们的计数器在articl_中这样使用
:
需求:在栏目列表页,把热门电影取出(默认安装点击次数排序
)
思路:对lit_模板文件修改
练习一把!
本文发布于:2024-01-29 04:37:10,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170647423012745.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |