30.6.2 查看邮件列表信息

在图30-7中,"Information"按钮将触发information动作,如下所示:


case'information':

display_information($_GET['id']);

break;


图30-8所示的是display_information()函数的输出结果。

30.6.2 查看邮件列表信息 - 图1

图 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表发送的邮件数目。