31.5.2 显示文章
下面,我们来了解display_tree()函数,如程序清单31-4所示。
程序清单31-4 output_fns.php函数库中的display_tree()函数——建立树形结构的根节点
function display_tree($expanded,$row=0,$start=0){
//display the tree view of conversations
global$table_width;
echo"<table width=\"".$table_width."\">";
//see if we are displaying the whole list or a sublist
if($start>0){
$sublist=true;
}else{
$sublist=false;
}
//construct tree structure to represent conversation summary
$tree=new treenode($start,'','','',1,true,-1,$expanded,
$sublist);
//tell tree to display itself
$tree->display($row,$sublist);
echo"</table>";
}
该函数的主要作用是创建树形结构的根节点。我们用它来显示整个索引,并在view_post.php页面上建立回复文章的子树。可以看到,它带有3个参数。第1个参数是$expanded,它是要以展开形式显示的文章列表。第2个参数是$row,是一个行号,用来计算在列表中该行的交替颜色。
第3个参数是$start,告知函数在哪里开始显示文章。这是将被创建并显示的树的根节点的postid。如果我们打算显示所有文章,如主页面一样,该变量将是0,表示显示所有没有父节点的文章。如果该参数是0,我们将$sublist变量设为false,并显示整个树。
如果该参数大于0,我们将它作为该树的根节点来显示,将$sublist变量设为true,可以建立和显示该树的一部分(我们将在view_post.php脚本程序中用到它)。
该函数最重要的一个功能就是初始化一个treenode类的实例,它代表该树的根节点。它实际上并不是一篇文章,但它相当于所有第一级文章的父文章,而事实上第一级文章是没有父节点的。树建立以后,我们将调用显示函数来显示文章列表。