Datei config.conf in Smarty lesen


Lesen Sie mit der Template Engine Smarty die Konfigurationsdatei config/config.conf und werten individuelle Variablen für die Steuerung des Templates aus.

Config-Datei anlegen und anmelden

Damit Smarty eine individuelle config.cont Datei nutzen kann, muss der Pfad dorthin im Smarty-Objekt gesetzt werden, etwa so:

$smarty = new Smarty;
$smarty->setConfigDir('configs');

Bekanntmachen der Lage des Config-Files

Folglich liegt die Konfigurationsdatei in einem Verzeichnis configs, ausgehend vom Wurzelverzeichnis des Servers, also in der so genannten root. Der eigentliche Dateiname kann individuell gestaltet werden, etwa so: config.conf oder affiliates.conf.

Erst dann kann die Template-Engine Smarty auf eine idividuelle Konfigurationsdatei zugreifen.

Variable in der config.conf anlegen

Config-Variablen können einzeln oder als so genannte Region defniniert werden.

# globale Variablen
Vorname = 'Flopsi'
Name    = 'das rasende Rennbrötchen'

# nicht globale Variablen
[Adresse]
Ort     = 'Niedlichknuffeltahl'
Strasse = 'Wurzelstrasse 1'

Beispiele von Variablen

Achtung: Sonderzeichen und Bindestriche sind leider nicht in den Variablen-Namen erlaubt.

config.conf im Template lesen

Die config.conf kann in einem Template während des renderns gelesen und deren Variablen genutzt werden. Die einfachste Variante ist diese:

{config_load 'config.conf'}
...
{#Vorname#}, {#Name#}

Lesen einer Variablen aus der config.conf im Template

Eine Region wird etwas anders gelesen, zum Beispiel so:

{config_load 'config.conf' 'Adresse'}
...
{#Ort#}
...
{#Strasse#}
...

Lesen einer Region

Natürlich verbirgt sich hinter einer solchen Region ein PHP Variablen-Array.

config.conf im Code oder Plugin lesen

Am leistungsstärksten ist der Zugriff auf die config.conf jedoch innerhalb des Programmcodes des CMS oder eines Plugins, denn dort können leistungsstärkere PHP-Befehle für die Verarbeitung verwendet werden.

...
$this->smarty->configLoad('config.conf');
echo $this->smarty->getConfigVars('Vorname');
...

Laden einer globale Einzelvariablen

...
$this->smarty->configLoad('config.conf', 'Adresse');
echo $this->smarty->getConfigVars('Ort');
...

Laden einer Region und Ausgabe einer Variablen der Region

...
foreach($this->smarty->getConfigVars() as $value)
{
    echo $value;
}
...

Iteriert über die Region 'NochMehrVariablen' und zeigt die Inhalte, da die Region 'NochMehrVariablen' zuvor geladen wurde

Die Nutzung von Konfigurationsvariablen innerhalb von Templates ist zwar sehr gut, jedoch ist die Nutzung innerhalb von Programmcode deutlich besser und leistungsfähiger. Diese Eigenschaft ist zugunsten einer höheren Sicherheit in den Templates geschuldet.


Mein Name ist Oliver Lohse. Ich bin diplomierter Wirtschafts-Informatiker und Organisations-Programmierer in verschiedenen Sprachen bzw. Markup-Dialekten, z.B. Java, JEE, COBOL, PHP, Python, MySQL, HTML, CSS, ANSI C, Lisp, Rexx, JavaScript, Scheme, ActionScript 2.0, Maschinensprache, Assembler und JCL. Seit mehr als 25 Jahren arbeite ich in einem großen Softwareunternehmen für Versicherungen in Hannover Niedersachsen.

FlightCMS
2024-11-09
Beitrag,Sortieren,Datum,Titel,ASC,DESC
post
Kontakt@Oliver-Lohse.de

Datenschutz

Die Webseite verwendet keinerlei Tracking- oder Speichermechanismen, die einen Rückschluss auf das Leserverhalten und Ihre Identität zulassen. Die Webseite verwendet keine Cookies, denn Cookies haben einen schlechten Ruf.

Impressum

CMSWorkbench ist eine Entwicklerseite über meine Arbeit im Bereich der Content Management Systeme. Die vielen Codeschnipsel sind im wesentlichen als kleine Notizzettel zu werten als das es ausgereifte Beiträge wären.