From 7a33d9f6fdca098b75acb8576147474cff5dd2a8 Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Mon, 31 May 2004 19:14:43 +0000 Subject: [PATCH] - Patch #7350 by Mathias: return part a taxonomy tree to a user-defined depth/level. - Updated CHANGELOG.txt. --- CHANGELOG.txt | 1 + modules/comment.module | 2 +- modules/comment/comment.module | 2 +- modules/path.module | 2 +- modules/path/path.module | 2 +- modules/taxonomy.module | 15 +++++++++------ modules/taxonomy/taxonomy.module | 15 +++++++++------ 7 files changed, 23 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 303770c308a9..81cd0fe64f86 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -20,6 +20,7 @@ Drupal x.x.x, xxxx-xx-xx * slightly reorganized navigation menus. - accessibility: * improved the accessibility of the archive module's calendar. + * improved form handling. Drupal 4.4.1, 2004-04-01 ------------------------ diff --git a/modules/comment.module b/modules/comment.module index f51194c0b81c..86ac2d363a53 100644 --- a/modules/comment.module +++ b/modules/comment.module @@ -225,7 +225,7 @@ function comment_reply($pid, $nid) { function comment_validate_form($edit) { global $user; - + /* ** Validate the comment's body. */ diff --git a/modules/comment/comment.module b/modules/comment/comment.module index f51194c0b81c..86ac2d363a53 100644 --- a/modules/comment/comment.module +++ b/modules/comment/comment.module @@ -225,7 +225,7 @@ function comment_reply($pid, $nid) { function comment_validate_form($edit) { global $user; - + /* ** Validate the comment's body. */ diff --git a/modules/path.module b/modules/path.module index a33c524e9b78..5ac3cc9823ac 100644 --- a/modules/path.module +++ b/modules/path.module @@ -303,7 +303,7 @@ function path_save($edit) { } drupal_set_message(t('the alias has been saved.')); - + return path_overview(); } } diff --git a/modules/path/path.module b/modules/path/path.module index a33c524e9b78..5ac3cc9823ac 100644 --- a/modules/path/path.module +++ b/modules/path/path.module @@ -303,7 +303,7 @@ function path_save($edit) { } drupal_set_message(t('the alias has been saved.')); - + return path_overview(); } } diff --git a/modules/taxonomy.module b/modules/taxonomy.module index 99b3460f975f..cb425eb532e7 100644 --- a/modules/taxonomy.module +++ b/modules/taxonomy.module @@ -462,7 +462,7 @@ function taxonomy_get_children($tid, $vid = 0, $key = "tid") { } // hierarchy: get whole family, with tid, parent and depth; useful to show -function taxonomy_get_tree($vocabulary_id, $parent = 0, $depth = -1, $key = "tid") { +function taxonomy_get_tree($vocabulary_id, $parent = 0, $depth = -1, $max_depth = NULL) { static $children, $parents, $terms; $depth++; @@ -479,14 +479,17 @@ function taxonomy_get_tree($vocabulary_id, $parent = 0, $depth = -1, $key = "tid } } + $max_depth = ($max_depth == '') ? count($children[$vocabulary_id]) : $max_depth; if ($children[$vocabulary_id][$parent]) { foreach ($children[$vocabulary_id][$parent] as $child) { - $terms[$vocabulary_id][$child]->depth = $depth; - unset($terms[$vocabulary_id][$child]->parent); // this is not useful as it would show one parent only - $terms[$vocabulary_id][$child]->parents = $parents[$vocabulary_id][$child]; - $tree[] = $terms[$vocabulary_id][$child]; + if ($max_depth > $depth) { + $terms[$vocabulary_id][$child]->depth = $depth; + unset($terms[$vocabulary_id][$child]->parent); // this is not useful as it would show one parent only + $terms[$vocabulary_id][$child]->parents = $parents[$vocabulary_id][$child]; + $tree[] = $terms[$vocabulary_id][$child]; - $tree = array_merge($tree, taxonomy_get_tree($vocabulary_id, $child, $depth)); + $tree = array_merge($tree, taxonomy_get_tree($vocabulary_id, $child, $depth, $max_depth)); + } } } diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index 99b3460f975f..cb425eb532e7 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -462,7 +462,7 @@ function taxonomy_get_children($tid, $vid = 0, $key = "tid") { } // hierarchy: get whole family, with tid, parent and depth; useful to show -function taxonomy_get_tree($vocabulary_id, $parent = 0, $depth = -1, $key = "tid") { +function taxonomy_get_tree($vocabulary_id, $parent = 0, $depth = -1, $max_depth = NULL) { static $children, $parents, $terms; $depth++; @@ -479,14 +479,17 @@ function taxonomy_get_tree($vocabulary_id, $parent = 0, $depth = -1, $key = "tid } } + $max_depth = ($max_depth == '') ? count($children[$vocabulary_id]) : $max_depth; if ($children[$vocabulary_id][$parent]) { foreach ($children[$vocabulary_id][$parent] as $child) { - $terms[$vocabulary_id][$child]->depth = $depth; - unset($terms[$vocabulary_id][$child]->parent); // this is not useful as it would show one parent only - $terms[$vocabulary_id][$child]->parents = $parents[$vocabulary_id][$child]; - $tree[] = $terms[$vocabulary_id][$child]; + if ($max_depth > $depth) { + $terms[$vocabulary_id][$child]->depth = $depth; + unset($terms[$vocabulary_id][$child]->parent); // this is not useful as it would show one parent only + $terms[$vocabulary_id][$child]->parents = $parents[$vocabulary_id][$child]; + $tree[] = $terms[$vocabulary_id][$child]; - $tree = array_merge($tree, taxonomy_get_tree($vocabulary_id, $child, $depth)); + $tree = array_merge($tree, taxonomy_get_tree($vocabulary_id, $child, $depth, $max_depth)); + } } } -- GitLab