Quellcode für Beispiel advanced1.php
« zurück zur Ausgabe
PHP-Code
<?php
$thispage = 'advanced1.php';
$gr_arr=array($thispage . '?seite=1' => "Seite 1",
$thispage . '?seite=2' => "Seite 2",
$thispage . '?seite=3' => "Seite 3",
$thispage . '?seite=4' => "Seite 4",
$thispage . '?seite=5' => "Seite 5",
$thispage . '?seite=6' => "Sonderseite");
$nr=1; if (isset($_GET['seite'])) $nr = intval($_GET['seite']);
$descr_arr['default'] = "leftnavi_1"; $descr_arr['exception'][$thispage . '?seite=6'] = "leftnavi_2";
$descr_arr['exception'][$thispage . '?seite=' . $nr] = "leftnavi_3";
$descr_arr['lbr'] = 'leftnavi_lbr';
require_once("pb-tpl.php");
require_once("extensions/navi-pb-tpl.php");
$t = new pb_tpl("templates/seiten.tpl");
$ct = new navi_pb_tpl("templates/navi.tpl");
$se_re['seite'] = $t->tpl['seite_' . $nr];
$se_re['leftnavi'] = $ct->build_navi($gr_arr, $descr_arr);
echo $t->fill_tpl('main', $se_re);
?>
HTML-Templates
Seitentemplate
[main]
<html>
<head>
<title>Navitest</title>
<style type="text/css">
<!--
div.leftnavi {
width:200px;
float:left;
border-width:1px;
border-style:dotted;
border-color:silver;
padding:5px;
}
div.haupt {
padding:10px;
margin-left: 210px;
margin-right: 50px;
height:500px;
color: #000000; background-color:#EFEFEF;
}
-->
</style>
<link rel="stylesheet" href="pb-tpl.css" type="text/css">
<meta name="author" content="Peter">
</head>
<body>
<h1>Erweiterung der Templateklasse (Navigation)</h1>
<p><a href="sourcecode/s-advanced1.html">Quellcode ansehen »</a></p>
<div class="leftnavi">
{LEFTNAVI}
</div>
<div class="haupt">
{SEITE}
</div>
<hr>
<p><a href="tabelle5.php">zurück</a> | <a href="index.html">Index</a> | - ENDE </p>
</body>
</html>
##############################
# Kommentar: Diese Texte können natürlich aus Dateien oder der DB kommen.
[seite_1]
<h1>Dies ist Seite 1</h1>
<p>Dieses Beispiel zeigt eine Möglichkeit, wie sich die Klasse pb-tpl
erweitern lässt, um etwa dafür zu sorgen, dass Links einer aktiven Seite
in der Navigation deaktiviert oder besonders hervorgehoben werden.</p>
<p>Für dieses Beispiel wird die Klasse navi-pb-tpl.php verwendet, die im
Verzeichnis <i>extensions</i> liegt.</p>
[seite_2]
<h1>Dies ist Seite 2</h1>
Gleichzeitig wird gezeigt, dass beliebig viele Templatedateien eingebunden und in der Ausgabe
verbunden werden können.
[seite_3]
<h1>Dies ist Seite 3</h1>
Die Navigation hat ihr eigenes Template. In größeren Projekten, kann man auch den PHP-Code
für die Navigation in eine include-Datei auslagern.
[seite_4]
<h1>Dies ist Seite 4</h1>
Die Templateklasse ermöglicht auch den Zugriff auf Textblöcke, in denen keine Platzhalter
ausgetauscht werden müssen.
[seite_5]
<h1>Dies ist Seite 5</h1>
Das ermöglicht z.B. Texte mehrerer Seiten in einer Datei zu halten. Praktisch z.B. für
mehrsprachige Seiten.
[seite_6]
<h1>Dies ist die ganz besondere Sonderseite.</h1>
<p>Diese Erweiterung macht es möglich, jeden Link speziell zu formatieren, indem man
in einem <i>Beschreibungs</i>array festlegt, welches Template verwendet werden soll.</p>
Navigationstemplate
#### typ ##leftnavi_item_normal
[leftnavi_1]
<a href="{HREF}">{LTITLE}</a>
#### typ ##leftnavi_item_marked
[leftnavi_2]
<b style="font-size:130%"><a href="{HREF}">{LTITLE}</a></b>
#### typ leftnavi_item_this_passive
[leftnavi_3]
<b>{LTITLE}</b>
#zwischen den Links werden für dieses Beispiel
#einfach nur zwei Zeilenumbrüche eingefügt.
[leftnavi_lbr]
<br>
<br>
« zurück zur Ausgabe