30.6.2 查看邮件列表信息
在图30-7中,"Information"按钮将触发information动作,如下所示:
case'information':
display_information($_GET['id']);
break;
图30-8所示的是display_information()函数的输出结果。
图 30-8 display_information()函数显示邮件列表的介绍
该函数将显示特定邮件列表的常规信息,此外,还列出了该列表的订阅人数和将要发送给该列表上用户,以及在存档文件(稍后将进一步讨论)中可用的新闻信件数目。该函数的代码如程序清单30-9所示。
程序清单30-9 output_fns.php库中的display_information()函数——显示邮件列表信息的函数
//diplay stored information about each list
function display_information($listid){
if(!$listid){
return false;}
$info=load_list_info($listid);
if($info){
echo"<h2>".pretty($info[listname])."</h2>
<p>".pretty($info[blurb])."
</p><p>Number of subscribers:".$info[subscribers]."
</p><p>Number of messages in archive:"
.$info[archive]."</p>";
}
}
display_information()函数调用其他两个函数来协助完成存档Web任务:load_list_info()函数和pretty()函数。load_list_info()函数实际上是从数据库中获取数据。而pretty()函数只是通过去除数据中的斜杠,并且执行一些替换操作来格式化来自数据库中的数据,例如,将换行转变成HTML的行标记等。
下面,我们简单介绍load_list_info()函数。该函数保存在mlm_fns.php函数库中。代码如程序清单30-10所示。
程序清单30-10 mlm_fns.php库中的load_list_info()函数——该函数建立邮件列表信息的数组
function load_list_info($listid){
if(!$listid){
return false;
}
if(!($conn=db_connect())){
return false;
}
$query="select listname,blurb from lists where listid=
'".$listid."'";
$result=$conn->query($query);
if(!$result){
echo"<p>Cannot retrieve this list.</p>";
return false;
}
$info=$result->fetch_assoc();
$query="select count(*)from sub_lists where listid=
'".$listid."'";
$result=$conn->query($query);
if($result){
$row=$result->fetch_array();
$info['subscribers']=$row[0];
}
$query="select count(*)from mail where listid='".$listid."'
and status='SENT'";
$result=$conn->query($query);
if($result){
$row=$result->fetch_array();
$info['archive']=$row[0];
}
return$info;
}
该函数将运行3个数据库查询语句,分别用来收集lists表中邮件列表的名称和简介,以及sub_lists表中订阅者的数目和由mail表发送的邮件数目。