functions.con.php/conDeleteart()

calvini
Beiträge: 95
Registriert: Mo 21. Feb 2005, 12:06
Kontaktdaten:

functions.con.php/conDeleteart()

Beitrag von calvini »

Die Funktion löscht zuerst den Eintrag der aktuellen Sprache in art_lang, um dann den gelöschten Eintrag zu suchen und dessen idtplcfg zum Löschen der Einträge in template_conf und container_conf zu verwenden. Dies führt logischerweise dazu, dass die Einträge in template_conf und container_conf nicht gelöscht werden. Zudem wird nur die aktuelle Sprache behandelt.

Macht man das Ganze in korrekter Reihenfolge und für alle Sprachen, klappt es auch. Mein Vorschlag wäre deshalb folgender Code:

Code: Alles auswählen

function conDeleteart($idart)
{
    global $db, $cfg, $lang;

    $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) {

            //********* 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);

    # Collect the idtplcfg's for article:
    $sql = "SELECT idtplcfg FROM ".$cfg["tab"]["art_lang"]." WHERE idart='$idart'";
    $db->query($sql);
    while ($db->next_record()) $tmp_idtplcfg[] = $db->f("idtplcfg");

	   # Delete all corresponding entries in tpl_conf and container_conf:
	   foreach ($tmp_idtplcfg as $tmp_idtplcfg) {
	     $sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg='$tmp_idtplcfg'";
	     $db->query($sql);
	     $sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '$tmp_idtplcfg'";
	     $db->query($sql);
	   }

    $sql = "DELETE FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '".$idart."'";
    $db->query($sql);

    $sql = "SELECT idtplcfg FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '".$idart."' AND idlang = '".$lang."'";
    $db->query($sql);
    $db->next_record();
    $tmp_idtplcfg = $db->f('idtplcfg');

    $sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg = '".$tmp_idtplcfg."'";
    $db->query($sql);

    $sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '".$tmp_idtplcfg."'";
    $db->query($sql);
}
Siehe auch hier, bei den Kategorien ist das selbe passiert.
Zuletzt geändert von calvini am Mo 9. Mai 2005, 16:22, insgesamt 1-mal geändert.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm ja code mit code umschließen...

dito:
schau mal da
-> http://www.contenido.org/forum/viewtopi ... tecategory
*** make your own tools (wishlist :: thx)
calvini
Beiträge: 95
Registriert: Mo 21. Feb 2005, 12:06
Kontaktdaten:

Beitrag von calvini »

emergence hat geschrieben:ähm ja code mit code umschließen...

