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类的实例,它代表该树的根节点。它实际上并不是一篇文章,但它相当于所有第一级文章的父文章,而事实上第一级文章是没有父节点的。树建立以后,我们将调用显示函数来显示文章列表。