/** * 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("\n\t\t\tSELECT trove_cat_id\n\t\t\tFROM trove_cat\n\t\t\tWHERE parent='{$mynode}'\n\t\t\tAND trove_cat_id!=0;\n\t\t", -1, 0, SYS_DB_TROVE); while ($row_child = db_fetch_array($res_child)) { trove_updaterootparent($row_child['trove_cat_id'], $rootnode); } } }
if ($form_trove_cat_id == $form_parent) { exit_error(_("Error: a category can't be the same as its own parent."), db_error()); } else { $res = db_query("\n\t\t\t\tUPDATE trove_cat\n\t\t\t\tSET\tshortname='" . htmlspecialchars($form_shortname) . "',\n\t\t\t\t\tfullname='" . htmlspecialchars($form_fullname) . "',\n\t\t\t\t\tdescription='" . htmlspecialchars($form_description) . "',\n\t\t\t\t\tparent='{$form_parent}',\n\t\t\t\t\tversion='" . date("Ymd", time()) . "01',\n\t\t\t\t\troot_parent='{$newroot}'\n\t\t\t\tWHERE trove_cat_id='{$form_trove_cat_id}'\n\t\t\t"); } if (!$res || db_affected_rows($res) < 1) { exit_error(_('Error In Trove Operation'), db_error()); } } // update full paths now 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); } db_query("update trove_group_link set trove_cat_root=(select root_parent from trove_cat where trove_cat_id=trove_group_link.trove_cat_id)"); session_redirect("/admin/trove/trove_cat_list.php"); } if (getStringFromRequest("delete")) { $form_trove_cat_id = getIntFromRequest('form_trove_cat_id'); if ($form_trove_cat_id == $default_trove_cat) { exit_error(_('Error In Trove Operation, can\'t delete trove category define as default in local.inc')); } $res = db_query("SELECT * FROM trove_cat WHERE parent='{$form_trove_cat_id}'"); if (!$res) { exit_error(_('Error In Trove Operation'), db_error()); } if (db_numrows($res) > 0) { exit_error(_('Can\'t delete, That trove cat has sub categories'), db_error());