Seite 1 von 1

Teilstring vor der Ausgabe auf dem Bildschirm ersetzen

Verfasst: Mo 7. Feb 2005, 15:51
von kiyoku
Hallo Freunde,

ich möchte klären, ob das folgende überhaupt mit Contenido machbar ist.

Ich benutze das Modul Text (HTML) für einen Artikel. Jetzt soll der Redakteur einen speziellen String eingeben z.B. {NUMMER} in den Text eingeben bzw. einbauen. Dies wird so in die Datenbank gespeichert. Jedoch beim Auslesen und Ausgeben auf dem Bildschirm wird dieser Teilstring {NUMMER} durch etwas sinnvolles ersetzt z.B. 12345. Ist dies durch irgendein Script machbar?

In welcher Datei steht denn die Ausgabe vom Text (HTML)? Vielleicht kann ich mir die Funktion selber progarmmieren.

Jemand eine Idee?

Verfasst: Mo 7. Feb 2005, 16:08
von swelpot
hab die woche da etwas zu gelesen...
schau mal hier: http://www.contenido-tutorials.de/front ... hp?idcat=8

ist zwar nicht genau das gesuchte, aber vielleicht lässt sich damit was anfangen...

zudem gab es mal einen workaround, um vor der ausgabe teile zu ersetzen. das wäre evtl. etwas...
jetzt der haken: ich finde es nicht mehr...

Verfasst: Mo 7. Feb 2005, 16:15
von swelpot

Verfasst: Mo 7. Feb 2005, 16:15
von timo
Entweder du setzt bei den Content-Typen an (con_type) oder du bufferst mit ob_start die Ausgabe und ersetzt dann, oder aber du machst das im Modul, was ich empfehlen würde.

Verfasst: Mo 7. Feb 2005, 16:18
von Dodger77
swelpot hat geschrieben:hab die woche da etwas zu gelesen...
schau mal hier: http://www.contenido-tutorials.de/front ... hp?idcat=8

ist zwar nicht genau das gesuchte, aber vielleicht lässt sich damit was anfangen...
Ich habe das auch noch nicht ganz soweit, dass ich es hier im Forum veröffentlichen möchte. Aber einfache Textersetzungen wären da natürlich auch noch denkbar und wahrscheinlich einfach zu integrieren. Ich schau mal, ob ich das noch mit reinnehme. Zurzeit kämpfe ich noch mit regulären Ausdrücken um allen Links auf externe Seiten automatisch eine entsprechende CSS-Klasse zuzuweisen.

Verfasst: Mo 7. Feb 2005, 16:22
von kiyoku
@timo: ich wollte es im Modul machen, habe aber keine Möglichkeit gefunden, wie?

Der User soll sein normales Text HTML-Feld behalten. Und wenn ich Output im Modul verändere, dann gibt es den schönen Editor nicht mehr.
Weißt du was ich meine?

Welche Idee hattest du es im Modul zu machen?

Verfasst: Mo 7. Feb 2005, 16:41
von timo
In deinem Modul findet sich folgendes

echo "CMS_HTML[1]";

dann machst du das hier:

Code: Alles auswählen

$sHTML = "CMS_HTML[1]";

if (!$edit)
{
       $sHTML = str_replace("{FOO}", "bar", $sHTML);   
}

echo $sHTML;


Verfasst: Di 8. Feb 2005, 10:53
von kiyoku
super, hat klasse funktioniert

vielen Dank

Verfasst: Di 8. Feb 2005, 13:56
von HerrB
Ähm, (!$edit) alleine ist keine so gute Idee, da man dann mit URL?edit=1 an das rankommt, was ersetzt werden soll.

Ich habe jetzt die genaue Abfrage nicht im Kopf, steht aber - glaube ich - in der FAQ, war was mit (!$edit && !_REQUEST("edit"))...

Gruß
HerrB

Verfasst: Di 8. Feb 2005, 14:29
von kummer
so ist's richtig:

Code: Alles auswählen

if ($edit && !$_REQUEST['edit']) {

Verfasst: Di 8. Feb 2005, 15:50
von kiyoku
nein so ist es leider falsch, da er dann im Editor auch schon den String ersetzt hat.

so hab ich das jetzt geschrieben:

Code: Alles auswählen

if (!$edit && empty($_REQUEST['edit'])) {