[evolvis-commits] r7849: Repared root_parent update in trove_cat?==?UTF-8?Q?↵

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 15:51:29 CET 2011


Author: mirabilos
Date: 2011-02-24 15:51:29 +0100 (Thu, 24 Feb 2011)
New Revision: 7849

Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/www/admin/trove/trove_cat_edit.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/include/trove.php
Log:
Repared root_parent update in trove_cat


Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/admin/trove/trove_cat_edit.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/admin/trove/trove_cat_edit.php	2011-02-24 14:51:28 UTC (rev 7848)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/admin/trove/trove_cat_edit.php	2011-02-24 14:51:29 UTC (rev 7849)
@@ -47,8 +47,15 @@
 		}
 	} 
 	// update full paths now
-	if($newroot!=0)trove_genfullpaths($newroot,trove_getfullname($newroot),$newroot);
-	else trove_genfullpaths($form_trove_cat_id,trove_getfullname($form_trove_cat_id),$form_trove_cat_id);
+	if($newroot!=0) {
+		trove_genfullpaths($newroot,trove_getfullname($newroot),$newroot);
+		trove_updaterootparent($form_trove_cat_id,$newroot);
+	}
+	else {
+		trove_genfullpaths($form_trove_cat_id,trove_getfullname($form_trove_cat_id),$form_trove_cat_id);
+		trove_updaterootparent($form_trove_cat_id,$form_trove_cat_id);
+	}
+	
 
 	session_redirect("/admin/trove/trove_cat_list.php");
 } 

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/include/trove.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/include/trove.php	2011-02-24 14:51:28 UTC (rev 7848)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/include/trove.php	2011-02-24 14:51:29 UTC (rev 7849)
@@ -47,6 +47,34 @@
 	}
 }
 
+// ##################################
+
+/**
+ * trove_updaterootparent() - Regenerates full path entries for $node and all subnodes
+ *
+ * @param		int		The node
+ * @param		int		The root parent node
+ */
+function trove_updaterootparent($mynode,$rootnode) {
+	// first generate own path
+	if($mynode!=$rootnode) $res_update = db_query('UPDATE trove_cat SET root_parent=' .$rootnode. ' WHERE trove_cat_id='.$mynode);
+	else $res_update = db_query('UPDATE trove_cat SET root_parent=0 WHERE trove_cat_id='.$mynode);
+	// now generate paths for all children by recursive call
+	if($mynode!=0)
+	{
+		$res_child = db_query("
+			SELECT trove_cat_id
+			FROM trove_cat
+			WHERE parent='$mynode'
+			AND trove_cat_id!=0;
+		", -1, 0, SYS_DB_TROVE);
+
+		while ($row_child = db_fetch_array($res_child)) {
+			trove_updaterootparent($row_child['trove_cat_id'],$rootnode);
+		}
+	}
+}
+
 // #########################################
 
 /**



More information about the evolvis-commits mailing list