Thread Letzte 10 Zeilen einer Textdatei ausgeben (73 answers)
Opened by TrioxX at 2006-12-03 12:20

TrioxX
 2006-12-04 16:56
#9240 #9240
User since
2006-11-08
10 Artikel
BenutzerIn
[default_avatar]
http://www.sascha.greatboard.de/SimpleTemplateEngi...

Über diese Schnittstelle lassen sich eigene Template-Marken definieren. Dafür wird der Plugin unter $main->{settings}{custom_template_commands} einer oder mehreren Template-Marken (Namen werden ohne die geschweiften Klammern angegeben) zugeordnet. Im Objekt, das das Modul zurückgibt, muß die Eigenschaft template_command_handlers ein Hash sein, der den Marken Methoden des Moduls zuordnet.

Trifft die Template-Engine beim Verarbeiten eines Templates auf eine Marke, die diesem Plugin zugeordnet ist, wird die in template_command_handlers eingetragene Methode des Moduls aufgerufen, und zwar mit Parametern $main, parameters, output. Dabei ist parameters der Verweis auf eine Liste von Parametern der Marke, von denen der erste der Name der Marke ist (so wäre für {MY_TAG|param1|param2} parameters gleich ['MY_TAG','param1','param2']). output ist ein Verweis auf die Ausgabe-Zeichenfolge, an diese muß die Ausgabe der Template-Marke angehängt werden.

Programmbeispiel: Falls also $main->{settings}{custom_template_commands} die Zeile MY_TAG => 'plugindir::MyPlugin.pm' enthält, dann könnte MyPlugin.pm so aussehen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
      package Plugins::MyPlugin;
return bless({

template_command_handlers => {
MY_TAG => \&tagHandler,
},
});

sub tagHandler
{
my ($self, $main, $params, $output) = @_;
my ($tag, $name) = @$params;
$$output .= "$name was here";
}


Die Template-Marke {MY_TAG|Jonny} wird jetzt die Ausgabe "Jonny was here" produzieren.\n\n

<!--EDIT|TrioxX|1165246271-->

View full thread Letzte 10 Zeilen einer Textdatei ausgeben