CMS_IMG[1] wird nicht mehr aus der DB ausgelesen

Gesperrt
pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

CMS_IMG[1] wird nicht mehr aus der DB ausgelesen

Beitrag von pinkernell »

Der Fehler hat eine kleine Vorgeschichte:

Ich habe auf einem Artikel, in dem das nachfolgend zitierte Modul "Bild 1" eingebunden ist, zum eingefügten Bild auch erstmals das Feld "Description" ausgefüllt (nicht im Uploadbereich, sondern im Artikeleditor auf > Image > Description), und zwar diesem Text irrtümlicherweise auch einen html-tag (<a href="..."> etc) hinzugefügt. Infolgedessen wurde diese Seite nicht mehr angezeigt.

Ich habe dann in der MySQL-Tabelle diesen Text in der Tabelle CMS_CONTENT gelöscht. Das Feld selber habe ich nicht gelöscht (weiss auch garnicht, ob das überhaupt möglich ist).

Und jetzt werden auf allen Artikeln, die das Modul "Bild 1" eingebunden haben, diese Bilder nicht mehr angezeigt. Auch nicht im Editor. Unter > Image ist dort aber der vollständige und korrekte Pfad angegeben. Interessanterweise tauchen diese Bilder in der Artikelliste von Andreas Kummer (die neben Head- und Subheadline auch die Images anzeigt) aber durchaus auf.

Und bei neu erstellten Artikeln ist im Editor die Möglichkeit, ein Bild einzufügen ("> Image" und ">Link") vollständig verschwunden. Bei den bestehenden Artikeln sind diese Links durchaus noch da.

Ich zitiere mal das Modul "Bild 1". Es ist eine Modifikation des mit 4.4.4 mitgelieferten Bildmoduls. Ich hatte es sehr früh verändert und lief bis zu diesem "Unfall" einwandfrei. Bevor ich den Eintrag in der MySQL gelöscht habe, habe ich in diesem Modul die 5 letzten "echo"-Zeilen rausgenommen und jetzt wieder eingefügt. Hat nix gebracht. Vielleicht übersehe ich ja einen Fehler im Code, aber ich kann bei bestem Willen nix entdecken.

Code: Alles auswählen

<?php

if ("CMS_IMG[1]" != "") {

    $img = '<table border="0">
                <tr>
                <td><img src="CMS_IMG[1]" border="0" height="75"></td>
                <td><IMG SRC="upload/bilder/blind.gif" border="0" width="10"></td>
                </tr>
                </table>';

  if ("CMS_LINK[1]" != "http://") {
        $img = sprintf('<a href="%s" target="%s">%s</a>',"CMS_LINK[1]", "CMS_LINKTARGET[1]", $img);
     }

// echo "<br>";
echo "CMS_IMGDESCR[1]";
// echo "<br>";
echo "CMS_LINKDESCR[1]";
// echo "<br>";

}

?>
Danke für die Hilfe!

Guido
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

rein aus deiner beschreibung und der erfahrung würde ich behaupten, du hast den falschen typ gelöscht?

hast du noch ein backup der daten?
pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

Beitrag von pinkernell »

Nein, kein Backup ...

Das, was ich da gelöscht habe, fand ich in der Tabelle CMS_CONTENT unter idcontent=1925, idartlang=311, idtype=5, typeid=1. Und zwar habe ich da nur den Eintrag in "value" gelöscht. Die Tabellenzeile existiert weiter, und ich kann in value auch weiter Einträge machen.

Interessanterweise tauchen diese (neuen) Einträge jetzt anstelle des Bildes im Editor und Preview auf.

Ist da was "verrutscht"?

Guido
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

hmm eigentlich nicht...

wenn du wirklich nur diese eine Zeile gelöscht hast dürfte das, was du beschreibst, nicht auftreten bzw das ist keine Folge davon.
pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

Beitrag von pinkernell »

timo hat geschrieben:wenn du wirklich nur diese eine Zeile gelöscht hast
Naja, eine (Tabellen)-Zeile habe ich ja nicht gelöscht, aber einen Tabelleneintrag. Die Zeile existiert weiter. Denke ich jedenfalls.

Was mich nämlich stutzig macht ist, dass ich beim Browsen durch die knapp 2000 Tabellenzeilen in CMS_CONTENT auf Anhieb keine finde, die einen Link zu einem Bild im Uploadbereich enthält. Dennoch taucht dieser Link im Editor >Image auf. Oder sind diese Links in einer anderen Tabelle abgespeichert? (Der von mir gelöschte Eintrag bezog sich dagegen ja auf eine IMG-Description und könnte daher getrennt von den IGM-Links in CMS_CONTENT abgelegt sein.)

Zweitens: Jeder dieser Zeilen in CMS_CONTENT enthält ja ein Feld idtype und typeid. Wenn ich mich nicht täusche, verweist der Wert von idtype darauf, ob hier eine HEADLINE oder ein TEXT (HTML) oder ein IMG oder wer weiss was gemeint ist, und typeid legt dann etwa fest, ob hier die HEADLINE[1] oder HEADLINE[2] gemeint ist.

Die von mir zitierte Zeile hat die idtype=5. Gibt's irgendwo ne Übersicht, wo festgelegt ist, was diese Typen bedeuten? Dann kann ich mich ja mal auf eine gezieltere Fehlersuche machen.
pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

Beitrag von pinkernell »

pinkernell hat geschrieben:Wäre nur noch zu klären, wie Contenido die Bilder bzw Descriptions aus der Datenbank ausliest.
Kann da jemand helfen? Ich wüsste nicht, wo ich im /contenido Baum suchen müsste.

Oder: Wie sähe ein sql-search aus, wenn ich genau dieses Bild [1] aus der DB auslesen wollte. Die Idee ist, eine evtl. defekte Searchfunktion in den Contenido Defaults zu umgehen.

Guido

[1] Die Pfade zu den Bildern sind in CMS_CONTENT in jedem Artikel unter idtype=4 (CMS_IMG) abgelegt. Allerdings als Nummern, und die sind wiederum in der Tabelle CMS_UPL in Form von Pfaden den Objekten im Uploadbereich zugeordnet.
pinkernell
Beiträge: 57
Registriert: Mo 3. Mai 2004, 08:19
Kontaktdaten:

Beitrag von pinkernell »

Gelöst:

Keine Probleme mit der Datenbank. Es lag schlicht an einem fehlenden echo=$img im Bildmodul. So ist's jetzt richtig:

Code: Alles auswählen

<?php

if ("CMS_IMG[1]" != "") {

    $img = '<table border="0">
                <tr>
                <td><img src="CMS_IMG[1]" border="0" height="75"></td>
                <td><IMG SRC="upload/bilder/blind.gif" border="0" width="10"></td>
                </tr>
                </table>';

  if ("CMS_LINK[1]" != "http://") {
        $img = sprintf('<a href="%s" target="%s">%s</a>',"CMS_LINK[1]", "CMS_LINKTARGET[1]", $img);
     }

echo $img;

}

// echo "<br>";
echo "CMS_IMGDESCR[1]";
// echo "<br>";
echo "CMS_LINKDESCR[1]";
// echo "<br>";

?>
So einfach war das. Habe aber bei dem ganzen ein bischen über den Aufbau der MySQL Tabelle erfahren. Hatte also auch ein gutes.

Dank an timo für die freundliche Mithilfe.

Guido[/code]
Gesperrt