-
html-Dateien auslesen
Hallo,
ich benötige ein Inhaltselement welches den Inhalt einer bestimmten html-Datei ausliest und anzeigt.
Beispiel: Ich habe einen Ordner in meinem FTP-Verzeichnis mit folgenden Inhalt:
0123.html
0456.html
0789.html
bla.html
Jetzt habe ich ein Seite in Conto angelegt, die den Seitentitel 0456 trägt. Nun brauche ich ein Inhaltselement, welches den Inhalt der Datei 0456.html ausliest. Sprich, anhand des Seitentitels soll die html-Datei gesucht und ausgegeben werden.
Ich hoffe das ist so verständlich.
Kann ich sowas mit den Hausmittel machen? Oder gibt es schon so etwas?
In den Erweiterungen habe ich gesucht, aber nichts gefunden.
Würde mich über Tipps und Hilfe freuen.
Ben
-
Hm, eigentlich müßte das gehen, allerdings nicht über ein Inhaltselement.
dafür mit einem insert tag {{file::file_name.php?arg=1&arg=2}} eine PHP Datei laden, die einem den Inhalt ausliest.
Was brauchst du?
1. PHP Datei (z.b. load-html.php , im templates Ordner speichern)
2. PHP : file_get_contents().
3. Jetzt bindest du die PHP Datei via insert tag ein : {{file::load-html.php?file=2433.html}}
4. in deinem php file den GET Parameter des Aufrufs abfangen:
PHP-Code:
<?php echo file_get_contents($this->Input->get('file')); ?>
5. ungetestet :)
-
Danke. Das klingt schon mal gut. Aber wie bekomme ich es hin dass die html-Datei anhand des Seitentitels ausgelesen wird?
{{file::load-html.php?file="seitentitel".html}}
-
Leider kann man Insert Tags nicht verschalteln. Wäre vielleicht mal ein Ticket wert :)
Aber da du ja eh jede Seite einzeln hast, wäre es auch denkbar, auf jeder Seite ein einzelnes Inhaltselement einzubetten.
-
Du kannst den Seitennamen ja in der load-html.php auslesen
PHP-Code:
global $objPage;
echo $objPage->alias;
Sind deine einzubindenden Seiten komplette HTML-Seiten wird dir das aber alles nichts nützen, dazu bräuchtest du dann ein leeres Seitenlayout (leere fe_page Template) und holst die Seiten dort mit PHP rein. Kannste natürlich auch so machen, dass er nur die Seite holt, wenn sie existiert und ansonsten das normale Template laden.