Code: Alles auswählen

 ist so schlecht lesbar - kann ich aber gerne machen. Wie wäre es mit einem [php]-Tag (siehe [url=http://www.php.de]hier[/url])?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

...bei code bleiben zumindestens die einrückungen bestehen...

das geht hier leider nicht
[php]<? echo "hello world"; ?>[/php]
vielleicht kann timo das ja implementieren... ich hab da ja mal was gesehen....

ad. schlecht lesbar... ist vermutlich nur im firefox/mozilla so ...
*** make your own tools (wishlist :: thx)
calvini
Beiträge: 95
Registriert: Mo 21. Feb 2005, 12:06
Kontaktdaten:

Beitrag von calvini »

emergence hat geschrieben:ad. schlecht lesbar... ist vermutlich nur im firefox/mozilla so ...
Einen entsprechenden Mod gibt es hier, wobei der Einbau wohl nicht ganz trivial ist. Bei mir siehts auch im IE 6.0 doof aus, besonders weil die Unterlängen abgeschnitten werden.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Reine Neugier: Was sind denn Unterlängen?

Edit:
Un|ter|län|ge, die; -, -n (Schriftw.): Teil eines Buchstabens, der über die untere Grenze bestimmter Kleinbuchstaben hinausragt. ...
Nicht, dass ich es jetzt verstanden hätte...

Gruß
HerrB
Zuletzt geändert von HerrB am Mo 9. Mai 2005, 19:49, insgesamt 1-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

calvini hat geschrieben:Einen entsprechenden Mod gibt es hier, wobei der Einbau wohl nicht ganz trivial ist.
genau den hab ich gemeint...
calvini hat geschrieben:Bei mir siehts auch im IE 6.0 doof aus, besonders weil die Unterlängen abgeschnitten werden.
hab zwar auch ie6 aber das die unterlängen fehlen wäre mir neu...
*** make your own tools (wishlist :: thx)
calvini
Beiträge: 95
Registriert: Mo 21. Feb 2005, 12:06
Kontaktdaten:

Beitrag von calvini »

Code: Alles auswählen

Unterlänge
Wenn ich das bei mir anschaue, fehlt dem G die Unterlänge...
Guckst Du hier (@HerrB: das, was Du nicht siehst, ist die Unterlänge ;)):

Bild
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

also meine unterlängen stimmen :lol:
*** make your own tools (wishlist :: thx)
calvini
Beiträge: 95
Registriert: Mo 21. Feb 2005, 12:06
Kontaktdaten:

Beitrag von calvini »

emergence hat geschrieben:also meine unterlängen stimmen :lol:
Tja, winzigweich, Quelle aller Wunder :? ...
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

calvini hat geschrieben:
emergence hat geschrieben:also meine unterlängen stimmen :lol:
Tja, winzigweich, Quelle aller Wunder :? ...
wäre möglich...
heute -> japanischen charset installiert... -> seit ich das installiert hab, funktionieren plötzlich die sonderzeichen in meinem mail programm ????? und 6 monate hab ich gesucht...
*** make your own tools (wishlist :: thx)
calvini
Beiträge: 95
Registriert: Mo 21. Feb 2005, 12:06
Kontaktdaten:

Beitrag von calvini »

Das Microsoft-Dilemma:
  • Theoretisch führen alle Wege zum Ziel.
  • Praktisch gilt dies nicht für den gerade beschrittenen Weg.
  • Ausnahme: Der Weg ist so abstrus, dass er nicht nachvollzogen werden kann.
:roll:
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ähm... ja ich glaub das thema würd' jetzt zu weit führen... (da könnt ich mich stundenlang aufregen...)
ich seh mir jetzt noch die x-files an... somit...
gute nacht...
*** make your own tools (wishlist :: thx)
calvini
Beiträge: 95
Registriert: Mo 21. Feb 2005, 12:06
Kontaktdaten:

Beitrag von calvini »

emergence hat geschrieben:schau mal da
-> http://www.contenido.org/forum/viewtopi ... tecategory
Sehe ich das eigentlich richtig, dass die dort angegebenen Funktionen conDeleteart() und strDeleteCategory() nur die Datensätze der aktuellen Sprache löschen :shock:? Und wenn ja, macht das Sinn? Erscheint mir damit sehr aufwändig, einen Artikel oder gar eine Kategorie aus einer mehrsprachigen Umgebung zu löschen. Wenn ich da 5 Sprachen habe, lösche ich mir ja einen Wolf.

Das Löschen sollte meines Erachtens sprachübergreifend erfolgen (wie auch das Anlegen).
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Ähm nein. Das ist bewusst so gemacht, denn was ist, wenn du einen Artikel in Sprache A brauchst, aber in Sprache B nicht? Der Fall kommt bei einem unserer Kunden (mittlerweile an die 35 Sprachen) sehr häufig vor. Und da ein Artikel erstmal nur in der Sprache existiert, in der er angelegt wurde, muß er erst syncronisiert werden.

Vom praktischen Aspekt wird jeweils der Redakteur, der für eine Sprache zuständig ist, entscheiden, ob der Artikel in seiner Sprache sinnvoll ist. Wenn nicht, wird er ihn löschen. Würde sich das auf alle Sprachen auswirken, wäre das fatal.
Gesperrt