Navigation mit Smarty

morpheus0023

Grünschnabel
Hallo Forum,

ich versuche jetzt seid zwei Tagen eine vernünftige Navigation(natürlich ohne Frames) mit Smarty hinzubekommen.
Mit reinem PHP hab ich das früher immer so gemacht:
HTML:
<head>
<?php
  if ($page == "") $page = "start.htm";
?>
</head>
<body>
<div class="nav">
  <a href="index.php?page=seite1.htm">Home</a><br>
  ...
</div>
<div class="content><?php include($page); ?></div>
</body>
eine wunderbare Sache!

Nun, dass jetzt in Smarty zu realisieren ist etwas umständlicher als ich dachte.
Bisher habe ich es so gemacht:
PHP:
// index.php:
<?php
  require 'smarty/MySmarty.class.php';
  define ('TEMPLATE_DIR', 'smarty/templates');
  
  if ($page == "") $page = TEMPLATE_DIR."/start.tpl";

  $handle = fopen($page, "r");
  $contents = fread($handle, filesize($page));
  fclose($handle);
  
  $smarty = new MySmarty;
  $smarty->assign('contents',$contents);
  $smarty->display("index.tpl");
?>
HTML:
<!-- index.tpl -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<body>
  <div class="top"></div>
  <div class="nav">
    <a href="index.php?page=smarty/templates/seite1.tpl">seite1</a><br>
    ......
  </div>
  <div class="content">{$contents}</div>
</body>

funktioniert zwar soweit, ist aber keine wunderbara Sache.
Weil meine Navigation hier nur auf Template-Dateien verlinkt werden kann, d.h. also, ich kann nur auf HTML verlinken, was ist aber wenn ich auf PHP-Dateien verlinken will?

Angenommen in meiner Navigation gibt es einen Button "Kontakt", dieser Link verweist mich auf ein Kontakt-Formular, dieses Kontakt-Formular braucht aber PHP-Code!

Ich könnte zwar den kompletten PHP-Code der auf der kompette Website benötigt wird in die index.php hauen und es dann wenn es gebraucht wird mittels $smarty->assign() an die jeweiligen Templates übergeben. Das würde allerdings eine sehr lange Ladezeit in Ansrpuch nehmen.
Versteht Ihr meine Problematik?

Ich bin gerade dabei mich in die CMS und Smarty Welt einzuarbeiten, habe also überhaupt noch keine Erfahrung diesbezüglich.

Vielleicht ist mein Ansatz auch falsch!?
Kann mir jemand zeigen wie ich meine gute alte Navigationstechnik in Smarty verwenden kann oder mir eine andere/bessere Methode?

Gruß
Torsten
 
Zuletzt bearbeitet:
Zurück