• 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;

  • 相关阅读:
    .Net Micro Framework中文讨论组
    .Net Micro Framework 4.0正式开源
    php论坛学习的一个遍历的问题(学习) 简单
    Visual C++ 2008入门经典 第十章标准模板库(二) 简单
    PHP类型转换&&类型强制转换 简单
    Visual C++ 2008入门经典 第九章练习题 简单
    Visual C++ 2008入门经典 第十章标准模板库 简单
    PHP服务端推送技术Long Polling 简单
    Visual C++ 2008入门经典 第九章类的继承和虚函数(三) 简单
    正则表达式学习一 简单
  • 原文地址:https://www.cnblogs.com/lifushan/p/5471821.html
Copyright © 2020-2023  润新知