Wieder mal eine konzeptionelle Frage.
Ich habe hier eine Website mit vielen Unterseiten, die bezüglich Aufbau und Content weitestgehend identisch sind. Sie unterscheiden sich lediglich im Hinblick auf ihre URLs, Meta-Tags und SEO-Texte. Um Redundanzen zu vermeiden, habe ich eine layout.phtml geschrieben, welche die einzelnen Module (Nav, Footer, etc.), sowie die Views/Partials mit den SEO-Texten - korrespondierend zur URL - inkludiert.
Nun will ich die Struktur so gestalten, dass auch Marketing-Leute ohne Entwicklerkenntnisse weitere Unterseiten ergänzen können, und aus dem Grunde sollen alle Inhalte - also HTML-Texte, Variablen für Seitentitel, etc., - in einer einzigen Datei abgelegt werden. Normaler Weise würde ich dazu etwas mit Markdown und einer Template-Engine bauen, allerdings scheidet die Verwendung zusätzlicher Module ebenso wie Frameworks und CMS aus.
Insofern habe ich für jede Unterseite eine PHP-Datei angelegt, in der sowohl Variablen als auch HTML stehen. Das sieht etwa so aus:
Womit wir uns der eigentlichen Frage nähern. Nachfolgend habe ich einen Navigation-Helper geschrieben, der aus dem Unterseiten-Verzeichnis die Dateinamen als Link-Ziele übergibt und aus den in den Dateien angelegten Variablen die Link-Texte erstellt:
Das funktioniert auch, ist aber nicht besonders sauber, weil bei jeder Iteration eine komplette Datei eingelesen und deren HTML-Output mit ob_start() / ob_end_clean() unterdrücken werden muss. Deshalb die Frage, ob es dafür nicht eine elegantere Lösung gibt.
Mit AJAX wüsste ich, wie ich nur auf Teile einer Datei zugreife, aber PHP ist vom Ansatz her leider unterschiedlich zu JavaScript. :(
Ich habe hier eine Website mit vielen Unterseiten, die bezüglich Aufbau und Content weitestgehend identisch sind. Sie unterscheiden sich lediglich im Hinblick auf ihre URLs, Meta-Tags und SEO-Texte. Um Redundanzen zu vermeiden, habe ich eine layout.phtml geschrieben, welche die einzelnen Module (Nav, Footer, etc.), sowie die Views/Partials mit den SEO-Texten - korrespondierend zur URL - inkludiert.
Nun will ich die Struktur so gestalten, dass auch Marketing-Leute ohne Entwicklerkenntnisse weitere Unterseiten ergänzen können, und aus dem Grunde sollen alle Inhalte - also HTML-Texte, Variablen für Seitentitel, etc., - in einer einzigen Datei abgelegt werden. Normaler Weise würde ich dazu etwas mit Markdown und einer Template-Engine bauen, allerdings scheidet die Verwendung zusätzlicher Module ebenso wie Frameworks und CMS aus.
Insofern habe ich für jede Unterseite eine PHP-Datei angelegt, in der sowohl Variablen als auch HTML stehen. Das sieht etwa so aus:
HTML:
<? $page_titel = "Foo Bar"
// weitere Variablen
?>
<div="baz"> Viel HTML </div>
Womit wir uns der eigentlichen Frage nähern. Nachfolgend habe ich einen Navigation-Helper geschrieben, der aus dem Unterseiten-Verzeichnis die Dateinamen als Link-Ziele übergibt und aus den in den Dateien angelegten Variablen die Link-Texte erstellt:
PHP:
<ul>
<? foreach (new DirectoryIterator('./includes/seo') as $fileInfo):
if($fileInfo->isDot()) continue;
ob_start();
include('seo/' . $fileInfo->getFilename());
ob_end_clean(); ?>
<li>
<a href="<? echo substr($fileInfo->getFilename(), 4); ?>">
<? echo $seo_header ?>
</a>
</li>
<? endforeach; ?>
</ul>
Das funktioniert auch, ist aber nicht besonders sauber, weil bei jeder Iteration eine komplette Datei eingelesen und deren HTML-Output mit ob_start() / ob_end_clean() unterdrücken werden muss. Deshalb die Frage, ob es dafür nicht eine elegantere Lösung gibt.
Mit AJAX wüsste ich, wie ich nur auf Teile einer Datei zugreife, aber PHP ist vom Ansatz her leider unterschiedlich zu JavaScript. :(
Zuletzt bearbeitet: