1 |
8 |
ahitrov@rambler.ru |
<% join($delimiter, @parts) %> |
2 |
|
|
<%args> |
3 |
|
|
$p => 1 |
4 |
|
|
$n => 10 |
5 |
|
|
$total => undef |
6 |
|
|
$href => undef |
7 |
|
|
$params => {} |
8 |
|
|
$pname => 'p' |
9 |
|
|
$delimiter => ' | ' |
10 |
|
|
|
11 |
|
|
</%args> |
12 |
|
|
<%init> |
13 |
|
|
|
14 |
|
|
# если !$href и файл страницы не является DirectoryIndex, напр: |
15 |
|
|
# .../../gallery.html. а ссылка в нем относительная, напр: <a href="?param=1">, |
16 |
|
|
# то IE перейдет на .../../gallery.html?param=1., а NN (4.x) перейдет на |
17 |
|
|
# .../../?param=1.., следующий блок вытащит и подставит нужное имя файла. |
18 |
|
|
# |
19 |
|
|
if (!$href) |
20 |
|
|
{ |
21 |
|
|
$href = $r->uri(); |
22 |
|
|
$href =~ s/\/([\w]{1,}(\.[sp]?html?))//; |
23 |
|
|
$href = $1; |
24 |
|
|
if ($href =~ /(index|default|main)$2/ ){ |
25 |
|
|
$href = ''; |
26 |
|
|
} |
27 |
|
|
} |
28 |
|
|
|
29 |
|
|
my $parts = int($total/$n) + ($total % $n ? 1 : 0); |
30 |
|
|
my @parts; |
31 |
|
|
foreach my $pn (1 .. $parts) |
32 |
|
|
{ |
33 |
|
|
$params->{$pname} = $pn; |
34 |
|
|
push @parts, ($pn == $p) ? "<b>$pn</b>" : "<a href=\"$href?".join('&', map { "$_=$params->{$_}" } keys %$params)."\">$pn</a>"; |
35 |
|
|
} |
36 |
|
|
|
37 |
|
|
</%init> |