txt
-Attributen der Buttons zu erzeugen.
Um dies zu erreichen, können Sie bei navbar:render
das zusätzliche Attribut
imgstyle
angeben.
Der Wert dieses Attributs wird intern als Key für ein Hash von
Coderefs mit dem Namen %imgstyle
benutzt.
Um diese Funktion zu benutzen, müssen Sie also schreiben:
<navbar:render name="foobar" imgstyle="foo" select="foo.bar" ... >Dies allein hat noch keine Wirkung, zusätzlich müssen Sie noch (in der gleichen Datei wie die Navigationsleiste oder in einer separaten Include-Datei) eine Funktion definieren, die die Buttons erzeugt:
<: $imgstyle{foo} = sub { my ($file, $txt, $type, $level, $lang, $id) = @_; # actual code to produce the image here } :>
$file
- ist der Name der Datei, die erzeugt werden soll.
$txt
- ist der Text des Buttons.
$type
- ist der
imgstar
-Typ des Buttons: 0 für Normal, 1 für Selected, 2 für Over. $level
- ist die Hierarchiestufe, auf der der Button steht, entsprechend der Zahl der Punkte im
id
-Attribut. $lang
- ist die Sprache, zu der dieser Button gehört, oder der leere String.
$id
- ist das
id
-Attribut des Buttons, was sonst.
Hier ist der Code für das (zugegebener weise leicht pathologische) Beispiel vom Anfang der Seite:
<: { my @cols=("white", "lightseagreen", "yellow"); my @spc=("", "* "); $imgstyle{foo} = sub { my ($file, $txt, $type, $level, $lang, $id) = @_; system ("(banner '". $spc[$level] . $txt . "' |\ asciitopgm 400 140 | pnmrotate 90 |\ pnmscale -height 20 -width 80 |\ pgmtoppm black-". $cols[$type]." | convert - " . $file . ") >/dev/null 2>&1 >/dev/null"); } } :> <navbar:define name="example"> <navbar:header> <table cellspacing=0 cellpadding=0 border=0> </navbar:header> <navbar:footer> </table> </navbar:footer> <navbar:prolog> <tr><td> </navbar:prolog> <navbar:epilog> </td></tr> </navbar:epilog> <navbar:button id=foo img=foo.*.png url=dummy.html txt=foo> <navbar:button id=foo.bar img=bar.*.png url=dummy.html txt=bar> <navbar:button id=foo.bletch img=bletch.*.png url=dummy.html txt=bletch> <navbar:button id=quux img=quux.*.png url=dummy.html txt=quux> </navbar:define>