Vier in einem: Das variable Template
Chio (admin) am 01.01.2008Eine häufig gestellte Frage: Meine Site hat 2 Blöcke: Mitte und rechts. Aber ich habe zb Übersichtsseiten oder Bildergalerien, die sollen keine rechte Spalte haben. Wie mache ich das?
Block oder nicht Block – das ist hier die Frage:
Irgendwie musst du dem Template sagen, was es tun soll. Das kannst du zb machen, indem du einen 2. Block anlegst – oder nicht. Im Template machst du dann eine "Weiche":
1. Abfragen, ob ein 2. Block vorhanden ist
2. Wenn ja: Design 1, wenn nein: Design 2
Also:
Zuerst Block 2 in eine Variable schreiben, noch bevor du Block 1 ausgibst:
<?php
// wie immer: puffern, in eine Variable ausgeben, Ende Pufferung
ob_start();
page_content(2);
$rechts=ob_get_contents();
ob_end_clean();
Jetzt steht der Inhalt von Block 2 in der Variablen $rechts
Schauen wir uns das an:
if ($rechts =="") {
//Kein 2. Block:
echo '<div id="content-breit">' page_content(1); echo '</div>'
} else {
// Ja, es gibt einen Inhalt für den rechten Block:
echo '<div id="content-schmal">'; page_content(1);
echo '</div><div id="rechts">' . $rechts . '</div>';
}
?> //Fertig!
Jetzt musst du nur mehr im CSS die Bereiche entsprechend definieren.
Das funktioniert natürlich auch mit Tabellen, du musst nur die html-Stückchen entsprechend anpassen.
Das Fähnchen für die Sprache
Vorab: Du kannst natürlich nur auf die jeweilige Startseite umschalten, eine direkte Umschaltung zur entsprechenden Seite ("de/impressum" -> "en/imprint") ist nicht ohne weiteres möglich. Das ist aber nicht weiter schlimm, weil Besucher ohnehin nur an Inhalten in ihrer Sprache interessiert sind und ggf. sofort zu dieser wechseln.
Gehen wir davon aus, du hast die deutschen Seiten im Verzeichnis /de/ und die englischen im Verzeichnis /en/. Die Startseite heißt jeweils "start".
Im Template-Verzeichnis hast du die 2 Bilder faehnchen-de.gif und faehnchen-en.gif
So findest du das richtige Fähnchen und den richtigen Link:
<?php
$sprache = strtolower(LANGUAGE);
if ($sprache == 'en') { $zusprache = 'de';} else { $zusprache = 'en';}
echo '<a href="'.WB_URL.PAGES_DIRECTORY.'/'. $zusprache . '/start'.PAGE_EXTENSION.'"><img src="'.TEMPLATE_DIR.'/faehnchen-'.$zusprache. '.gif" width="28" height="20" alt=""/></a>';
?>
Das Stückchen Code kopierst du an die Stelle im Template, an der das Fähnchen erscheinen soll.
Die Variable $sprache bzw $zusprache kannst du natürlich auch für verschiedene Header-Bilder oder dergleichen verwenden. Dazu verwendest du einfach Bilder mit dem Namen bild-en bzw. bild-de. Und natürlich kannst du auch verschiedene Angaben zum Stylesheet machen (<div class="stil-de" ..>
php ist wie basteln - aber ohne nachher Mist wegräumen müssen. Probiers aus ;-)
Back
Comments
|