Пример #1
0
/**
 * 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);
        }
    }
}
Пример #2
0
        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());