[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