Nullpointer hat geschrieben:da beißt sich eh immer die katze in den schwanz. templates sollen den code vom layout trennen und dann blasen sich die templatesysteme zu eigenen programmiersprachen auf. welcher designer kann denn ohne einarbeitung komplexere smarty templates editieren?
Genau das ist der Grund, warum solche Systeme in meinen Augen totaler Unsinn sind.
Ich habe mal ein System gebastelt, dass ich bisher noch nirgends gesehen habe.
Ich binde in der index.php Kopf und Fuß ein und beim Inhalt arbeite ich mit separaten Files, deren Inhalte ich mit Switches einbinde z.B. so:
Code: Alles auswählen
<?php
switch ($c) {
case 'title':
?>Ich bin ein Titel<?php
break;
case 'meta_desc':
?>Ich bin eine Beschreibung<?php
break;
case 'meta_keys':
?>ich, bin, die, suchwörter<?php
break;
case 'headline':
?>Ein lustiger H1 Titel<?php
break;
case 'content':
?>Hier kommt der schöne lange Text<br />
Lustiges <b>HTML</b> wie man es beim Editor gewohnt ist. Bei Bedarf sogar mit WYSIWYG-Editor.<br />
PHP geht auch:<br />
<?= date("d.m.Y") ?><br />
<br />
<?php
break;
case 'footer':
?>Ich erscheine unter dem Inhalt<?php
break;
}
?>
So binde ich dann die Inhalte ein:
Code: Alles auswählen
<?php
$p = isset($_GET['p']) ? basename($_GET['p']) : '';
if (!$p || !file_exists('content/' . $p . '.php')) {
$p = 'index';
}
?>
<html>
<head>
<title><? $c = 'title'; include('content/' . $p . '.php'); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="description" content="<? $c = 'meta_desc'; include('content/' . $p . '.php'); ?>">
<meta name="keywords" content="<? $c = 'meta_keys'; include('content/' . $p . '.php'); ?>">
</head>
<body>
<div id="content">
<h1><? $c = 'headline'; include('content/' . $p . '.php'); ?></h1>
<? $c = 'content'; include('content/' . $p . '.php'); ?>
</div>
<div id="footer">
<? $c = 'footer'; include('content/' . $p . '.php'); ?>
</div>
</body>
</html>
Der Vorteil ist, dass man parallel ein CMS haben kann, wenn man niemanden auf den FTP-Teil zugreifen lassen möchte. Das CMS könnte dann die Dateien im Verzeichnis "content/" erstellen. Was man erlaubt (HTML, PHP, etc.) kann man dann ja selber über das CMS steuern. Ich arbeite nur alleine, daher bleibe ich nur beim FTP-Teil und erstelle die Dateien von Hand.