传智播客 PHP教程 韩顺平 dedecms 项目开发笔记_第1页
传智播客 PHP教程 韩顺平 dedecms 项目开发笔记_第2页
传智播客 PHP教程 韩顺平 dedecms 项目开发笔记_第3页
传智播客 PHP教程 韩顺平 dedecms 项目开发笔记_第4页
传智播客 PHP教程 韩顺平 dedecms 项目开发笔记_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、要求:1. 同一开发环境. WAMP2. 最终完成a67 手机电影网的70%功能.(相当于静态页面已经提供.)3. 学习过程中,我们会分析源码和dede数据库的设计思想-> phpcms 或者 cmstop4. 参加工作有 a. 全新开发 b. 加入一个团队,一起开发. c 数据的设计.学习DEDE的二次开发u cms的基本概念cms(content management system) 内容管理系统 , 主要是管理内容变化不大的数据(新闻,软件,商品,文章, 电影,视频.), u 主流的cmsdedecms 中小型网站,使用在企业级的网站不少见.phpcms 中型网站,对大型网站也很好

2、.cmstop 据说对大型网站支持最好u dede的特点1. 简单、实用,开源(源码.)2. 专门用于个人,中小型门户网站., 企业也可以支持3.  架构PHP+mysql4. 前台是静态页面(访问速度开) ->页面静态化技术.u dede的安装1. 先卸载apache和 mysql, 成功卸载.2. 安装Wamp (该软件包括 apche+mysql+php+phpmyadminj),如果安装后,小的半圆式白色,说明成功!3. 把uploads 文件夹拷贝到 www目录4. 把uploads 改成 dedecms名字5. 浏览器中输入 http:/localhost/dede

3、cms/index.php6. 进入安装界面,记住吧 gd库打开,否则后面登录管理员界面不能成功!7. 指定admin的密码,然后看到如下界面8. 登录到dedecms的后台管理先把 dedecms/dede 改成manage,然后http:/localhost/dedecms/manage9 .当进入到管理页面后,需要做一个安全修改强烈建议data/common.inc.php文件属性设置为644(Linux/Unix)或只读(NT);u DEDE的快速入门需求1: 现在老板要求你做一个文章管理系统,栏目(类别)包括(武侠、爱情、音乐.) ,每个栏目(类别)有对应的文章,文章已经给你准备好了

4、,请你在30分钟搞定该网站,怎么样?1. 先看看dede默认的前台首页面是怎http:/localhost/dedecms/index.php2. 说一个dede 原理3. 我们做栏目1.先进入后台管理->网站栏目管理说明: 当我们增加一个栏目时,实际上在 dede数据库中有一张表 dede_arctype表中增加了一个记录.2. 给每个栏目增加文章后台->核心->普通文章(+)->添加文章 当你添加一篇文章后,其实就在 在 dede_archives 表中添加了记录,同时 在另外一张附加表 dede_addonarticle 中记录额外信息. 生成了静态页面., 并连

5、接3. 生成栏目的静态页后台->生成->更新栏目HTML先在请大家完成如上功能.这里dede设计使用垂直分割的技巧.注意: 如果希望在首页面看到最新的文章,请更新首页面的HTML后台->生成->更新主页面HTML刚才我们说: dede的首页面包括前台是可以是静态页面,dede 支持前台页面静态化,步骤后台->生成->更新主页面HTML在dede开发过程中,目前有四类表关系一览图u 思考题2: 如果现在我们要做的是电子商务网站,卖我们的商品,这时用文章这样的形式来管理还合适吗?> 每个栏目都可以指定一个内容模型什么是内容模型呢? 步骤1:先看看dede是

6、否已经提供了商品的模型,如果提供了,你直接使用,否则自己创建.后台->核心->内容模型管理 看看是否有!有就使用,步骤上面一样.思考: 如果默认给的某个模型字段信息不够,怎么办?->自定义模型.u 需求3: 在添加某个商品的时候,我们希望多一个信息,就是付费方式,还希望多一个邮资信息,我们又该怎样处理?-à 引出修改内容模型的问题步骤:1. 点击 核心->内容模型管理->商品修改->字段管理->添加新字段.说明: 当你操作完毕后,就会在对应的 附件表中增加了一个对应的字段.u 需求4: 请各位同学看看,这里我们有一个问题,就是当你点击武侠,爱

