nicht alle tabellen werden upgedatet
nicht alle tabellen werden upgedatet
contenido 4.4.1
mir ist aufgefallen das beim löschen einzelner kategorien die tabelle
con_cat_tree die nicht mehr benötigten werte weiterhin speichert...
das selbe gilt an sich beim löschen der artikel, dass die entsprechenden einträge in
con_container
con_container_conf
beibehalten werden...
(das würde für mich nur den sinn ergeben, wenn es eine art papierkorb funktion geben würde)
mir ist aufgefallen das beim löschen einzelner kategorien die tabelle
con_cat_tree die nicht mehr benötigten werte weiterhin speichert...
das selbe gilt an sich beim löschen der artikel, dass die entsprechenden einträge in
con_container
con_container_conf
beibehalten werden...
(das würde für mich nur den sinn ergeben, wenn es eine art papierkorb funktion geben würde)
wäre möglich... weiss ich jetzt auch nicht mehr...
lass es mal offen
lass es mal offen
*** make your own tools (wishlist :: thx)
hab das gerade mit dem cvs_head kontrolliert
problem besteht noch immer
wenn eine kategorie(oder artikel) ein template zugewiesen hat und man löscht diese, beleiben die einträge con_container_conf erhalten....
problem besteht noch immer
wenn eine kategorie(oder artikel) ein template zugewiesen hat und man löscht diese, beleiben die einträge con_container_conf erhalten....
*** make your own tools (wishlist :: thx)
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
so, ich habe mir das mal etwas genauer angesehen
meiner Meinung nach müsste folgendes in der Funktion conDeleteArt angefügt werden:
Für die Funktion strDeleteCategory ersetzen:
wird zu
meiner Meinung nach müsste folgendes in der Funktion conDeleteArt angefügt werden:
Code: Alles auswählen
$sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '".$tmp_idtplcfg."'";
$db->query($sql);
Code: Alles auswählen
$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")."'";
$db->query($sql);
}
Code: Alles auswählen
$db2 = new DB_Contenido;
$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);
}
bei conDeleteArt glaube ich muss man nur aufpassen das die idtplcfg nicht 0 ist...
sicher bin ich mir da aber nicht...
sicher bin ich mir da aber nicht...
*** make your own tools (wishlist :: thx)
nein anders
in con_art_lang steht zeitweise bei idtplcfg 0 drinnen
dann wird die konfiguration der kategorie verwendet...
ich hab nur gemeint wenn 0 drinnen steht ist ein löschen nicht nötig...
in con_art_lang steht zeitweise bei idtplcfg 0 drinnen
dann wird die konfiguration der kategorie verwendet...
ich hab nur gemeint wenn 0 drinnen steht ist ein löschen nicht nötig...
*** make your own tools (wishlist :: thx)
hab mir den code des cvs angesehen...
ja ist mir schon klar warum die einträge erhalten bleiben...
hier die gefixte version
ja ist mir schon klar warum die einträge erhalten bleiben...
hier die gefixte version
Code: Alles auswählen
/**
* Delete an Article
*
* @param int $idart Article Id
*
* @author Olaf Niemann <olaf.niemann@4fb-de>
* Jan Lengowski <jan.lengowski@4fb.de>
*
* @copyright four for business AG <www.4fb.de>
*/
function conDeleteart($idart)
{
global $db, $cfg, $lang;
/* Delete current language */
$sql = "SELECT idartlang, idtplcfg FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '$idart' AND idlang='$lang'";
$db->query($sql);
$db->next_record();
$idartlang = $db->f("idartlang");
$idtplcfg = $db->f("idtplcfg");
/* Fetch idcat */
$sql = "SELECT idcat FROM ".$cfg["tab"]["cat_art"]." WHERE idart = '$idart'";
$db->query($sql);
$db->next_record();
$idcat = $db->f("idcat");
/* Remove startidartlang */
if (isStartArticle($idartlang, $idcat, $lang))
{
$sql = "UPDATE ".$cfg["tab"]["cat_lang"]." SET startidartlang='0' WHERE idcat='$idcat' AND idlang='$lang'";
$db->query($sql);
}
$sql = "DELETE FROM ".$cfg["tab"]["content"]." WHERE idartlang = '".$idartlang."'";
$db->query($sql);
$sql = "DELETE FROM ".$cfg["tab"]["art_lang"]." WHERE idartlang = '".$idartlang."'";
$db->query($sql);
if ($idtplcfg != "0") {
$sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '".$idtplcfg."'";
$db->query($sql);
$sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg = '".$idtplcfg."'";
$db->query($sql);
}
/* Check if there are remaining languages */
$sql = "SELECT idartlang FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '$idart'";
$db->query($sql);
if ($db->num_rows() > 0)
{
return;
}
$sql = "SELECT * FROM ".$cfg["tab"]["cat_art"]." WHERE idart = '".$idart."'";
$db->query($sql);
while ( $db->next_record() ) {
$idcatart[] = $db->f("idcatart");
}
##################################################
# set keywords
$keycode[1][1]="";
saveKeywordsForArt($keycode,$idart,"auto",$lang);
saveKeywordsForArt($keycode,$idart,"self",$lang);
if ( is_array($idcatart) ) {
foreach ($idcatart AS $value) {
//********* delete from code table **********
$sql = "DELETE FROM ".$cfg["tab"]["code"]." WHERE idcatart = '".$value."'";
$db->query($sql);
//****** delete from 'stat'-table ************
$sql = "DELETE FROM ".$cfg["tab"]["stat"]." WHERE idcatart = '".$value."'";
$db->query($sql);
}
}
$sql = "SELECT * FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '".$idart."'";
$db->query($sql);
while ( $db->next_record() ) {
$idartlang[] = $db->f("idartlang");
}
if ( is_array($idartlang) ) {
foreach ($idartlang AS $value) {
$sql = "UPDATE ".$cfg["tab"]["cat_lang"]." SET startidartlang='0' WHERE startidartlang ='$value'";
$db->query($sql);
//********* delete from content table **********
$sql = "DELETE FROM ".$cfg["tab"]["content"]." WHERE idartlang = '".$value."'";
$db->query($sql);
}
}
$sql = "DELETE FROM ".$cfg["tab"]["cat_art"]." WHERE idart = '".$idart."'";
$db->query($sql);
$sql = "DELETE FROM ".$cfg["tab"]["art"]." WHERE idart = '".$idart."'";
$db->query($sql);
$sql = "DELETE FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '".$idart."'";
$db->query($sql);
}
*** make your own tools (wishlist :: thx)
bei strDeleteCategory
kommt etwas weiter oben nochmal das selbe vor nur mit $lang parameter berücksichtigung...
ach jetzt sehe ich das erst
zuerst wird folgender code ausgeführt...
und etwas weiter unten wird folgendes versucht
das kann nicht gehen...
kommt etwas weiter oben nochmal das selbe vor nur mit $lang parameter berücksichtigung...
ach jetzt sehe ich das erst
zuerst wird folgender code ausgeführt...
Code: Alles auswählen
////// delete entry in 'cat_lang'-table
$sql = "DELETE FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='$idcat'";
$db->query($sql);
Code: Alles auswählen
$sql = "SELECT idtplcfg FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='$idcat'";
$db->query($sql);
Zuletzt geändert von emergence am Fr 21. Jan 2005, 13:20, insgesamt 1-mal geändert.
*** make your own tools (wishlist :: thx)