0251 / 590 837 15
info@a-coding-project.de
;

Inhalt auslesen bei ‚Seite bearbeiten‘

Code & Blog Logo

Code & Blog Logo

Heute geht es um das lesen des Inhaltes der Content-Datei. Hier können wir kein include anwenden, da ansonsten auch PHP-Befehle ausgelesen werden. Also bauen wir als erstes eine neue Methode in die Page-Klasse. Des weiteren befüllen wir dann die Textbox auf ‚Seite Bearbeiten‘ im Admin-Bereich.

Fangen wir an mit der Methode in der Page Klasse. Diese heißt readContent und bekommt als Parameter eine Präfix für den Speicherort. Diese brauchen wir, um relativ auf den Inhalt auszulesen, weil der Pfad je nach Aufrufsdatei unterschiedlich sein kann.

Als erstes wir hier der Dateiname generiert. Danach wird die Datei geöffnet, gelesen und wieder geschlossen. Also nichts besonderes (Datei /system/classes/page.php):

...
function readContent($dirpraefix){
  $filename = $dirpraefix."content/articles/".$this->alias.".php";
  $handle = fopen ($filename, "rb");
  $contents = fread ($handle, filesize ($filename));
  fclose ($handle);
  return $contents;
}
...

Fehlt uns nur noch das Aufrufen der Methode imAdmin-Bereich. Also öffnen wir die Datei /admin/includes/site-edit.php und fügen in der Textbox den Aufruf:

<textarea name="content"><?PHP echo $page->readContent("../"); ?></textarea>

Achtung: Zwischen den Textarea und den PHP Tags dürfen werder Leerzeichen noch Zeilenumbrüche sein. Ansonsten bekommen wir diese Sachen später auch in der TextBox zu sehen.

Kommentare

Daniel Busch schrieb am 01.08.2009:

Sorry, aber du hast einen Syntaxfehler im function teil in diesem Post. statt: functionreadContent($dirpraefix){.... function readContent($dirpraefix){.... MfG Daniel

Daniel Busch schrieb am 01.08.2009:

Ich noch mal: Ich bekomme einen Fatalerror in site-edit script. Fatal error : Call to a member function readContent() on a non-object in C:xampphtdocsadminincludessite-edit.php on line 8 Finde aber den Fehler nicht. MfG Daniel

Stefan Wienströer schrieb am 01.08.2009:

Der Fehler kommt, wenn die Variable (hier wahrschein $page) kein Objekt ist. Hast du vielleicht die Sachen im letzten Beitrag nicht gemacht? Da wurde das Objekt erzeugt. Und wenn das Fehlt, wird (auch) diese Fehlermeldung kommen: http://blog.stevieswebsite.de/2009/07/datenbank-daten-bei-seite-bearbeiten-verwenden/

Daniel Busch schrieb am 02.08.2009:

Recht hattest du. Aber da ich alles doppelt und an zwei Rechnern mache war ich wohl auf diesem noch nicht soweit. Na denn wysiwyg'en wir mal ein wenig. MfG Daniel

Klaus schrieb am 10.05.2010:

Netter Artikel, aber bitte mehr auf die deutsche Rechtschreibung achten!

Sven schrieb am 16.08.2011:

Fatal error: Using $this when not in object context in C:xampphtdocscmssystemclassespage.php on line 49 Die zeile ist anscheinend fehlerhaft: $filename = $dirpraefix."../content/articles/".$this-&gt;alias.".php"; hab copy and past aber der fehler kommt immer noch..

Stefan Wienströer schrieb am 16.08.2011:

Die Funktion ist aber noch innerhalb des Class-Tags, oder?