8.4 发贴者页面
供访问者使用的页面有讨论主题页面content.php和回复讨论页面bbs_reply.php,下面就开始这两个页面的制作。
8.4.1 讨论主题
讨论主题内容页面content.php是实现讨论主题的详细内容页面。这个页面会显示讨论主题的详细内容与所有回复者的回复内容,其静态页面设计如图8-41所示。
图8-41 讨论主题内容页面设计效果图
详细的操作步骤如下:
01 在content.php这个页面中,要同时显示讨论主题与回复主题的内容,因此需要把两个记录集进行合并,一次取得这两个数据表中的所有字段,根据主题页面传送过来的URL参数bbs_ID进行筛选。
02 单击“应用程序”面板群组中“绑定”面板上的按钮,在弹出的下拉菜单中选择“记录集(查询)”选项,在打开的“记录集”对话框中单击“高级”按钮,进入记录集高级设定的对话框,将现有的SQL语句改成如下的SQL语句,如图8-42所示。
图8-42 改写SQL语句
注意
同样用LEFT OUTER JOIN关联bbs_main和bbs_ref中的字段,取得两个数据表中的相关数据。并且用WHERE语句,筛选bbs_main数据表中的bbs_ID字段值等于$bbs_ID变量值。
03 上图中设置了一个名为$bbs_ID的变量值,即是首页传递过来的参数,因此在该页自动生成的PHP代码中的第一行加入如下的变量赋值。
04 在设定完记录集绑定后,先把记录集detail中的字段插入到页面上,再分别插入两个图像占位符,两个图像占位符分别绑定发布人性别形象bbs_sex字段和回复人性别形象bbs_ref_sex字段,其结果如图8-43所示。
图8-43 detail中的字段插入
05 选择主题表格中的文字“电子邮件”,然后单击“属性”面板中的“链接”文本框后面的“浏览文件”按钮,打开“选择文件”对话框,在该对话框中选中“数据源”单选按钮,然后在“域”列表框中选择“记录集(detail)”组中的bbs_email字段,并且在URL链接前面加上“mailto:”,如图8-44所示。
图8-44 设置主题栏中的email的链接
06 选择主题表格中的文字“主页”,单击“属性”面板中的“链接”文本框后面的“浏览文件”按钮,打开“选择文件”对话框,在该对话框中选中“数据源”单选按钮,然后在“域”列表框中选择“记录集(detail)”组中的bbs_url字段,并且在URL链接前面加上“http://”,如图8-45所示。
图8-45 设置主题栏中的url链接
07 用第5、6步骤中的方法,设置“电子邮件”和“主页”的链接。一个是“记录集(detail)”中的bbs_ref_email字段,另一个是“记录集(detail)”中的bbs_ref_URL字段,如图8-46和8-47所示。
图8-46 设置回复栏中的email的链接
图8-47 设置回复栏中的url链接
08 单击“确定”按钮,完成数据源的绑定设置,在content.php页面中有两个链接图示“管理”与“发表话题”,必须设定其链接网页,如表8-7所示。
表8-7 按钮与链接页面表
09 选择文字“回复主题”,在“属性”面板中找到建立链接的部分,并单击“浏览文件”图标,在弹出的对话框中选择用来显示详细记录信息的页面content.php,设置如图8-48所示。
图8-48 选择链接文件
10 单击“参数”按钮,设置超级链接要附带的URL参数的名称与值。将参数名称命名为bbs_ID,设置如图8-49所示。
图8-49 “参数”对话框
11 加入“服务器行为”中“重复区域”的设定,单击content.php页面中要重复的表格,如图8-50所示。
图8-50 选择要重复的表格
12 单击“应用程序”面板群组中的“服务器行为”标签上的按钮,在弹出的下拉菜单中选择“重复区域”选项,在打开“重复区域”对话框中设置显示的记录数为5条记录,如图8-51所示。单击“确定”按钮回到编辑页面,会发现先前所选取的区域左上角出现了一个“重复”的灰色标签,这表示已经完成设置。
图8-51 选择一次可以显示的记录数
13 插入“记录集导航条”功能,单击工具按钮,在打开的“记录集导航条”对话框中,选取要导航条的记录集以及导航条的显示方式,然后单击“确定”按钮回到编辑页面,会发现页面出现该记录集的导航条,如图8-52所示。
图8-52 添加“记录集导航条”
14 选取记录集有数据时要显示的数据表格,如图8-53所示。
图8-53 选择要显示的一行
15 单击“服务器行为”面板上的按钮,在弹出的下拉菜单中选择“显示区域”→“如果记录集不为空则显示区域”选项,在打开的“如果记录集不为空则显示区域”对话框中,单击“确定”按钮回到编辑页面,会发现先前所选取要显示的区域左上角出现了一个“如果符合此条件则显示…”的灰色卷标,这表示已经完成设置,如图8-54所示。
图8-54 完成设置后的效果
16 选择没有回复数据时要显示的文字“目前没有回复”,根据前面的步骤,将下面区域设定成“如果记录集为空则显示区域”,如图8-55所示。
图8-55 选择没有数据时的显示
8.4.2 设置访问
在BBS论坛系统主页面中设置了文章阅读统计功能,当访问者点击标题进入查看内容时,阅读统计数目就要增加一次。其主要的方法是更新数据表bbs_main里的bbs_hits字段来实现。
详细操作步骤如下:
01 实现的方法很简单,打开content.php页面,在代码的第50行加入一行更新的SQL语句:
代码说明如下:
02 加入的代码位置如图8-56所示。
图8-56 代码加入的位置
8.4.3 新增讨论
新增讨论主题页面bbs_add.php的功能是将页面的表单数据新增到站点的bbs_main数据表中,页面设计如图8-57所示。
图8-57 新增讨论主题页面效果图
详细操作步骤如下:
01 在bbs_add.php页面设计中,表单form1中文本域和文本区域设置如表8-8所示。这里要注意“性别形象”和“心情”的单选按钮都要在属性面板中定义其值。
表8-8 表单form1中的文本域和文本区域设置方法表
02 在bbs_add.php编辑页面,单击“服务器行为”面板标签上的按钮,在弹出的下拉菜单中选择“插入记录”选项,在“插入记录”的设定对话框中设置如下:
● 从“连接”下拉列表框中选择bbs作为数据源连接对象。
● 从“插入表格”下拉列表框中选择bbs_main作为使用的数据库表对象。
● 在“插入后,转到”文本框中设置记录成功添加到表bbs_main,然后再转到index.php网页。
● 在“列”列表框中,将网页中的表单对象和数据库中表bbs_main中的字段一一对应起来。
设置完成后该对话框如图8-58所示。
图8-58 设定“插入记录”
03 选择表单,执行菜单栏上“窗口”→“行为”命令,打开“行为”面板,单击“行为”面板中的按钮,在弹出的下拉菜单中,选择“检查表单”选项,打开“检查表单”对话框,设置“值”和“可接受”范围,如bbs_email的“值”设置为“必需的”、“可接受”为“电子邮件地址”,如图8-59所示。
图8-59 “检查表单”对话框
04 单击“确定”按钮,回到编辑页面,完成bbs_add.php页面插入记录的设置。
05 按下F12键至浏览器测试一下。首先打开bbs_add.php页面再填写表单,填写表单资料如图8-60所示。
图8-60 填写资料
06 填写资料完了以后,单击“确定提交”按钮,将此资料发送到bbs_main数据表中。页面将返回到BBS讨论系统主页面index.php(如图8-61所示),表示发布新主题成功。
图8-61 发表新主题成功
8.4.4 回复讨论
回复讨论主题页面bbs_reply.php的设计与讨论主题内容页面的制作相似,回复主题是将表单中填写的数据插入到bbs_ref数据表中,页面设计效果如图8-62所示。
图8-62 回复讨论主题页面设计
01 由于在讨论主题内容页面content.php中,设定会有传递参数bbs_ID(主题编号)传递到这一页面,因此必须先将这个参数绑定到一个命名为bbs_main_ID的隐藏域中。在页面上插入一下隐藏域,并命名为bbs_main_ID,定义其值,如图8-63所示。
图8-63 设置隐藏域bbs_main_ID的值
02 然后再单击按钮,切换到代码窗口,将如下的代码加入到第一行:
插入后如图8-64所示。
图8-64 插入接收变量的程序
03 再插入一个隐藏字段bbs_ref_time,绑定为当时的时间:
属性面板的设置如图8-65所示。
图8-65 设置隐藏区域值
04 在bbs_reply.php编辑页面,单击“应用程序”面板群组“服务器行为”面板标签中的按钮,在弹出的下拉菜单中选择“插入记录”选项,在“插入记录”的设定对话框中设置如下:
● 从“连接”下拉列表框中选择bbs作为数据源连接对象。
● 从“插入表格”下拉列表框中选择bbs_ref作为使用的数据库表对象。
● 在“插入后,转到”文本框中设置记录成功添加到表bbs_ref,然后再转到index.php网页。
● 在“列”列表框中,将表单对象和数据库中表bbs_ref中的字段一一对应起来。
设置完成后该对话框如图8-66所示。
图8-66 “插入记录”对话框
05 选择表单,执行菜单栏“窗口”→“行为”命令,打开“行为”面板,单击“行为”面板中的按钮,在弹出的下拉菜单中选择“检查表单”选项,打开“检查表单”对话框,设置文本域的“值”都为“必需的”、“可接受”为“任何东西”,如图8-67所示。
图8-67 “检查表单”对话框
06 单击“确定”按钮,回到编辑页面,这样就完成bbs_reply.php页面插入记录的设计了。
07 按下F12键至浏览器测试。首先打开首页面,选择其中任一个讨论主题,进入content.php页面,在content.php页面单击“回复主题”转到回复讨论主题bbs_reply.php页面,在bbs_reply.php页面填写表单,填写表单资料如图8-68所示。
图8-68 填写表单资料
08 填写资料完了以后,单击“确定提交”按钮,将此资料发送到bbs_ref数据表中。页面将返回到BBS讨论区系统内容页面index.php,在单击主题后可以看到回复如图8-69所示,表示回复主题成功。
图8-69 回复主题成功