Vier in einem: Das variable Template

Chio (admin) am 01.01.2008

Eine 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

Keine gefunden

Add Comment



Webdesign Beispiel 1

Variante 1

Das Standard-Design: Content in der Mitte, auf der rechten Seite eine Marginalienspalte.

Das selbe Template, wenn kein 2. Block angegeben wurde:

Webdesign Beispiel 2

Variante 2

Natürlich könnte man auch 2 verschiedene Templates machen - und sie den Seiten zuweisen. Aber das heißt auch: 2 Stylesheets, 2 Bilderordner, alle Änderungen am Template doppelt zu machen. 

  zurück    [ home ]   [ websitebaker ]   [ start ]

www.beesign.com - webdesign in wien