1 |
8 |
ahitrov@rambler.ru |
<% $DIGITS_LINE %>\ |
2 |
|
|
% if (defined $alpha) { |
3 |
|
|
%delete $local_params->{alpha}; |
4 |
|
|
<a href="<% $href %>?<% join('&', map { "$_=$local_params->{$_}" } keys %$local_params) %>">Сброс</a>\ |
5 |
|
|
% } |
6 |
|
|
<br> |
7 |
|
|
<% $EN_ALPHA_LINE %> |
8 |
|
|
<br> |
9 |
|
|
<% $RU_ALPHA_LINE %> |
10 |
|
|
|
11 |
|
|
<%args> |
12 |
|
|
$alpha => undef |
13 |
|
|
$href => undef |
14 |
|
|
$params => {} |
15 |
|
|
$delimiter => ' | ' |
16 |
|
|
</%args> |
17 |
|
|
<%ONCE> |
18 |
|
|
my @digits=qw(0 1 2 3 4 5 6 7 8 9); |
19 |
|
|
my @en_alpha=qw(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z); |
20 |
|
|
my @ru_alpha=qw(А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я & ' "); #' - restore vim syntax highlighting |
21 |
|
|
</%ONCE> |
22 |
|
|
|
23 |
|
|
<%init> |
24 |
|
|
my $local_params={%$params}; |
25 |
|
|
$local_params->{p}=1; |
26 |
|
|
delete $local_params->{search_by} if exists $local_params->{search_by}; |
27 |
|
|
delete $local_params->{search} if exists $local_params->{search}; |
28 |
|
|
|
29 |
|
|
# если !$href и файл страницы не является DirectoryIndex, напр: |
30 |
|
|
# .../../gallery.html. а ссылка в нем относительная, напр: <a href="?param=1">, |
31 |
|
|
# то IE перейдет на .../../gallery.html?param=1., а NN (4.x) перейдет на |
32 |
|
|
# .../../?param=1.., следующий блок вытащит и подставит нужное имя файла. |
33 |
|
|
|
34 |
|
|
if (!$href) |
35 |
|
|
{ |
36 |
|
|
$href = $r->uri(); |
37 |
|
|
$href =~ s/\/([\w]{1,}(\.[sp]?html?))//; |
38 |
|
|
$href = $1; |
39 |
|
|
if ($href =~ /(index|default|main)$2/ ){ |
40 |
|
|
$href = ''; |
41 |
|
|
} |
42 |
|
|
} |
43 |
|
|
|
44 |
|
|
my @parts=(); |
45 |
|
|
foreach my $pn (@digits) |
46 |
|
|
{ |
47 |
|
|
$local_params->{alpha} = $pn; |
48 |
|
|
push @parts, ($pn eq $alpha) ? $pn : "<a href=\"$href?".join('&', map { "$_=$local_params->{$_}" } keys %$local_params)."\">$pn</a>"; |
49 |
|
|
} |
50 |
|
|
my $DIGITS_LINE=join($delimiter,@parts); |
51 |
|
|
|
52 |
|
|
@parts=(); |
53 |
|
|
foreach my $pn (@en_alpha) |
54 |
|
|
{ |
55 |
|
|
$local_params->{alpha} = $pn; |
56 |
|
|
push @parts, ($pn eq $alpha) ? $pn : "<a href=\"$href?".join('&', map { "$_=$local_params->{$_}" } keys %$local_params)."\">$pn</a>"; |
57 |
|
|
} |
58 |
|
|
my $EN_ALPHA_LINE=join($delimiter,@parts); |
59 |
|
|
|
60 |
|
|
@parts=(); |
61 |
|
|
foreach my $pn (@ru_alpha) |
62 |
|
|
{ |
63 |
|
|
$local_params->{alpha} = $pn; |
64 |
|
|
push @parts, ($pn eq $alpha) ? $pn : "<a href=\"$href?".join('&', map { "$_=".$m->interp->apply_escapes($local_params->{$_}, 'u') } keys %$local_params)."\">$pn</a>"; |
65 |
|
|
} |
66 |
|
|
my $RU_ALPHA_LINE=join($delimiter,@parts); |
67 |
|
|
|
68 |
|
|
</%init> |
69 |
|
|
|
70 |
|
|
<%doc> |
71 |
|
|
Стандартная алфавитная линеечка |
72 |
|
|
</%doc> |