一、在搜索页面完成栏目的取出
思路:取出的数据是顶级栏目,dede_arctype表(栏目表),条件是:父id等于0
reid=0
要注意:我们要取出的数据是栏目的名称和链接,但是链接信息是通过channel标签计算出来,没有存储表的字段里面,因此要分析channel标签。通过分析发现如下。
最后输出的代码:
把取出的栏目数据给遍历到静态页面中。
二、根据电影的名称或者电影名称的关键字取出对应的电影
思路:分析,是一个表单,表单提交到哪里,使用哪种方式提交。
修改搜索的表单:
在sou.php页面中,添加搜索的条件:
三、完成head.htm模板页面中根据电影名称搜索。
修改完成表单后,要重新生成静态页面,(主页和栏目页面和内容详情页面的模板)
四、在栏目页面中,根据年代进行搜索,跳转到搜索页面。
思路:把年代的信息给取出来,遍历到栏目页面中,要给每一个年代添加链接,链接到搜索页面。
如何写 sql语句,完成年代内容的输出。
select distinct niandai from dede_addonmovie order by niandai;
修改完成后,要重新生成静态页面
五、完成评论页面的创建
1、把模板中“所有评论页.html”页面 拷贝a67目录下面,并改名为pinglun.htm页面,
并修改里面的 样式和图片的路径。
2、在plus目录下面新建一个pinglun.php的页面,
3、修改内容详情页面的模板文件,给“我要评论”按钮添加链接。
代码如下:
4、在pinglun.php页面完成评论的准备工作;
(1)根据接收的aid取出电影详情内容
(2)把取出的数据给遍历到静态页面。
5、会员模块的开启,
会员模块在默认情况下,是关闭的。需要后台开启
进入后台,开启会员功能
再次进行会员模块,完成一个用户的注册,
管理员进入后台,让注册的用户处于正常使用状态。
单击修改后,在资料状况部分改为正常使用状态。
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)修改提交的表单:
(3)按钮绑定事件:
(4)添加评论的php代码:
8、在评论页面,如果用户没有登录,则评论标题和评论内容,和提交按钮处于禁用状态,
如果用户登录,则显示登录的用户。
思路:验证用户是否登录。
在加载评论页面时,就触发验证用户是否登陆:
通过查询会员的表,发现userid字段记录用户的名称
取出是用户的名称是:memberlogin.class.php类里面的M_LoginID属性
在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页面中的代码:
二、完成在评论页面,取出对当前电影的评论
思路:取出数据有评论用户的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
把取出的评论添加 到静态页面中来。
修改一下提交评论的ajax
三、对电影的评论页面进行优化,
原因:取出电影时我们查询了数据库,在并发量比较大的情况下,会给服务器带来一定的压力。需要一定的优化。
优化的目标:就是少查询数据库。
采用的方式:把发布评论的页面做成一个静态页面。
在plus目录下面新建一个目录(cache),用于存储生成的静态页面。
四、在电影的内容详情页面中,取出当前电影的评论:
思路:使用ajax来完成。
(1)在内容详情页面中,添加 ajax取出数据的代码:
(2)在plus目录下面新建一个getpinglun.php的页面。
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;