include_php (PHP-Code einbinden)
Attribut Name
Typ
Erforderlich
Standardwert
Beschreibung
file
string
Ja
n/a
Der Name der einzubindenden PHP-Datei.
once
boolean
Nein
true
Definiert ob die Datei mehrmals geladen werden soll, falls sie mehrmals eingebunden wird.
assign
string
Nein
n/a
Der Name der Variable, der die Ausgabe von include_php zugewiesen wird.
include_php-Tags werden verwendet, um PHP-Skripte in Ihre Templates
einzubinden. Falls 'Sicherheit' aktiviert ist,
muss das einzubindende Skript im '$trusted_dir' Pfad liegen.
'include_php' muss das Attribut 'file' übergeben werden,
das den Pfad - entweder relativ zu '$trusted_dir' oder absolut -
zum Skript enthält.
include_php ist ein einfacher Weg, um modularisierte Templates zu
verwenden und PHP-Code von HTML zu separieren. Sie haben zum Beispiel
ein Template für die Seitennavigation, welche direkt
aus der Datenbank bezogen wird. Die Logik, die den Datenbankinhalt bezieht,
können sie in einer eigenen Datei ablegen und am
Anfang Ihres Templates einbinden. Nun können Sie das Template
überall wiederverwenden, ohne sich Gedanken zu machen, wie der Inhalt
in die Navigationsstruktur gelangt.
Normalerweise wird ein PHP-Skript nur einmal pro Aufruf geladen,
selbst wenn es mehrfach eingebunden wird. Sie können dieses
Verhalten durch die Verwendung des once Attributs
steuern. Wenn Sie 'once' auf 'false' setzen, wird die Datei immer
wenn sie eingebunden wird auch neu geladen.
Optional kann das assign Attribut übergeben werden.
Die Ausgabe von include_php wird dann nicht direkt eingefügt,
sondern in der durch assign benannten Template-Variable abgelegt.
Das Objekt '$smarty' kann in dem eingebundenen PHP-Script über '$this' angesprochen werden.
Funktion include_php
lade_nav.php
-------------
<?php
// lade die Variablen aus einer MySQL-Datenbank und weise sie dem Template zu
require_once("MySQL.class.php");
$sql = new MySQL;
$sql->query("select * from site_nav_sections order by name",SQL_ALL);
$this->assign($sections,$sql->record);
?>
index.tpl
---------
{* absoluter Pfad, oder relativ zu '$trusted_dir' *}
{include_php file="/pfad/zu/lade_nav.php"}
{foreach item=$aktuelle_section from=$sections}
<a href="{$aktuelle_section.url}">{$aktuelle_section.name}</a><br>
{/foreach}