Inhaltsverzeichnis
Anleitung für Entwickler
Kochbuch
YANA stellt einen globalen Speicherbereich zur Verfügung, der von allen Plugins gelesen und verändert werden kann. Alle Variablen, die in diesem Bereich gespeichert werden, stehen Ihnen automatisch in allen Skins und Templates für die Ausgabe zur Verfügung. Bitte beachten Sie: der globale Speicherbereich in YANA ist etwas anderes als der global Namespace von PHP.
Innerhalb dieses Speichers werden Werte als ein Baum, in Form von mehrdimensionalen, assoziativen Arrays gespeichert. Der Zugriff auf diesen Speicherbereich erfolgt analog zu Smarty – oder, falls Ihnen der Vergleich besser gefällt, ähnlich wie mit XPath – über einen Schlüssel.
Zum Beispiel:
<?php
$array = $YANA->getVar("*"); // mit Hilfe des Schlüssels "*"
erhalten Sie eine Kopie des gesamten Arrays
$int = $YANA->getVar("a"); // Ausgabe: 2
$array = $YANA->getVar("b"); // Ausgabe: array("c" => 3, 1 => 4)
$int = $YANA->getVar("b.c"); // Ausgabe: 3
/* Anders als in XML-Dateien sind hier numerische Ids erlaubt: */
$int = $YANA->getVar("b.1"); // Ausgabe: 4
?>
Die Funktion $YANA->getVar() erlaubt Ihnen das Lesen von Werten im globalen Speicherbereich.
<?php
global $YANA;
/* alle Werte lesen */
$array = $YANA->getVar("*");
/* einzelne Werte lesen */
$mixed = $YANA->getVar("FOO1.FOO2.FOO3");
/* alternativ */
$mixed = $YANA->registry->getVar("FOO1.FOO2.FOO3");
?>
Die Funktion $YANA->setVar() erlaubt Ihnen das Schreiben von Werten in den globalen Speicherbereich.
<?php
global $YANA;
/* Variable "MEINE_VARIABLE" registrieren */
$bool = $YANA->setVar("MEINE_VARIABLE", $neuer_wert);
$bool = $YANA->setVar("FOO1.FOO2.MEINE_VARIABLE", $neuer_wert);
/* alternativ */
$mixed = $YANA->registry->setVar("FOO1.FOO2.MEINE_VARIABLE", $neuer_wert);
?>
Dazu bietet YANA die Funktion $YANA->unsetVar(). Ein Beispiel:
<?php
global $YANA;
/* Variable "MEINE_VARIABLE" löschen */
$bool = $YANA->unsetVar("MEINE_VARIABLE");
$bool = $YANA->unsetVar("FOO1.FOO2.MEINE_VARIABLE");
/* alternativ */
$mixed = $YANA->registry->unsetVar("FOO1.FOO2.MEINE_VARIABLE");
?>
Dazu bietet YANA die Funktion $YANA->setType(). Ein Beispiel:
<?php
global $YANA;
/* den Typ der Variable "MEINE_VARIABLE" auf String ändern */
$bool = $YANA->setType("MEINE_VARIABLE", "string");
$bool = $YANA->setType("FOO1.FOO2.MEINE_VARIABLE", "string");
/* alternativ */
$mixed = $YANA->registry->setType("FOO1.FOO2.MEINE_VARIABLE", "string");
?>
<?php
global $YANA;
$array = $YANA->getVar("INSTALLED_PLUGINS");
print_r($array);
?>
<?php
$bool = $YANA->getVar("INSTALLED_PLUGINS.MEIN_PLUGIN");
if ($bool) {
print "Plugin 'MEIN_PLUGIN' gefunden.";
} else {
print "Plugin 'MEIN_PLUGIN' nicht gefunden.";
}
/* alternativ */
$YANA->plugins->isInstalled('MEIN_PLUGIN');
?>
Das "Website-Profil" wird über den URL-Parameter "id" ausgewählt. Jedes Profil kann individuelle Einstellungen haben. Diese Einstellungen werden ebenfalls im globalen Speicherbereich des Frameworks abgelegt. Wird kein Profil gewählt, dann wird das Profil "default" verwendet. De facto müssen Sie als Programmierer sich nicht darum kümmern, welches Profil gewählt ist. Sie müssen nur wissen, dass in den Profildaten Einstellungen, wie die gewählte Hintergrundfarbe der Seite, die bevorzugte Schriftart und andere interessante Daten gespeichert sind, auf die Sie bei Bedarf zugreifen können.
<?php
global $YANA;
/* die aktuellen Profileinstellungen lesen und ausgeben */
$array = $YANA->getVar("PROFILE");
print_r($array);
?>
Array ( >> Layout der Website [BGCOLOR] => #F0F0F0 [PFONT] => Arial, Helvetica, sans-serif [BGIMAGE] => [LOGO] => [HSIZE] => [HCOLOR] => [HFONT] => [PSIZE] => [PCOLOR] => >> Gewählte Sprache, Skin und Verzeichnis für Emoticons / Smilies [LANGUAGE] => deutsch.config [SKIN] => default.config [SMILEYDIR] => common_files/smilies/ >> Sonstige Einstellungen [USERMODE] => 1 [AUTO] => 1 [TIMEFORMAT] => 0 >> Protokollierung [LOGGING] => 1 [LOG_LENGTH] => 50 >> Einstellungen für Plugin "rss to html factory" [RSS] => Array ( [FILE] => plugins/rss/test.rss [MAX] => 5 ) >> Einstellungen für Plugin "guestbook" (Gästebuch) [GUESTBOOK] => Array ( [NOREPLY] => noReply@meineAdresse.tld [FLOODING] => 0 [ENTPERPAGE] => 5 [NOTIFICATION] => [SENDMAIL] => [MAIL] => meinName@meineAdresse.tld [FILE] => [SPAMPROTECT] => 1 [PROFILE] => [USE_DB] => ) >> Einstellungen für Plugin "search" (Stichwortsuche) [SEARCH] => Array ( [TARGET] => _self ) >> Einstellungen für Plugin "user_admin" (Nutzerverwaltung) [USER] => Array ( [ALLOW_CREATE] => 0 ) )<?php /* die gewählte Hintergrundfarbe auslesen */ $string = $YANA->getVar("PROFILE.BGCOLOR"); print '<p style="background-color: '.$string.'">test</p>'; ?>
<?php
global $YANA;
/* YANA Defaut-Einstellungen ausgeben */
$array = $YANA->getVar("DEFAULT");
print_r($a);
?>
<?php
global $YANA;
/* Nutzer IP */
print $YANA->getVar("REMOTE_ADDR")."\n";
/* Nutzer Name */
print $YANA->getVar("SESSION_USER_ID")."\n";
/* Zugriffslevel des Nutzers */
print $YANA->getVar("PERMISSION")."\n";
/* Session-Name */
print $YANA->getVar("SESSION_NAME")."\n";
/* Session-ID */
print $YANA->getVar("SESSION_ID")."\n";
?>
yana framework by:Thomas Meyer, www.yanaframework.net