7、情,电器的时候,会找不到对应的页面,这是为什么呢?这个就是直接点击 更新栏目HTML说明: 我们设计网站前台的时候,可以参考这样一个思路: 网站分三级目录首页面->栏目页->内容页u 思考题:1. 栏目(类别)是保存在哪个表中的. 2. 一篇文章,一个商品它们最终是存放在数据库中的哪些表中? u 答: 栏目(类别)是保存在哪个表中的. dede_arctypeu 一篇文章,一个商品它们最终是存放在数据库中的哪些表中?内容是分别放在两张表 ,一张是他的主表,该主表是通用 dede_archives , 附件表 dede_addonXXX. u 在DEDE中增加内容的基本步骤是怎样?(

8、1) 找模型,如果有的话,你可以使用,但是你也可以自定义一些字段,你也全新的创建一个模型,比如: 我现在要搞一个电影网站.增加一个模型的步骤是:a. 点击核心->内容模型管理->增加新模型 , 进入页面后,自己看看就知道怎样添加了说明: 当你增加一个模型后,就会在数据库中增加一个对应的 附件表 dede_addonXXX(2) 添加一个栏目,根据你的实际情况来定, 刷新一把才看到(3) 增加内容 ,根据实际情况输入即可u 说明一下DEDE 的目录结构dedecms/a 目录 用于存放生成的静态页面dedecms/data 目录 用于存放临时文件和缓存文件dedecms/images

9、 目录 用于存放dede自己的图片dedecms/include 目录 核心类库(标签库,操作图像的类,操作数据库的类)dedecms/install 目录,安装信息dedecms/manage 目录,存放后台管理程序dedecms/member 目录,存放会员管理程序dedecms/plus 目录,存放插件程序,和将来你开发的程序模块dedecms/templates 目录,存放dede前台的所有模板文件dedecms/uploads 目录,存放你上传的图片、视频。u 如何去掉广告思路: 因为dede 创建 静态页面的机制,通过模板文件,去创建对应的 静态页面,因此我们思路是,修改这个对应的

10、模板文件.dede的标签问题:1. 如何去查阅标签手册后台->模板->默认模板管理->点一个修改可以看到参考标签u 如何去掉列表表的广告知识点: 如何去找某个栏目的列表页后台->网站栏目管理->找到对应的栏目->更新->高级选项->到 dede/templates/default /下去找到 对应的模板文件,进行修改即可,然后重新更新栏目HTML 每个栏目属于一个模型,那么他们对应的栏目列表模板是同一个,修改后,就同时收到影响.上机练习:n 去掉讨厌的广告(首页面的)n 如何添加自己的广告图片在首页n 去掉讨厌的广告(某个栏目对应列表页)n 去掉

11、讨厌的广告(文章页)文章页: 就是点击某个具体文章/商品/软件 ,所看到的具体内容.u dede标签的讲解1. dede 的标签是在 模板中使用2. 我们可以建立自己的模板文件,来学习各个标签的使用u 具体的标签使用1. 单标签用法dede:标签名 属性=“值” ./举例说明:dede:include filename=”head.htm”/2. 双标签用法dede:标签名 属性=”值”.内容/dede:标签名dede:标签名 属性=”值”.内容/dede举例说明:channel标签的用法.-chanel标签的用法-<!-channel标签类似 select * from dede_ar

12、ctype where ishidden<>1 limit 0,8->dede:channel type='top' row='8'field:typename/dede:channel知识点: 如何去查看channel标签的源码. /dedecms/include/taglib/3. 字段标签的用法举例<!-channel标签类似 SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath From #_arcty

13、pe 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需求: 如果,我们希望把取出的某个字段数据,进行处理,在输入,怎么办?具体: 对取出typename值,进行md5加密具体使用如下:dede:channel type='

