安徽SEO顾问

毛主席说过,实践出真知(也许他老人家也许没说过...不过这些不重要)重要的是本博将持续更新,持续分享。
网络营销优化QQ交流群:436867053

韩顺平织梦仿站教程:一个完整仿站模板教程笔记

要求:

1.同一开发环境. WAMP

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的密码,然后看到如下界面

图片1.jpg


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 原理


图片2.jpg



3.我们做栏目

图片3.jpg


1.先进入后台管理->网站栏目管理


说明: 当我们增加一个栏目时,实际上在 dede数据库中有一张表 dede_arctype表中增加了一个记录.


2. 给每个栏目增加文章

后台->核心->普通文章(+)->添加文章

☞ 当你添加一篇文章后,

①其实就在 在 dede_archives  表中添加了记录,同时 在另外一张附加表 dede_addonarticle 中记录额外信息.

② 生成了静态页面., 并连接


3. 生成栏目的静态页

后台->生成->更新栏目HTML



先在请大家完成如上功能.



这里dede设计使用垂直分割的技巧.


注意: 如果希望在首页面看到最新的文章,请更新首页面的HTML


后台->生成->更新主页面HTML




刚才我们说: dede的首页面包括前台是可以是静态页面,dede 支持前台页面静态化,步骤

后台->生成->更新主页面HTML





在dede开发过程中,目前有四类表关系一览图


图片4.jpg


思考题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.如何去查阅标签手册

后台->模板->默认模板管理->点一个修改

可以看到参考标签


图片5.jpg



如何去掉列表表的广告

知识点: 如何去找某个栏目的列表页

后台->网站栏目管理->找到对应的栏目->更新->高级选项->


图片6.jpg

到 dede/templates/default /下去找到 对应的模板文件,进行修改即可,然后重新更新栏目HTML


☞ 每个栏目属于一个模型,那么他们对应的栏目列表模板是同一个,修改后,就同时收到影响.





上机练习:

去掉讨厌的广告(首页面的)

如何添加自己的广告图片在首页

去掉讨厌的广告(某个栏目对应列表页)


去掉讨厌的广告(文章页)

文章页: 就是点击某个具体文章/商品/软件 ,所看到的具体内容..



dede标签的讲解

1.dede 的标签是在 模板中使用

2.我们可以建立自己的模板文件,来学习各个标签的使用



具体的标签使用


1.单标签

用法

{dede:标签名 属性=“值” .../}

举例说明:

{dede:include filename=”head.htm”/}


2.双标签

用法

{dede:标签名 属性=”值”....}内容{/dede:标签名}

{dede:标签名 属性=”值”....}内容{/dede}

举例说明:

channel标签的用法.


---chanel标签的用法---

<!--channel标签类似 select * from dede_arctype  where ishidden<>1 limit 0,8-->

{dede:channel  type='top'  row='8'}

[field:typename/]

{/dede:channel}


知识点: 如何去查看channel标签的源码. /dedecms/include/taglib/channel.lib.php


3.字段标签的用法

举例

