5.23 站内留言系统——留言一览(收件箱、草稿箱、送件箱、垃圾箱)
大家可以发现,在各种邮件收发软件里,尽管收件箱、草稿箱、送件箱、垃圾箱都显示留言信息,但显示的侧重点有些细微的差别。下图分别所示的是本系统中为收件箱、草稿箱、送件箱、垃圾箱各自提供的界面。
收件箱
送件箱
草稿箱
垃圾箱
要点
由于本系统使用两个表来保存同一件留言信息。收件箱、草稿箱、送件箱、垃圾箱中的留言一览的检索对象表是不同的,如表5-34所示。
表5-34 检索对象一览表
本节除了介绍留言一览的代码外,还介绍了与留言一览有关的删除(删除中包括将状态改变为删除状态,以及物理删除),阅读状态改变(未阅读的留言前会显示不同的图片)等功能。结合代码下面会有详细的说明。
目录
代码
取得分页用的信息,包括当前页码(默认为第一页)等,每页显示10条留言。
getMessagelist方法中检索并设置留言一览。
调用方法getPager后,设置分页链接。页面一览的上下都有分页链接。
留言一览的删除动作。
方法处理具体的删除更新(将删除标志更新为1)。
删除完成,跳转到对应的一览页面(由mode决定)。
一览主菜单的最下部有“删除所有垃圾留言”的链接,此处定义此链接的动作方法。
此方法进行留言的物理删除动作,当然单击“删除所有垃圾留言”链接时,会出现确认信息的。
变量$mode决定一览页面。
默认定义收件箱的检索SQL,收件箱的检索对象表当然是recievemessage。其中,$csql是分页功能用的检索SQL(下同)。
定义草稿箱的检索SQL,送信标志sendedflg为0(未送信)。
定义送件箱的检索SQL,送信标志sendedflg为1(已送信)。
定义垃圾箱一览用的检索SQL,垃圾箱从视图(view)delMessage中检索。
以下对检索结果进行格式化,URL项为留言详细页面的链接,index项用于留言一览的外观控制(奇数、偶数行显示不同的颜色)。
分页功能与个人书签收藏夹页面的分页过程类似,只有取得总件数的检索SQL部分不同,此处不再详细解说,请参照前面章节的解说。
delMessage方法进行删除选择的留言的处理。
首先只有变量$mid非空的才是选择的对象留言。
与上面的留言一览方法getMessagelist相同,根据变量$mode值的不同来判断更新对象表。判断流程也相同。
delAll方法物理删除垃圾箱中的所有留言信息。
大家可以查看5.21节的视图delMessage的定义,垃圾箱中的每一条留言都会有一mode项,标示垃圾留言的来源(表)。
根据来源的不同,删除对应表中的留言信息。