14、;top' row='8'<!-field:typename就是说,把查询的字段typename信息放在这个位置 ->field:id/=field:typename/=<!-如何对取出的字段值,使用php函数 me就是表示取出的值->field:typename function='md5(me)'/dede:channel4. 怎样把取出的值进行PHP运行field:字段名 runphp=”yes”这里可以写一些简单的php码(这里的php码一般是比较简单,如果复杂则可以写一个自定义函数来处理.)/field:字段名5. 如何

15、自定义函数首先在 /include/extend.fuc.php 中添加自己的函数/*我们自定义的函数*/function abc($val)return $val."hello,world"看看怎么使用<!-如何在dede中自定义函数,把typename值拼接 hello,world并返回->-field:typename function="abc(me)"/注意: dede的标签是不可以嵌套使用,否则出问题.6. dede标签如何调用全局的变量值用法是dede:global.全局变量名/思想: 很多的项目,为了开发的方便,把一些常用的变

16、量,做成全局,然后使用使用比较方便. , dede的有一个非常重要的文件. include/common.inc.php文件,中有很多全局值.举例:-取出全局变量值dede:global.cfg_soft_lang/ 因为dede的标签是不可以嵌套,所以,如果你要在dede标签中,取出全局变量,则应当这样取field:global.全局变量名/ 等价于 field:global name=全局变量名/举例field:global.cfg_soft_lang/ u 实战阶段-a67手机电影网的开发.前提: 网站的前台静态页面,已经开发好了.1 把dede首页面换成 a67网站首页面.步骤: a.

17、 首先把 templates/defualt 备份一份b. 把templates/defualt 清空c. 把a67 的首页.html 和 images css js 整体拷贝到 templates/default下,d. 首页.html 换成 index.htme. 打开 index.htm 进行网页编码,css,js引入,images图片路径修<meta http-equiv="Content-Type" content="text/html; charset=dede:global.cfg_soft_lang/" /><link

18、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="de

19、de: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>把 “

20、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=" target="_self">首页</a></l

21、i> dede:channel type="top" row="8"<li><a href=" title="手机电影" target="_self">field:typename /</a></li> /dede:channel<li><a href=" target="_blank">专题</a></li></ul>3. a67网的栏目列表页面图示:点击对应的

22、栏目,可以看到对应的栏目列表页面!步骤:a. 请先把不必要的栏目先删除.b. 看看你的电影的模型对应的列表模板文件叫什么名字,然后在 templates/defualt 目录下创建一个空的 list_movie.htm 名字.c. 更新栏目HTML d. 更改首页面的栏目的超链接,让它指向直接的列表静态页这里请大家在 首页面模板中 href 这样写<!- select 列表 from dede_arctype .->dede:channel type="top" row="8"<!-大家注意typelink并不是dede_arctype

23、表的字段,他是在程序计算得到-><li><a href="field:typelink/" title="手机电影" target="_self">field:typename /</a></li> /dede:channele. 把a67的栏目列表模板文件拷贝到 templates/default 名字,是list_movie.htm然后做 网站编码,资源引入(css/js), 图片的路径的替换,这个和首页面是一样.f. 把栏目的导航,的首页面改成我们的本地.练习.u 把首页面的

24、今日更新的数据,从我们自己的dede取出,并显示步骤1. 首先自己在后台添加一些数据(电影、电视剧)2. 在首页面的模板文件中,使用标签dede:arclist 来取出文档3. 具体代码是在 index.htm中写的.上机作出.u a67网的首页面的今天更新滚动内容的自定义特殊的需求,就是,我们希望在取出栏目记录 或者是 内容记录(电影,电视剧), 是更加灵活.->dede:sql举例: 使用 dede:sql语句来完成上述功能基本用法:dede:sql sql=''field:title/dede具体的代码:u a67网的首页的添加我的电视剧,并完成各个栏目对应的列表页

