",
$parent_group_end_string = "\n",
$child_start_string = '
',
$child_end_string = "\n",
$parent_special_text = '',
$spacer_string = '',
$spacer_multiplier = 1,
$css_parent_class = '',
$for_split = false; //ʵֲɸ˵.....
function zen_SiteMapTree($load_from_database = true) {
global $languages_id, $db;
$this->data = array();
$categories_query = "select c.categories_id, cd.categories_name, c.parent_id
from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
where c.categories_id = cd.categories_id
and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and c.categories_status != '0'
order by c.parent_id, c.sort_order, cd.categories_name";
$categories = $db->Execute($categories_query);
while (!$categories->EOF) {
$this->data[$categories->fields['parent_id']][$categories->fields['categories_id']] = array('name' => $categories->fields['categories_name'], 'count' => 0);
$categories->MoveNext();
}
}
function buildBranch($parent_id, $level = 0, $parent_link = '') {
$result = $this->parent_group_start_string;
if (isset($this->data[$parent_id])) {
foreach ($this->data[$parent_id] as $category_id => $category) {
$category_link = $parent_link . $category_id;
$result .= $this->child_start_string;
if (isset($this->data[$category_id])) {
$result .= $this->parent_start_string;
}
if ($level == 0) {
$result .= $this->root_start_string;
}
if($this->for_split){
$split_text = '-->split<--';
}else{
$split_text = '';
}
//Ŀ¼Ŀ¼ʾһĿ¼Ǹ
if (isset($this->data[$category_id])) {
$result .= str_repeat($this->spacer_string, $this->spacer_multiplier * $level) .$split_text.'';
}else{
$result .= str_repeat($this->spacer_string, $this->spacer_multiplier * $level) .$split_text.'';
}
$result .= $category['name'];
$result .= '';
if ($level == 0) {
$result .= $this->root_end_string;
}
if (isset($this->data[$category_id])) {
$result .= $this->parent_end_string;
}
// $result .= $this->child_end_string;
if (isset($this->data[$category_id]) && (($this->max_level == '0') || ($this->max_level > $level+1))) {
$result .= $this->buildBranch($category_id, $level+1, $category_link . '_');
}
$result .= $this->child_end_string;
}
}
$result .= $this->parent_group_end_string;
return $result;
}
function buildTree() {
return $this->buildBranch($this->root_category_id);
}
}
?>