<!--channel标签类似 SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From `#@__arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, 8 -->

{dede:channel  type='top'  row='8'}

<!--field:typename就是说,把查询的字段typename信息放在这个位置  -->

[field:id/]=[field:typename/]

{/dede:channel}

在dede标签中,只能把标签写在dede之间

需求: 如果,我们希望把取出的某个字段数据,进行处理,在输入,怎么办?

具体: 对取出typename值,进行md5加密



具体使用如下:

{dede:channel  type='top'  row='8'}

<!--field:typename就是说,把查询的字段typename信息放在这个位置  -->

[field:id/]=[field:typename/]==

<!--如何对取出的字段值,使用php函数 @me就是表示取出的值-->

[field:typename function='md5(@me)'/]

{/dede:channel}



4.怎样把取出的值进行PHP运行

[field:字段名 runphp=”yes”]

这里可以写一些简单的php码(这里的php码一般是比较简单,如果复杂则可以写一个自定义函数来处理.)

[/field:字段名] 

注:同时具有function和runphp时,function的优先级高于runphp.


5.如何自定义函数

首先在  /include/extend.fuc.php 中添加自己的函数


/*

我们自定义的函数


*/

function abc($val){


return $val."hello,world";

}


看看怎么使用


<!--如何在dede中自定义函数,把typename值拼接 hello,world并返回-->

-----------------------

[field:typename function="abc(@me)"/](abc这个函数在/include/extend.fuc.php中自己定义)


注意: 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图片路径修

<meta http-equiv="Content-Type" content="text/html; charset={dede:global.cfg_soft_lang/}" />


<link href="{dede:global.cfg_templets_skin/}/css/style.css" type="text/css"  rel="stylesheet"/>

<link href="{dede:global.cfg_templets_skin/}/css/index.css" type="text/css"  rel="stylesheet"/>

<script language="javascript" src="{dede:global.cfg_templets_skin/}/js/global.js"></script>

<SCRIPT src="{dede:global.cfg_templets_skin/}/js/jquery-1.4.2.min.js" type=text/javascript></SCRIPT>

<SCRIPT src="{dede:global.cfg_templets_skin/}/js/lanrentuku.js" type=text/javascript></SCRIPT>


把 “images/ 替换成 "{dede:global.cfg_templets_skin/}/images/ 

g. 更新首页面,浏览即可看到最新的a67 首页.

2. 将dede首页面栏目换成a67电影网的首页面栏目



a.创建电影这个内容模型

b.创建我们的栏目(我的电影、我的电视剧)

c.使用dede 标签,在 index.htm 模板中,把我们需要的栏目内容取出

{dede:channel}..{/dede:channel}


具体的代码是

<ul>

<li><a href="http://www.a67。com/" target="_self">首页</a></li> 

{dede:channel type="top" row="8"}

<li><a href="http://www.a67。com/movie/" title="手机电影" target="_self">

[field:typename /]

</a></li> 

{/dede:channel}

<li><a href="http://www.a67。com/zhuanti/" target="_blank">专题</a></li>

</ul>



3.a67网的栏目列表页面


步骤:

a.请先把不必要的栏目先删除.

b.看看你的电影的模型对应的列表模板文件叫什么名字,然后在 templates/defualt 目录下创建一个空的  list_movie.htm 名字.

c.更新栏目HTML 

d.更改首页面的栏目的超链接,让它指向直接的列表静态页


这里请大家在 首页面模板中 href 这样写

<!-- select 列表 from dede_arctype ...-->

{dede:channel type="top" row="8"}

<!--大家注意typelink(typeurl都是相同的结果)并不是dede_arctype表的字段,他是在程序计算得到-->

<li><a href="[field:typelink/]" title="手机电影" target="_self">

[field:typename /]

</a></li> 

{/dede:channel}


e.把a67的栏目列表模板文件拷贝到 templates/default 名字,是list_movie.htm

然后做 网站编码,资源引入(css/js), 图片的路径的替换,这个和首页面是一样.

f.把栏目的导航,的首页面改成我们的本地.


练习.




☞ 使用phpmyadmin来查看

http://localhost/ phpmyadmin


☞ 当我们使用dede 或者是以后工作是,可以先使用 httpwatch/firebug 找到请求的PHP 文件,然后,通过 die(“ 输出”),或者使用 file_put_contents()来测试


 isset和  empty的区别是什么
empty 判断一个变量是否为“空”,isset 判断一个变量是否已经设置。
$name=0;
$name='';
$name=null;
$name="0";
$name;
if(empty($name)){
 echo "ok"; //上面五种写法empty($name)都是 true
}
isset 函数是用于检测这个变量是否设置过,在下面两种情况下会认为
isset 为假
①$id; 没有给任何值
②或者就是根本没有定义.
因此我们建议在 判断某个表单是否提交有数据(可能是0 '' ),使用
isset来判断
if(isset($_GET/$_POST['变量']){
echo $_GET['变量']
}else{ echo '没有传递数据'}

 


发表看法

额 本文暂时没人评论 来添加一个吧

Top