Verständnisproblem: Einfügen von FCKEditor in Template

dwex

Erfahrenes Mitglied
Hallo Leute,

bastle gerade ein Newslettersystem das den FCK-Editor verwenden soll.
Jetzt habe ich mir ein Template für das Ganze gemacht wo ich einfach im Template nach [BODY] suche und gegen meine Inhalte ersetze.

Jezt habe ich z.B. folgendes (vereinfacht dargestellt):
PHP:
$template = '<ein paar tags>[BODY]<wieder ein paar tags>';

$oFCKeditor = new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath = './fckeditor/' ;
$oFCKeditor->Height = '440';
$oFCKeditor->ToolbarSet = 'newsletter';

$ausgabe = str_replace('[BODY]', $oFCKeditor->Create(), $template);
echo $ausgabe;


Ausserdem habe ich es so versucht:
PHP:
$template = '<ein paar tags>[BODY]<wieder ein paar tags>';

$body = $oFCKeditor = new FCKeditor('FCKeditor1') ;
$body = $oFCKeditor->BasePath = './fckeditor/' ;
$body = $oFCKeditor->Height = '440';
$body = $oFCKeditor->ToolbarSet = 'newsletter';
$body = $oFCKeditor->Create();

$ausgabe = str_replace('[BODY]', $body, $template);
echo $ausgabe;

Jetzt wird aber der komplette FCK-Editor nicht im Template ersetzt sondern als aller erstes in die ausgebende Seite geschrieben.

Kann mir mal bitte jemand erklären wie man sowas im Template ersetzen muss das es funktioniert.

Vielen Dank im voraus!
 
Zuletzt bearbeitet:
PHP:
$body = $oFCKeditor = new FCKeditor('FCKeditor1') ;

Ich persönlich habe noch niemals zwei Zuweisungen in einer Linie gesehen :suspekt:. Ich könnte mich irren, aber ich denke da hat sich die Fehlermaus eingeschlichen.
 
Hallo,

das
PHP:
$template = '<ein paar tags>[BODY]<wieder ein paar tags>';

$oFCKeditor = new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath = './fckeditor/' ;
$oFCKeditor->Height = '440';
$oFCKeditor->ToolbarSet = 'newsletter';

$ausgabe = str_replace('[BODY]', $oFCKeditor->Create(), $template);
echo $ausgabe;
war mein erster Versuch der auch nicht funktioniert hat.

Hat denn keiner eine Idee?
 
So sieht die Methode Create() aus:
PHP:
public function Create()
{
	echo $this->CreateHtml() ;
}
Kein Wunder also, dass der Editor vor allem angezeigt wird. Würde statt des echo ein return setzen.
 
Vielen, vielen Dank!

Da muss man erst mal draufkommen :suspekt:
Habs geändert jetzt funktioniert es bestens.
 
Hi, auch wenns schon erledigt ist noch 2 kleine Bemerkungen von mir:

1. @CookieBuster: Mehrer Zuweisungen in einer Anweisung, z.B. $a = $b = $c = 20; sind durchaus erlaubt, aber oft recht unbequem zu lesen.

2. Die bessere Alternative zum Ersetzen von echo durch return wäre es, mit dem Output Buffer von PHP zu arbeiten, da du so keine Veränderungen am FCKEditor vornehmen musst. Wenn du also mal eine neue Version des Editors verwendest, musst du nix mehr umschreiben.
PHP:
ob_start();
$oFCKeditor->Create();
$editor = ob_get_clean();
Jetzt steht der erzeugte Code in $editor und du kannst den dann wie gehabt mittels str_replace() usw. im Template ersetzen.
 
@EvilO
Danke für den "Zaunpfahl" den du mir "um die Ohren gehauen" hast.
Ich habe schon an ob_start() gedacht wusste aber nicht das man das Ergebnis daraus auch in einer Variable platzieren kann.
Ich werde es genau so machen wie du es hier vorschlägst.
 
Zuletzt bearbeitet:
Zurück