要求:
1.同一开发环境. W AMP
2.最终完成a67 手机电影网的70%功能.(相当于静态页面已经提供.)
3.学习过程中,我们会分析源码和dede数据库的设计思想-> phpcms 或者cmstop
4.参加工作有a. 全新开发b. 加入一个团队,一起开发. c 数据的设计.
学习DEDE的二次开发
◆cms的基本概念
cms(content management system) 内容管理系统,主要是管理内容变化不大的数据(新闻,软件,商品,文章, 电影,视频....),
◆主流的cms
dedecms [中小型网站,使用在企业级的网站不少见.]
phpcms [中型网站,对大型网站也很好.]
cmstop [据说对大型网站支持最好]
◆dede的特点
1.简单、实用,开源(源码.)
2.专门用于个人,中小型门户网站., 企业也可以支持
3.架构PHP+mysql
4.前台是静态页面(访问速度开) ->页面静态化技术.
◆dede的安装
1.先卸载apache和mysql, 成功卸载.
2.安装Wamp (该软件包括apche+mysql+php+phpmyadminj),如果安装后,小的半圆式白
色,说明成功!
3.把uploads 文件夹拷贝到www目录
4.把uploads 改成dedecms名字
5.浏览器中输入http://localhost/dedecms/index.php
6.进入安装界面,记住吧gd库打开,否则后面登录管理员界面不能成功!
7.指定admin的密码,然后看到如下界面
8.登录到dedecms的后台管理
先把dedecms/dede改成manage,然后
http://localhost/dedecms/manage
9 .当进入到管理页面后,需要做一个安全修改
强烈建议data/common.inc.php文件属性设置为644(Linux/Unix)或只读(NT);
DEDE的快速入门
需求1: 现在老板要求你做一个文章管理系统,栏目(类别)包括(武侠、
爱情、音乐...) ,每个栏目(类别)有对应的文章,文章已经给你准备
好了,请你在30分钟搞定该网站,怎么样?
1.先看看dede默认的前台首页面是怎
http://localhost/dedecms/index.php
2.说一个dede 原理
3.我们做栏目
1.先进入后台管理->网站栏目管理
说明: 当我们增加一个栏目时,实际上在dede数据库中有一张表dede_arctype表中增加了一个记录.
2. 给每个栏目增加文章
后台->核心->普通文章(+)->添加文章
?当你添加一篇文章后,
①其实就在在dede_archives表中添加了记录,同时在另外一张附加表dede_addonarticle 中记录额外信息.
②生成了静态页面., 并连接
3. 生成栏目的静态页
后台->生成->更新栏目HTML
先在请大家完成如上功能.
这里dede设计使用垂直分割的技巧.
注意: 如果希望在首页面看到最新的文章,请更新首页面的HTML
后台->生成->更新主页面HTML
刚才我们说:dede的首页面包括前台是可以是静态页面,dede 支持前台页面静态化,步骤后台->生成->更新主页面HTML
在dede开发过程中,目前有四类表关系一览图
◆思考题2: 如果现在我们要做的是电子商务网站,卖我
们的商品,这时用文章这样的形式来管理还合适
吗?—> 每个栏目都可以指定一个内容模型
什么是内容模型呢?
步骤1:先看看dede是否已经提供了商品的模型,如果提供了,你直接使用,否则自己创建. 后台->核心->内容模型管理看看是否有!有就使用,步骤上面一样.
思考: 如果默认给的某个模型字段信息不够,怎么办?->自定义模型.
◆需求3: 在添加某个商品的时候,我们希望多一个信息,就是付费方
式,还希望多一个邮资信息,我们又该怎样处理?
- 引出修改内容模型的问题
步骤:
1.点击核心->内容模型管理->商品修改->字段管理->添加新字段.
说明: 当你操作完毕后,就会在对应的附件表中增加了一个对应的字段.
◆需求4: 请各位同学看看,这里我们有一个问题,就是当你点击武侠
,爱情,电器的时候,会找不到对应的页面,这是为什么呢?
这个就是直接点击更新栏目HTML
说明: 我们设计网站前台的时候,可以参考这样一个思路: 网站分三级目录
首页面->栏目页->内容页
◆思考题:1. 栏目(类别)是保存在哪个表
中的. 2. 一篇文章,一个商品它们最
终是存放在数据库中的哪些表中?
◆答: 栏目(类别)是保存在哪个表中的. dede_arctype
◆一篇文章,一个商品它们最终是存放在数据库中的哪些表中?
内容是分别放在两张表,一张是他的主表,该主表是通用dede_archives , 附件表dede_addonXXX.
◆在DEDE中增加内容的基本步骤是怎样?
(1)找模型,如果有的话,你可以使用,但是你也可以自定义一些字段,你也全新的创建一个
模型,比如: 我现在要搞一个电影网站.
增加一个模型的步骤是:
a.点击核心->内容模型管理->增加新模型, 进入页面后,自己看看就知道怎样添加了
说明: 当你增加一个模型后,就会在数据库中增加一个对应的附件表dede_addonXXX
(2)添加一个栏目,根据你的实际情况来定, 刷新一把才看到
(3)增加内容,根据实际情况输入即可
◆说明一下DEDE 的目录结构
dedecms/a 目录用于存放生成的静态页面
dedecms/data 目录用于存放临时文件和缓存文件
dedecms/images 目录用于存放dede自己的图片
dedecms/include 目录核心类库(标签库,操作图像的类,操作数据库的类)
dedecms/install 目录,安装信息
dedecms/manage 目录,存放后台管理程序
dedecms/member 目录,存放会员管理程序
dedecms/plus 目录,存放插件程序,和将来你开发的程序模块
dedecms/templates 目录,存放dede前台的所有模板文件
dedecms/uploads 目录,存放你上传的图片、视频。。
◆如何去掉广告
思路: 因为dede 创建静态页面的机制,通过模板文件,去创建对应的静态页面,因此我们思路是,修改这个对应的模板文件.
dede的标签问题:
1.如何去查阅标签手册
后台->模板->默认模板管理->点一个修改
可以看到参考标签
◆如何去掉列表表的广告
知识点: 如何去找某个栏目的列表页
后台->网站栏目管理->找到对应的栏目->更新->高级选项->
到dede/templates/default /下去找到对应的模板文件,进行修改即可,然后重新更新栏目HTML
?每个栏目属于一个模型,那么他们对应的栏目列表模板是同一个,修改后,就同时收到影响.
上机练习:
?去掉讨厌的广告(首页面的)
?如何添加自己的广告图片在首页
?去掉讨厌的广告(某个栏目对应列表页)
?去掉讨厌的广告(文章页)
文章页: 就是点击某个具体文章/商品/软件,所看到的具体内容..
◆dede标签的讲解
1.dede 的标签是在模板中使用
2.我们可以建立自己的模板文件,来学习各个标签的使用
◆具体的标签使用
1.单标签
用法
{dede:标签名属性=“值”.../}
举例说明:
{dede:include filename=”head.htm”/}
2.双标签
用法
{dede:标签名属性=”值”....}内容{/dede:标签名}
{dede:标签名属性=”值”....}内容{/dede}
举例说明:
channel标签的用法.
---chanel标签的用法---
{dede:channel type='top' row='8'}
[field:typename/]
{/dede:channel}
知识点: 如何去查看channel标签的源码. /dedecms/include/taglib/channel.lib.php
3.字段标签的用法
举例
{dede:channel type='top' row='8'}
[field:id/]=[field:typename/]
{/dede:channel}
需求: 如果,我们希望把取出的某个字段数据,进行处理,在输入,怎么办?
具体: 对取出typename值,进行md5加密
具体使用如下:
{dede:channel type='top' row='8'}
[field:id/]=[field:typename/]==
[field:typename function='md5(@me)'/]
{/dede:channel}
4.怎样把取出的值进行PHP运行
[field:字段名runphp=”yes”]
这里可以写一些简单的php码(这里的php码一般是比较简单,如果复杂则可以写一个自定义函数来处理.)
[/field:字段名]
5.如何自定义函数
首先在/include/extend.fuc.php 中添加自己的函数
/*
我们自定义的函数
*/
function abc($val){
return $val."hello,world";
}
看看怎么使用
-----------------------
[field:typename function="abc(@me)"/]
注意: dede的标签是不可以嵌套使用,否则出问题.
6.dede标签如何调用全局的变量值
用法是
{dede:global.全局变量名/}
思想:很多的项目,为了开发的方便,把一些常用的变量,做成全局,然后使用使用比较方便. , dede的有一个非常重要的文件. include/common.inc.php文件,中有很多全局值.
举例:
---取出全局变量值
{dede:global.cfg_soft_lang/}
?因为dede的标签是不可以嵌套,所以,如果你要在dede标签中,取出全局变量,则应当这样取
[field:global.全局变量名/] 等价于[field:global name=?全局变量名?/]
举例
[field:global.cfg_soft_lang/]
实战阶段-a67手机电影网的开发.
前提: 网站的前台静态页面,已经开发好了.
1 把dede首页面换成a67网站首页面.
步骤:
a.首先把templates/defualt 备份一份
b.把templates/defualt 清空
c.把a67 的首页.html 和images css js 整体拷贝到templates/default下,
d.首页.html 换成index.htm
e.打开index.htm 进行网页编码,css,js引入,images图片路径修
/>
rel="stylesheet"/>
rel="stylesheet"/>
把“images/ 替换成"{dede:global.cfg_templets_skin/}/images/
g. 更新首页面,浏览即可看到最新的a67 首页.
2. 将dede首页面栏目换成a67电影网的首页面栏目
a.创建电影这个内容模型
b.创建我们的栏目(我的电影、我的电视剧)
c.使用dede 标签,在index.htm 模板中,把我们需要的栏目内容取出{dede:channel}..{/dede:channel}
具体的代码是
{dede:channel type="top" row="8"}
[field:typename /]
{/dede:channel}
3.a67网的栏目列表页面
图示:
点击对应的栏目,可以看到对应的栏目列表页面!!
步骤:
a.请先把不必要的栏目先删除.
b.看看你的电影的模型对应的列表模板文件叫什么名字,然后在templates/defualt 目录下
创建一个空的list_movie.htm 名字.
c.更新栏目HTML
d.更改首页面的栏目的超链接,让它指向直接的列表静态页
这里请大家在首页面模板中href 这样写
{dede:channel type="top" row="8"}
[field:typename /]
{/dede:channel}
e.把a67的栏目列表模板文件拷贝到templates/default 名字,是list_movie.htm
然后做网站编码,资源引入(css/js), 图片的路径的替换,这个和首页面是一样.
f.把栏目的导航,的首页面改成我们的本地.
练习.
◆把首页面的今日更新的数据,从我们自己的dede取出,并显示
步骤
1.首先自己在后台添加一些数据(电影、电视剧)
2.在首页面的模板文件中,使用标签{dede:arclist} 来取出文档
3.具体代码是在index.htm中写的.
上机作出.
◆a67网的首页面的今天更新滚动内容的自定义
特殊的需求,就是,我们希望在取出栏目记录或者是内容记录(电影,电视剧), 是更加灵活.--->{dede:sql}
举例: 使用{dede:sql语句来完成上述功能}
基本用法:
{dede:sql sql=''}
[field:title/]
{/dede}
具体的代码:
a67网的首页的添加我的电视剧,并完成各个栏目对应的列表页
请大家完成,当我们点击我的电视剧时,就显示电视剧内容,点击电影就显示电影的内容.
步骤如下:
1.找到对应的栏目列表模板文件list_movie.html .做修改
学生的问题:
如何安装自己希望的顺序来显示我们的栏目.
思路:
{dede:channel} 如果可以接受我们传递的某个数据,然后,我们再在channel.lib.classs 文件中进行处理好?
{dede:channel orderby=”id”}
处理方法是,可以再channel.lib.class 中进行二次处理
//使用调式
继续这个问题: 比如我点击我的电影,只取出国语电影,怎么办?)
思考: 因为电影列表是通过{dede:arclist} 取出,因此,我们必须考虑{dede:arclist}进行二次开发?
步骤:
1. 找到栏目列表模板文件list_movie.htm
2. 我们在{dede:arclist } 标签中自定义一个属性hspwhere
前台调用方法是: list_movie.htm
后台的标签库的添加码是:
a67网的主页面和栏目列表的今日更新,点击后进入内容页面
思路:
找到内容页的模板文件.
后台->核心->栏目列表->点击某个栏目->高级选项
发现电影和电视剧用的文章模板是article_movie.htm
步骤:
1.把美工提供的电影内容.htm 拷贝到article_movie.htm
2.对模板做网页编码,资源引入,图片的路径进行修改
3.重新生成内容页
4.修改了首页面模板文件index.htm
5.对article_movie.htm进行处理,取出对应的数据.
这里有一个新的知识点,如何在内容页中取出对应记录(电影、电视剧)的字段信息.
方法是{dede:field.字段名/} 说明这个字段,可以是主表的字段,也可以是附加表字段
具体的代码如下article_movies.htm
上机练习到这里!
面包屑导航标签:
使用的方法:
{dede:field.position/}{dede:field.title/}
a67网的内容页面增加统计浏览量的功能
首先,我们看看dede自己怎么做的!!!
这里我们需要学习一个新的知识点:
如何写自己的程序(插件),去操作dede 的后台数据库的表->
现在我们自己写一个函数,使用Dede 的DedeSql 类的一个全局变量$dsql
这里我们学习一招技术,如果在一个静态页面中,有部分数据是动态,可以自己写一个PHP 文件,该文件,一般是放在/puls/目录下,比如mysql.php
然后在你的某个模板文件中这样取调用:
练习题:
练习2
练习3
需求,当小手移动到星星的时候,星星根据实际情况变化
思路
1.通过jquery技术来实现,看上图
步骤:
1.article_movie.htm 引入jquery 文件.
2.编写js 代码,来响应鼠标移动到星星上这个事件. 代码:
◆需求:取出热门电影
思路: 先找到代码,然后修改.list_movie.htm
代码:
◆需求: 如何取出下载地址(动态改变,当后台变化,下载链接也变化)
思路:
想: 因为下载地址是有多个,而且是变化,因此没有办法给每个下载地址存放一个字段,我们可以这样想, 我们把所以的下载地址(信息),放入到一个字段中varchar(1024), 然后使用处理函数来灵活的处理
下载地址(信息)存放到数据库的附加表增加一个字段download, 存放下载地址(信息)下面的格式是我自定义的,在开发中根据项目经理定
3gp|魔侠传之唐吉可德01|176x144|https://www.wendangku.net/doc/bd8166409.html,/01.3gp
3gp|魔侠传之唐吉可德02|176x144|https://www.wendangku.net/doc/bd8166409.html,/02.3gp
3gp|魔侠传之唐吉可德03|176x144|https://www.wendangku.net/doc/bd8166409.html,/03.3gp
mp4|魔侠传之唐吉可德01|176x400|https://www.wendangku.net/doc/bd8166409.html,/01.mp4
mp4|魔侠传之唐吉可德02|176x400|https://www.wendangku.net/doc/bd8166409.html,/02.mp4
步骤:
1.首先在附件表中增加一个download 字段
2.把下载的整个网页格式,放在一个函数去处理
函数plus/extend.func.php
HTML 一、HTML有关知识点 1.html介绍 html是一种标记语言,主要的用途是开发网页,使用html可以展现文字、图片、视频、声音,html是我们web开发(网站开发)。 2.html可以做什么 ?html可以编写静态网页 ?该静态网页可以包括文字、图像、动画、声音、表格、链接。从而构成一个个漂亮的网页 3.Html发展历史 4.Html的基本结构 5.是标记(也叫元素),标记的一般格式: <元素名[属性=“属性值”]>元素内容标签> 如果没有内容可以用:<元素名[属性=“属性值”]/> 6.Html实体标记 7.Html常用标记
?html超链接 ●_blank 新的窗口 ●_self 本窗口 ●_parent 父窗口 ●_top整个浏览器窗口 ?html图像元素 ?html表格
--用于说一小格 |