20150401--Dede+搜索页面,评论

image

一、在搜索页面完成栏目的取出

wps404A.tmp

思路:取出的数据是顶级栏目,dede_arctype表(栏目表),条件是:父id等于0

reid=0

要注意:我们要取出的数据是栏目的名称和链接,但是链接信息是通过channel标签计算出来,没有存储表的字段里面,因此要分析channel标签。通过分析发现如下。

wps405B.tmpwps405C.tmpwps408C.tmpwps409C.tmp

wps40AD.tmp

最后输出的代码:

wps40BE.tmp

把取出的栏目数据给遍历到静态页面中。

wps414B.tmp

二、根据电影的名称或者电影名称的关键字取出对应的电影

wps414C.tmp

思路:分析,是一个表单,表单提交到哪里,使用哪种方式提交。

修改搜索的表单:

wps415D.tmp

在sou.php页面中,添加搜索的条件:

wps417D.tmp

三、完成head.htm模板页面中根据电影名称搜索。

wps419D.tmp

修改完成表单后,要重新生成静态页面,(主页和栏目页面和内容详情页面的模板)

四、在栏目页面中,根据年代进行搜索,跳转到搜索页面。

wps419E.tmp

思路:把年代的信息给取出来,遍历到栏目页面中,要给每一个年代添加链接,链接到搜索页面。

如何写 sql语句,完成年代内容的输出。

select distinct niandai from dede_addonmovie order by niandai;

wps41AF.tmp

修改完成后,要重新生成静态页面

五、完成评论页面的创建

1、把模板中“所有评论页.html”页面 拷贝a67目录下面,并改名为pinglun.htm页面,

并修改里面的 样式和图片的路径。

2、在plus目录下面新建一个pinglun.php的页面,

3、修改内容详情页面的模板文件,给“我要评论”按钮添加链接。

wps41DF.tmp

代码如下:

wps41F0.tmp

4、在pinglun.php页面完成评论的准备工作;

(1)根据接收的aid取出电影详情内容

wps4210.tmp

(2)把取出的数据给遍历到静态页面。

wps4220.tmp

5、会员模块的开启,

会员模块在默认情况下,是关闭的。需要后台开启

wps4231.tmp

进入后台,开启会员功能

wps4271.tmp

再次进行会员模块,完成一个用户的注册,

wps4281.tmp

管理员进入后台,让注册的用户处于正常使用状态。

wps4292.tmpwps4293.tmpwps42C3.tmp

单击修改后,在资料状况部分改为正常使用状态。

wps42F3.tmp

6、完成评论的建表工作:

create table dede_pinglun(

    id  smallint  primary key auto_increment,

    title varchar(32) not null comment '评论的标题',

    content varchar(256) not null comment '评论的内容',

    movie_id int not null comment '评论电影的id',

    user_id smallint not null comment '评论用户的id',

    add_time int not null comment '评论的时间'

);

7、在pinglun.htm页面中,完成评论提交

(1)引入jquery.js

(2)修改提交的表单:

wps4303.tmp

(3)按钮绑定事件:

wps4372.tmp

(4)添加评论的php代码:

wps4382.tmp

8、在评论页面,如果用户没有登录,则评论标题和评论内容,和提交按钮处于禁用状态,

如果用户登录,则显示登录的用户。

思路:验证用户是否登录。

在加载评论页面时,就触发验证用户是否登陆:

通过查询会员的表,发现userid字段记录用户的名称

wps4393.tmp

取出是用户的名称是:memberlogin.class.php类里面的M_LoginID属性

wps4401.tmp

在pignlun.html页面中的代码:如下:

$.ajax({

            type:'get',

           // dataType:'json',

            url:'<?php echo $cfg_plus_dir;?>/pinglun.php?act=islogin',

            success:function(msg){

                //如果用户没有登录,则返回

                if(msg==-1){

                        //表示用户没有登录。

                        //如果用户没有登录,则让评论的输入框变成禁用状态,

                        $('input[name=title]').attr('disabled','disabled');

                        $("textarea[name=content]").attr('disabled','disabled');

                        $("#submitbutton1").attr('disabled','disabled');

                        var str = '<a href="http://www.itdede.com/member/login.php" target="_blank">登录</a> | <a href="http://www.itdede.com/member/index_do.php?fmdo=user&dopost=regnew" target="_blank">注册</a>';                       

                        $("#islogin").html(str);

                }else{

                       //

                    var str = '用户名称:'+msg+' |<a href="http://www.itdede.com/member/index_do.php?fmdo=login&dopost=exit#" target="_blank">退出</a>';                       

                        $("#islogin").html(str);

                }

            }

      });

在pinglun.php页面中的代码:

wps44BE.tmp

二、完成在评论页面,取出对当前电影的评论

wps45C8.tmp

思路:取出数据有评论用户的login,评论用户的名称,评论的标题和评论的内容。

确定sql的如何写:

通过分析用户表里面,用户的名称是userid字段,用户的头像是face字段。

查询的表:dede_pinglun表和 dede_member表,两张表的关系是评论表的user_id和会员表单mid相关联。

select a.title,a.content,b.userid,b.face from dede_pinglun a left join dede_member b on a.user_id=b.mid where a.movie_id=$movie_id  order by id desc

wps4617.tmp

把取出的评论添加 到静态页面中来。

wps4628.tmp

修改一下提交评论的ajax

wps4629.tmpwps463A.tmpwps4679.tmp

三、对电影的评论页面进行优化,

原因:取出电影时我们查询了数据库,在并发量比较大的情况下,会给服务器带来一定的压力。需要一定的优化。

优化的目标:就是少查询数据库。

采用的方式:把发布评论的页面做成一个静态页面。

在plus目录下面新建一个目录(cache),用于存储生成的静态页面。

wps468A.tmp

wps469A.tmp

四、在电影的内容详情页面中,取出当前电影的评论:

思路:使用ajax来完成。

(1)在内容详情页面中,添加 ajax取出数据的代码:

wps4747.tmp

(2)在plus目录下面新建一个getpinglun.php的页面。

wps4758.tmp

wps4769.tmp

require (DEDEINC.’/arc.archives.class.php’)

$arc = new Archives($movie_id);

$arc->ParAddTable();

$arc>Fields[‘title’]

require DEDEINC.’/memberlogin.class.php’

$mem=new MemberLogin();

$userid = $mem->M_ID;

原文地址:https://www.cnblogs.com/lifushan/p/5471821.html