25、请大家完成,当我们点击我的电视剧时,就显示电视剧内容,点击电影就显示电影的内容.步骤如下:1. 找到对应的栏目列表模板文件 list_movie.html .做修改学生的问题:如何 安装自己希望的顺序来显示我们的栏目.思路:dede:channel 如果可以接受我们传递的某个数据,然后,我们再在 channel.lib.classs 文件中进行处理好?dede:channel orderby=”id”处理方法是,可以再channel.lib.class 中进行二次处理/使用调式继续这个问题: 比如我点击我的电影,只取出国语电影,怎么办?)思考: 因为电影列表是通过 dede:arclist 取

26、出,因此,我们必须考虑 dede:arclist进行二次开发?步骤: 1. 找到栏目列表模板文件 list_movie.htm 2. 我们在dede:arclist 标签中自定义一个属性 hspwhere前台调用方法是: list_movie.htm后台的标签库的添加码是:u a67网的主页面和栏目列表的今日更新,点击后进入内容页面思路:找到内容页的模板文件. 后台->核心->栏目列表->点击某个栏目->高级选项发现 电影和电视剧用的文章模板是 article_movie.htm步骤:1. 把 美工提供的 电影内容.htm 拷贝到 article_movie.htm2.

27、 对模板做 网页编码,资源引入,图片的路径进行修改3. 重新生成内容页4. 修改了首页面模板文件 index.htm5. 对article_movie.htm进行处理,取出对应的数据.这里有一个新的知识点,如何在内容页中取出对应记录(电影、电视剧)的字段信息.方法是 dede:field.字段名 / 说明这个字段,可以是主表的字段,也可以是附加表字段具体的代码如下 article_movies.htm上机练习到这里!面包屑导航标签: 使用的方法:dede:field.position/dede:field.title/u a67网的内容页面增加统计浏览量的功能首先,我们看看dede自己怎么做的

28、!<li>浏览量: <script src="dede:field name='phpurl'/count.php?view=yes&aid=dede:field name='id'/&mid=dede:field name='mid'/" type='text/javascript' language="javascript"></script></li>这里我们需要学习一个新的知识点:如何写自己的程序(插件),去操作dede

29、 的后台数据库的表-> 现在我们自己写一个函数,使用Dede 的 DedeSql 类的一个全局变量 $dsql 这里我们学习一招技术,如果在一个静态页面中,有部分数据是 动态,可以自己写一个PHP文件,该文件,一般是放在 /puls/目录下,比如 mysql.php然后在你的某个模板文件中这样取调用:练习题:练习2练习3u 需求,当小手移动到星星的时候,星星根据实际情况变化思路1. 通过jquery技术来实现,看上图步骤:1. article_movie.htm 引入jquery 文件.2. 编写 js 代码,来响应鼠标移动到星星上这个事件.代码:u 需求:取出热门电影思路: 先找到代码

30、,然后修改.list_movie.htm代码:u 需求: 如何取出下载地址(动态改变,当后台变化,下载链接也变化)思路:想: 因为下载地址是有多个,而且是变化,因此没有办法给每个下载地址存放一个字段,我们可以这样想, 我们把所以的下载地址(信息),放入到一个字段中 varchar(1024), 然后使用处理函数来灵活的处理下载地址(信息) 存放到 数据库的附加表 增加一个字段 download, 存放下载地址(信息)下面的格式是我自定义的,在开发中根据项目经理定3gp|魔侠传之唐吉可德01|3gp|魔侠传之唐吉可德03gp|魔侠传之唐吉可德0mp4|魔侠传之唐吉可德0mp4|魔侠传之唐吉可德0

31、步骤:1. 首先在 附件表中增加一个download 字段2. 把下载的整个网页格式,放在一个函数去处理3. 我们把各个格式的电影的下载地址取出,并显示.在我们的函数 format中增加了代码:u 需求是: 当某个用户评分后,在内容页实时的显示评分值思路: 首先,需要给每颗星星绑定click事件,然后在 article_movie.htm 添加代码.后台在 plus/pinfen.php代码如下 :这里有一个思考题:当我们刷新页面的时候,评分值有回到原来的值,怎么办?原因是 因为分值,我们使用的是 换成一段js码,动态的请求数据即可.<script src="dede:fiel

