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);
}
}