phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] PHP Links

[php] AW: [php] PHP Links

Arash Yalpani arash_(at)_datango.de
Tue, 6 Feb 2001 14:01:40 +0100


Hi Erwin,

Guck mal auf die site http://www.dol2day.com - ein altes Projekt von mir und ich setze dort genau dieses Link-Prinzip ein. Im Nachhinein ein furchtbarer Designfehler! So macht man es besser:

Du hast eine zentrale Datei (z.b. config.inc.php), in der alle Includes, Defnitionen, etc. eingebunden/definiert werden. Für jede Seite (== Link), die Du nun benötigst, erstellst Du eine Datei nach folgendem Muster:

======= seite.php
include("../globals/config.inc.php");

[...hier routinen für evtuelle zu verarbeitende parameter...]

draw_page("Seitentitel"); // <= diese funktion wird in template.inc.php (siehe unten!) definiert

function draw_inner_part() { // muss in jeder Seite definiert sein!!
	echo "Diese Zeile wird im Template eingebunden";
}

======= config.inc.php
[...]
include("template.inc.php");
[...]


======= template.inc.php
<body>
<table>
<tr>
  <td>links</td>
  <td>
  <?
           draw_inner_part(); // diese funktion wird in der hauptdatei definiert (im beispiel: seite.php)
  ?>
  </td>
  <td>rechts</td>
</tr>
</table>
</body>

So musst Du nicht für jede Seite einen Link definieren, pflegen etc., hast aber trotzdem eine zentrale Template-Datei. Nochmal zur Erklärung:

seite.php ruft die Funktion "draw_page" in template.inc.php auf, aus der wiederum die Funktion "draw_inner_part" aufgerufen wurde, die in der includenden (nicht includeTen!) Datei seite.php definiert wurde. Die Template-Datei geht also davon aus, dass die Hauptdatei IMMER eine Funktion "draw_inner_part" definiert hat. Soll übrigens an mehreren Stellen innerhalb des Temnplates dynamischer Content eingebunden werden musst Du natürlich weitere Funktionen draw_inner_part2, draw_inner_part3, etc. definieren, welche von template.inc.php aufgerufen werden und die in allen Seiten auch definiert sein müssen. 

Ich weiß, das Ganze wirkt kompliziert, ist es aber nicht wenn man das Prinzip verstanden hat. Ausserdem ist es Wartungsfrei und Du kannst Deiner Site modular neue Bereiche hinzufügen :)

Schöne Grüsse,
Arash







-----Ursprüngliche Nachricht-----
Von: Erwin Esener [mailto:e.esener_(at)_chello.at]
Gesendet: Dienstag, 6. Februar 2001 13:41
An: php_(at)_php-center.de
Betreff: [php] PHP Links


Hallo,

Ich hab da mal eine generelle Frage zu PHP Links.
Ihr habts doch sicher schon einmal Link gesehen wie www.domain.com/index.php?link=1

Soweit ich verstanden habe funktioniert das ungefähr unter diesem Prinzip:
if ($link = 1) {
    include("members.inc"); // vereinfacht, aber ihr wissts was ich meine
}

Da das bei vielen Links mit der Zeit ziemlich unübersichtlich wird wollte ich fragen ob es
da eine elegantere Methode gibt, oder verstehe ich etwas komplett falsch?

Im Netz habe ich leider keine Tutorials gefunden.

Danke im vorraus!

Erwin


php::bar PHP Wiki   -   Listenarchive