Zum Bearbeiten von Aktionen bietet YANA die Funktion $YANA->handle(), welche bei Erfolg bool(true) und sonst bool(false) zurück gibt.
<?php
global $YANA;
/* Aktion "foo" aufrufen */
$bool = $YANA->handle("foo", $parameter);
if ($bool) {
print "Die Aktion 'foo' wurde erfolgreich ausgeführt.";
} else {
print "Der Aufruf von 'foo' hat einen Fehler erzeugt.";
}
?>
Dies bewirkt, dass alle Dateien im Verzeichnis "cache/" des Frameworks gelöscht werden.
<?php
global $YANA;
/* den Template-Cache des Servers leeren */
$YANA->handle("clear_server_cache", array());
?>
<!-- der folgende Eintrag im Template genügt: -->
<textarea id="eingabefeld" name="text"></textarea>
[%preview%]
Abbildung: Beispiel für die Darstellung im Browser
"Microsummaries" sind "aktive Lesezeichen", dass heißt Links in den Bookmarks, deren Text sich dynamisch aktualisieren kann, wenn sich der Inhalt der Webseite ändert, auf die der Link verweist. Der Firefox-Browser bietet dem Nutzer automatisch die Verwendung von Microsummaries an, wenn dieser einen Bookmark einer Seite erzeugt, welche über dieses Feature verfügt.
Beispiele hierfür wären:
Weitere Varianten sind natürlich denkbar.
Microsummaries werden vom Yana Framework unterstützt. Sie werden mit Hilfe der Utility-Klasse "Microsummary" erzeugt. Im Folgenden einige Beispiele:
<?php
/* in einem Plugin ein Mircosummary erzeugen */
Microsummary::set($this->name, 'Text des Links');
/* Bitte beachten:
* der erste Parameter ist eine Id, welche den Eintrag
* eindeutig identifiziert.
* Hier wird $this->name als Id verwendet,
* weil der Name eines Plugins eindeutig sein sollte.
* Es ist natürlich auch möglich einen anderen Text zu wählen,
* Zum Beispiel um mehrere verschiedene Einträge pro Plugin
* zu erzeugen.
*/
/* in einem Plugin ein Mircosummary lesen */
$microsummary = Microsummary::get($this->name);
/* in einem Plugin ein Mircosummary "veröffentlichen",
* damit der Browser dieses beim Öffnen der Seite findet
*/
Microsummary::publish($this->name);
/* Aufruf der Microsummary im Browser */
index.php?action=get_microsummary&target=guestbook
/* Zum Testen muss die URL vervollständigt und im Browser in die Adresszeile eingegeben werden.
* Das Argument "target" bezeichnet hier die Id der anzuzeigenden Microsummary.
*/
?>
"RSS-Feeds" sind elektronische, (meist) automatisch generierte und aktualisierte Verzeichnisse, welche verschiedene Informationen bereithalten können. Diese Verzeichnisse kann ein Besucher mit Programmen, die "RSS-Reader" genannt werden, lesen. In modernen Browsern ist diese Funktion bereits eingebaut, so dass der Besucher keine zusätzliche Software mehr benötigt.
Beispiele für RSS-Feeds:
Das Yana Framework unterstützt das Erzeugen von RSS-Feeds für Ihre Anwendungen. Dazu können Sie die für Sie vorbereiteten Klassen "RSS", bzw. "RSSitem" benutzen. Im Folgenden einige Beispiele.
<?php
/* Um in einem Plugin einen RSS-Feed zu erzeugen, legen Sie eine neue Funktion an.
(Den Namen bitte Ihren Wünschen entsprechend ändern, er muss eindeutig sein.) */
function mein_rss_feed($ARGS)
{
$rss = new RSS();
// einen Titel und Beschreibung festlegen
$rss->title = 'Max Muster\'s Neuigkeiten';
$rss->description = 'das ist mein RSS-Feed zu meiner Homepage';
// einen Eintrag erzeugen
$item = new RSSitem();
$item->title = '1. Eintrag';
$item->link = 'http://beliebige.url';
$item->description = 'Ein kurzer Text, welcher den Inhalt beschreibt, oder ein Textauszug.';
// den Eintrag zum RSS-Feed hinzufügen
$rss->addItem($item);
// ein 2. Eintrag
$item = new RSSitem();
$item->title = 'noch ein Eintrag';
$item->link = 'http://beliebige.andere.url';
$item->description = 'zweite Beschreibung';
$rss->addItem($item);
// so geben Sie den RSS-Feed an den Browser aus
print utf8_encode($rss->toString());
exit(0);
}
/* Sie können einen Link auf Ihren RSS-Feed in der Anwendung anzeigen lassen.
Dazu benutzen Sie die Funktion RSS::publish() und den Namen der Funktion,
welche Ihren RSS-Feed erzeugt.
Tipp: Am Einfachsten ist es, den Link über den Konstruktor Ihres Plugins
einzubinden.*/
function plugin_mein_test($name)
{
RSS::publish('mein_rss_feed');
// hier kann weiterer Quellcode folgen
}
?>
Thomas Meyer, www.yanaframework.net