Danke, jedoch funktioniert das nicht. Zumindest nicht so, wie ich es versuche:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
sub smileys_handler
{
my($self,$main,$text) = @_;
return if $main->{current_user}{nosmileys};
if (!exists($self->{smileys}))
{
$self->{smileys} = {};
foreach my $smiley (@{$main->{settings}{smileys}})
{
my $image = undef;
my $i = 0;
foreach (@$smiley)
{
if (!defined($image))
{
$image = $_;
$i++;
my ($width,$height);
($width,$height) = @{$main->{settings}{images}{$image}} if defined($main->{settings}{images}{$image});
$width = (defined($width) ? " width=$width": "");
$height = (defined($height) ? " height=$height": "");
my $alt = $main->toHTML($smiley->[1]);
$image = "<img src=\"$main->{settings}{urls}{imagesurl}$image.gif\" border=0$width$height alt=\"$alt\">";
}
elsif ($_ ne '/hidden/')
{
$self->{smileys}{$main->toHTML($_)} = $image;
}
}
return $i if($i > 5);
}
}
$$text =~ s/([^\s<>]+)/($self->{smileys}{$1}||$1)/ge;
}
Wenn ich $i beispielsweise in $image ausgeben lassen will (also den aktuellen Wert $i direkt hinter dem Smiley) ist der Wert gleichbleibend 1 d.h. er wird nicht erhöht bei jedem neuen Smiley sondern immer auf gesetzt und dann wieder um 1 erhöht.