sollte gehen...
Code: Alles auswählen
function strDeleteCategory ($idcat) {
    global $db;
    global $lang;
    global $client;
    global $lang;
    global $cfg;
    // Flag to rebuild the category table
    global $remakeCatTable;
    global $remakeStrTable;
    $remakeCatTable = true;
    $remakeStrTable = true;
    $db2 = new DB_Contenido;
    if (strNextDeeper($idcat)) {
        return "0201";        // category has subcategories
    } else {
        if (strHasArticles($idcat)) {
            return "0202";        // category has arts
        } else {
            /* Delete language dependend part */
            $sql = "DELETE FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='$idcat' AND idlang='$lang'";
            $db->query($sql);
            $sql = "SELECT idtplcfg FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='$idcat' AND idlang='$lang'";
            $db->query($sql);
            while ($db->next_record()) {
                ////// delete entry in 'tpl_conf'-table
                $sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg='".$db->f("idtplcfg")."'";
                $db2->query($sql);
                $sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '".$db->f("idtplcfg")."'";
                $db2->query($sql);
            }
            /* Are there any additional languages? */
            $sql = "SELECT idcatlang FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='$idcat'";
            $db->query($sql);
            if ($db->num_rows() > 0)
            {
		        // more languages found...
		        // delete rights for element
        		cInclude ("includes", "functions.rights.php");
        		deleteRightsForElement("str", $idcat, $lang);
                return;
            }
            $sql = "SELECT * FROM ".$cfg["tab"]["cat"]." WHERE idcat='$idcat'";
            $db->query($sql);
            $db->next_record();
            $tmp_preid  = $db->f("preid");
            $tmp_postid = $db->f("postid");
            ////// update pre cat set new postid
            if ($tmp_preid != 0) {
                $sql = "UPDATE ".$cfg["tab"]["cat"]." SET postid='$tmp_postid' WHERE idcat='$tmp_preid'";
                $db->query($sql);
            }
            ////// update post cat set new preid
            if ($tmp_postid != 0) {
                $sql = "UPDATE ".$cfg["tab"]["cat"]." SET preid='$tmp_preid' WHERE idcat='$tmp_postid'";
                $db->query($sql);
            }
            ////// delete entry in 'cat'-table
            $sql = "DELETE FROM ".$cfg["tab"]["cat"]." WHERE idcat='$idcat' ";
            $db->query($sql);
            $sql = "SELECT idtplcfg FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='$idcat'";
            $db->query($sql);
            while ($db->next_record()) {
                ////// delete entry in 'tpl_conf'-table
                $sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg='".$db->f("idtplcfg")."'";
                $db2->query($sql);
                $sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '".$db->f("idtplcfg")."'";
                $db2->query($sql);
            }
            ////// delete entry in 'cat_lang'-table
            $sql = "DELETE FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='$idcat'";
            $db->query($sql);
            ////// delete entry in 'cat_tree'-table
            $sql = "DELETE FROM ".$cfg["tab"]["cat_tree"]." WHERE idcat='$idcat'";
            $db->query($sql);
        }
        // delete rights for element
        cInclude ("includes", "functions.rights.php");
        deleteRightsForElement("str", $idcat);
    }
}