Seite 1 von 1

Anfängerfragen

Verfasst: Fr 25. Jun 2004, 19:46
von coma
Hallo zusammen,

ich probier gerade ein eigenes Modul zu schreiben, scheiter aber leider schon gleich am Anfang. Wie lassen sich Anführungszeichen eingeben, ohne dass danach mein Eingabeformular danach selbst löscht. Da muss wahrscheinlich etwas im Eingabeformular geändert werden, aber was? Wenn ich statt " ein " verwende wird es mir dargestellt, aber wenn ich danach das Eingabeformular nochmal aufrufe und abpeichere, löscht es sich wieder von alleine.

Andere Frage, in welcher Tabelle landen eigentlich die Eingaben von meinem Modul eigentlich, irgendwioe konnte ich nichts finden?

Hier der auf den Fehler reduzierte code meines moduls:

INPUT:
echo "<table>
<tr><td>Test</td>
<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td></tr>
</table>";

OUTPUT
<?php echo "Wert: CMS_VALUE[1]"; ?>


Bin für jede Hilfe dankbar.

Gruß Philipp

Verfasst: Mo 28. Jun 2004, 08:38
von Emceechen
Der Code für deine Module sollte, wenn ich mich nicht täusche, in der Tabelle con_mod (mit Clientzuordnung) landen. Anführungszeichen in php müssen, wenn ich mich recht entsinne mit "\" angeführt werden, oder? Schau aber gleich mal nach. Grüße,
Michael

Verfasst: Mo 28. Jun 2004, 08:43
von Emceechen
Im Output sollte

Code: Alles auswählen

echo (\"Wert:CMS_VALUE[0]\");
eigentlich deine Bedürfnisse erfüllen. Bin mir leider nicht hundertprozentig sicher, bin in php auch nicht so fit.

Verfasst: Mo 28. Jun 2004, 08:47
von Emceechen
Wenn du im Input als erstes aus dem PHP Modus raus gehst kannst du meines Wissens deine Tabelle auch ganz normal mit HTML erstellen... Könntest du auch noch probieren wenns nicht funktionieren sollte. Du mußt dann natürlich in deinem Template auch einen freien Container haben dem du das Modul zuweist und unter Konfiguration im Artikel oder Vorkonfiguration im Template kannst du dann den Inhalt definieren.
Grüße Michael

Verfasst: Mo 28. Jun 2004, 08:58
von Halchteranerin
Bei mir funktioniert das Modul wie oben angegeben, also kann das nicht 'der auf den Fehler reduzierte code' sein. :) Was genau funktioniert bei Dir nicht?

Michael, die Maskierung wird mit \ gemacht, nicht mit /, das war schon richtig.

Gruss
Christa

Verfasst: Mo 28. Jun 2004, 09:00
von Emceechen
Ja, klar, ist mir gerade auch aufgefallen, kam aber so schnell nicht zum edit. Sollte auch eigentlich ein "\" werden, aber irgendwie...
Danke für dein wachsames Auge :lol:

Verfasst: Mo 28. Jun 2004, 15:16
von coma
Danke für dei rege Teilnahme an meinem Problem, leider war aber noch nicht die passende Antwort dabei. Hier der Versuch das ganze etwas klarer zu formulieren:

Mein Modul-Code funktioniert an sich schon, nur wenn ich unter Koniguration in meine Tabelle einen Wert eingebe, der Anführungszeichen enthält, und dann speichere, löscht sich der Wert, und bei Vorschau/Editor bekomme nur einen weissen Bildschirm, dh mein ganzes template erschein dann auch nicht mehr. Wenn ich nur 'normale' Buchstaben eingebe funktioniert es aber wie erwartet.

Auch die Eingabe von \" ändert daran leider nichts, nur wenn ich stattdessen " für das Anführungszeichen benutze bekomm ich es dargestellt.
Beim speichern macht mir contenido dann aber aus dem " wieder ein ", dh. wenn ich danach nochmal speichere, hab ich wieder das gleiche Problem.

Bei der Darstellung eines Backslash ist das Problem ähnlich:
\\ wird beim speichern zu \ beim nochmaligen speichern bleibt es zwar in der Konfiguration stehen, wird allerdings auch in der Vorschau ignoriert.

Meine eingegebenen Werte hab ich inzwischen in der con_container_conf gefunden, in der con_mod steht der Code vom Modul selber.

Gruß Philipp

Verfasst: Mo 28. Jun 2004, 15:27
von kummer
tja, dasselbe problem hatte ich auch schon.

im input-script sollte es ja problemlos funktionieren. so wie ich das sehe, hast du das problem nur im output-script. und das liegt daran, dass der inhalt des output-scriptes per eval() interpretiert wird.

du musst vor der verwendung der parameter (die werte der konfiguration, also z.b. CMS_VALUE[0]) bei diesen die escape-zeichen entfernen mit stripslashes().

also so:

Code: Alles auswählen

$meineVariable = stripslashes("CMS_VALUE[0]");
die variable $meineVariable enthält dann keine als escape-zeichen verwendete slashes mehr.

hope this helps.

gruss,
andreas

Verfasst: Mo 28. Jun 2004, 15:38
von coma
hallo andreas,

das wars leider auch nicht. Mein Problem ist denke ich gerade im input-script.

Wenn ich nämlich in der Konfiguration (dort ist doch das input-script aktiv) einen Wert eintippe der ein Anführungszeichen enthält und dann speichere, verschwindet meine komplette Eingabe (auch die von anderen Feldern desselben Moduls falls vorhanden).

Im errorlog steht dann das hier, falls das eine Hilfe ist:
PHP Parse error: parse error, unexpected ';', expecting ']' in /Users/philipp/Sites/contenido-4.4.4/contenido/includes/functions.mod.php(155) : eval()'d code on line 160
PHP Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /Users/philipp/Sites/contenido-4.4.4/contenido/includes/include.tplcfg_edit_form.php(390) : eval()'d code on line 4

Kann das vielleicht auch ein Konfigurationsproblem sein? Ich hab hier Contenido nur lokal unter os x laufen, einen richtigen server zum testen hab ich leider noch nicht.

Gruß Philipp

Verfasst: Mo 28. Jun 2004, 18:19
von Halchteranerin
es scheint ein Bug zu sein. Schau mal hier:
http://www.contenido.de/forum/viewtopic ... ngszeichen

Verfasst: Mo 28. Jun 2004, 19:08
von coma
Ein Bug! Und ich denk ich bin schuld. :?

ich hab die Änderungen gemacht wie dort angegeben, bei mir hat sich aber leider nichts geändert, aber ich benutze hier ja auch nicht CMS_HEAD und CMS_TEXT wie in der Fehlerbeschreibung sondern mein eigenes Modul.

Hast du eine Idee wo ich da dann was in meinem Fall im Contenido-Code ändern muss?

Danke auf jeden Fall mal für den Bug-Hinweis.

Gruß Philipp

Verfasst: Mo 28. Jun 2004, 19:32
von Halchteranerin
coma hat geschrieben: Hast du eine Idee wo ich da dann was in meinem Fall im Contenido-Code ändern muss?
Ich vermute zumindest, dass es ein Bug ist. Aber sorry, so tief stecke ich nicht drin, als dass ich Dir sagen koennte, wo Du was aendern musst (falls es ueberhaupt klappt). Vielleicht melden sich timo oder emergence noch ...

Gruss
Christa