32、d name='phpurl'/pinfen.php?type=getfen&id=dede:field name='id'/" type='text/javascript' language="javascript"></script>对应的pinfen.php 文件的内容是:<?phprequire_once (dirname(_FILE_)."/./include/common.inc.php");/ extract($_GET); /$type=$_GET/

33、这里去完成评分任务/$pfz=$_GET'pfz'/$aid=$_GET'id'if($type="getfen")$sql="SELECT pfz from dede_addonmovie where aid=$id "/file_put_contents("d:/mylog.txt",$sql);$row=$dsql->GetOne($sql); if(is_array($row) echo "document.write('".$row'pfz'.

34、"');rn" else if($type="pinfen")$sql="UPDATE dede_addonmovie set pfz=$pfz where aid=$id"$dsql->ExecuteNoneQuery($sql);/更新成功后,我们需要计算这个评分值.我简化为以最后一个评分为准$sql="SELECT pfz from dede_addonmovie where aid=$id "/取出数据库中的值,这里在工作时,需要看源码或者看手册.$row=$dsql->GetOne($

35、sql);/这里通过 $row0/返回结果.echo $pfz;/echo "hello"/file_put_contents("d:/hsp.log",$sql);u 需求:如何自定义搜索和分页步骤:1. 使用DEDE自带的一个工具,生成一个表单,通过该表单,可以提交你按照什么条件来检索内容.2. 后台->核心->内容模板管理->自定义搜索 , 这里你可以选择自己需要的条件,然后就可以创建一个表单了, 该表单提交后,会把结果通过 自定义搜索结果页模板 显示内容,默认的模板文件叫 advancedsearch.htm3. 先测试下,把d

36、ede自带的模板文件advancedsearch.htm拷贝到 templets/default / 下即可.4. 使用即可只填写文件名,且文件必须在templets/default目录中课后练习题:u 需求: 把检索结果页面,换成a67 提供的检索结果页面. 通用列表页.html, 并完成分页效果.步骤:1. 把通用列表页.html 的内容复制拷贝到 advancesearch.htm2. 修改 advancesearch.htm 的相关设置,网页编码,引入资源,图片的路径. 可以参考index.htm 模板内容4. 把默认的模板文件和检索的响应文件,做成自己.把默认提交的 页面

37、advancedsearch.php 换成 mysearch.php ,先在 plus/ 创建 mysearch.php把默认的检索的模板文件advancesearch.htm,换成 mysearch.htm现在我们编写自己的 mysearch.php ,了解一下 dede 是怎样把结果给你查询并显示.mysearch.php 核心代码:5. 现在我们要在 mysearch.htm 文件中取出 mysearch.php 查询的内容.核心代码是: 针对dede:datalist 标签特殊说明1. 可以再dede:datalist 中嵌入某些dede标签2. dede:global.autoind

38、ex/ 无效u 需求做出我们自己的分页导航这里,我们需要使用另外一个标签,该标签专门用于分页导航 dede:pagelist/在 mysearch.htm 加入该标签在适当的位置加入该标签 u 需求,在实际开发中,我们往往需要对分页导航条,进行自定义。步骤:1. 显示提示信息的文字.2. 对 导航的样式进行二次修改.我们为了不去修改 DataListCp源码, 可以使用面向对象的继承,然后重写一个方法. 在mysearch.phpclass MyDataListCP extends DataListCPfunction GetPageList() 这里有一个知识点补充有时候,你们会看到类似这样

39、的用法,就直接把一个变量来使用,而没有 $_GET名字;extract();该函数可以把数组数据导出到当前符号表,这样就可以直接通过 $索引名 来访问u 如何在检索页面 mysearch.htm 中显示我们的栏目列表思路:传统的方法,就是引入 head.htm 文件.dede:include 不好使用.正确思路因为 mysearch.html 是在 mysearch.php 引入 , 则我们可以在 mysearch.php文件中获取到栏目信息 dede_arctype 获取信息.在mysearch.php 中加入了代码: 这段代码,必须放在 $dlist->Display() 之前执行在

40、mysearch.hml 中代码如何取出这里有话说: <?php echo GetOneTypeUrlA($type);?> 可以得到列表页的url地址,但是要求$type是该栏目dede_arctype 表中取出的完整信息.另外一种写法:u 需求: 在搜索时,带上 typeid,area , year 这三个参数值.思路:localhost/dedecms/plus/mysearch.php?typeid=2&area=大陆&year=2010我们对mysearch.php 进行开发.增加如下代码:.u 思考题,如何把 year 和 area 加入继续开发:上午我

41、们已经有基础.在mysearch.php 增加如下代码:继续思考: 分页操作会出现什么? 在分页时候,我们会丢失查询条件.这里处理,要使用 $dlist 有一个函数,该函数可以保存上次提交的信息.具体的代码如下改进:u 显示自己网站的所有分类检索步骤,先找到位置. 添加如下代码:u 完成点击列表页的某个连接,跳转到对应的检索页面在 list_movie.htm 增加超链接u 需求: 完成列表页小星星的评分功能思考: 1. 把评分值,传递给一个函数,让该函数根据 分值,返回一个image的字符串,并显示.步骤:前台模板文件:后台get_stars函数,在extendd.func.php 增加 g

42、et_stars函数.需求: 当我们点击检索结果的某个电影超链接时,如何跳转到对应的内容页这里,我们来分析.思路: 是否能够使用dede:field.arcurl/步骤: 对 datalistcp.class.php 做了二次改造.在mysearch.htm 中增加<a href="dede:field.arcurl/" target="_blank"><img src="dede:field.litpic/" /></a>知识点: dede提供了一堆帮助类. 这些工具类的函数可以直接使用.现在,我

43、先给大家说说 GetOneArchive(); 的用处. u 需求:完成列表页昨天更新功能思考: 先找到对应的模板页. list_movie.htm,在找到关键代码.这里,我们的代码是需求: 对列表页评分高低排序显示:思路: 模板文件是list_movie.htm ,然后代码.并且对arclist标签源码,修改else if($orderby = 'pfz') $ordersql = " order by addf.pfz $orderWay"u 需求: 如何从外站来采集自己需要的数据我们从 采集数据知识点:1. 了解php 是如何通过Http协议发送请求,

44、抓取数据.(我们先使用工具,再用程序)2. 正则表达式使用工具:步骤:1. 首先找到要抓取的对象(页面 【列表页和内容页】)列表页地址 内容页: 2. 在dede后台创建采集点后台->采集->采集节点管理->创建采集点在 dede/manage/templets/co_add_step0.htm 做修改.$dsql->SetQuery("Select id,typename From #_channeltype where id in(1,2,18) order by id asc ");3. 然后我们创建采集点,先配置基本信息点击 保存并下一步.并

45、设置内容获取规则!真的采集.到采集点管理,点击采集即可.然后倒入到数据库中即可.来完成一个作业:使用DEDE工具来采集老师的首页最新更新的5部电影上机练习.看看如何采集标题:u 如何自定义PHP程序来完成数据采集知识点: 1. HTTP协议 2. 如何同PHP代码来发送HTTP请求和接收HTTP响应(HTML文本) 3. 如何对返回的HTML文本做正则处理 4. 如何保存数据.补充HTTP流程(时序图)现在我们开始写码最后的代码是:Mycatch.php<?phpset_time_limit (100);$fp=fsockopen("",80,$errno,$errs

46、tr,30);if(!$fp)die("连接失败 $errno - $errstr ");/2.构建HTTP协议串发送给, 去抓取 /内容$http_str="GET /list/1/p.2 HTTP/1.1rn"$http_str.="HOST: rn"$http_str.="Connection: closernrn"/发送HTTP请求信息fwrite($fp,$http_str,strlen($http_str);$res_str=''while(!feof($fp)$res_str.=fre

47、ad($fp,1024);fclose($fp);/file_put_contents("d:/my.log",$res_str);/从$res_str取出图片地址,然后再从新抓取图片$reg='/<img alt=""*" title=""*" src="("*)"/'preg_match_all($reg,$res_str,$arr);/*echo "<pre>"var_dump($arr1);echo "</p

48、re>"*/遍历$arr1foreach($arr1 as $val)$fp=fsockopen('',80);/去掉 前面的$part_path=str_replace('$fileinfo=pathinfo($part_path);$http_str="GET $part_path HTTP/1.1rn"$http_str.="HOST: rn"$http_str.="Connection: closernrn"fwrite($fp,$http_str,strlen($http_str);$

49、res_str=''while(!feof($fp)$res_str.=fread($fp,1024);fclose($fp);/header("content-type: image/jpeg");$str_pos=strpos($res_str,"rnrn");$img_str=substr($res_str,$str_pos+12);/保存到文件中$filename=$fileinfo'basename'file_put_contents("./myimages/$filename",$img_s

50、tr);/echo $img_str;/die();/echo $part_path."<br/>"die("ok");/echo "<pre>"/var_dump($arr);/echo "</pre>"u 需求是:开发电影评论模块功能.思路: 1. 要设计新的表.2. 我们需要使用dede支持的开发自定义模块功能. 言外之意,dede 自己就给我们提供非常强大的预定义的模块.(会员管理、会员中心),如果你想看看还有哪些.如果没有你需要的模块,则需要开发.提示: 在工作,尽量找

51、一个成型的功能模块,看看别人如何开发. 我们这里准 参考问答模块来,开发我们自己的影评模块熟悉一下dede的自带的轻量级的MVC框架.听点 : dede MVC ,MVC本身.MVC核心思想( 把数据的输入,数据处理和数据的显示分离,,减少程序的耦合性.)原理示意图:TP/ZF/yii/cake MVCu 学习一下DEDE的 mvc 框架,参考 ask 模块的代码和结构.我们来开发一个非常简单的 雇员管理系统(完成 crud 操作)步骤:1. 在 dedecms的主目录下创建了一个 empmange的模块2. 写码.在empmanage 目录创建 index.php 文件, 该文件就

52、是入口文件.整个代码现在完成,参考的代码是 empmange文件夹所有内容.u 正式开发我们的影评自定义模块先设计数据表(设计表的依据1.根据需求文档, 2. 参考界面)评论表 commentscreate table a67_comments (id int unsigned primary key auto_increment, /*主键*/userid mediumint(8) unsigned not null default 0, /*因为userid 和 dede_member 表 mid是外键关系*/ title varchar(128) not null default 

53、9;', /*标题*/content longtext not null default '',addtime int unsigned not null default 0,movieid mediumint(8) unsigned not null default 0 /*这字段是评论的电影id,和dede_archives 构成关系*/)type=MyISAM default charset=utf8步骤1. 先把模板文件拷贝到 templates/default目录下.完成任务是 当我在 浏览器 http:/localhost/dedecms/pinglun/i

54、ndex.php?c=pinglun&a=listpl&aid=13步骤2: 开发控制器 control/pinglun.php步骤3: 开发 model/mpinglun.php步骤4:处理 templates/default/list_pl.html步骤5: 首先我们在list_pl.html 的详细信息获取,并显示步骤6 : 完成发布评论用户可以针对某个电影发表评论.6.1 首先在list_pl.htm 对表单进行修改 在DEDE系统中,因为自带了强大的会员系统,因此,对于每个模块,入口的文件index.php,可以通过创建一个用户即可.require_once(DEDE

55、INC."/memberlogin.class.php");$cfg_ml =new MemberLogin(); /如果用户登录过,dede会把该用户的信息放入到session中.New MemberLogin()对象就把登录用户信息保存 Dede给我们提供了一个 函数 ShowMsg();/* * 短消息函数,可以在某个动作处理后友好的提示信息 * * param string $msg 消息提示信息 * param string $gourl 跳转地址 * param int $onlymsg 仅显示信息 * param int $limittime 限制时间,安装毫秒 * return void */function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)这个函数的主要应用两种情况.1. 显示信息然后返回原来的页面2. 显示信息到另一个页面(如果是外网 如果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论