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>