From 6a28c14b9cb0b02e89c9dc20dba507e1fa55ce0a Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Mon, 25 May 2009 13:49:51 +0000 Subject: [PATCH] remove all accents from pager links git-svn-id: file:///home/dpavlin/private/svn/webpac/trunk@789 13eb9ef6-21d5-0310-b721-a9d68796d827 --- WebPac.pm | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/WebPac.pm b/WebPac.pm index f59c73b..872aec0 100644 --- a/WebPac.pm +++ b/WebPac.pm @@ -143,16 +143,37 @@ sub make_pager($$$) { # my ($pager_prev,$pager_next, $pager_jump) = ('','',''); - my $nav_fmt=qq{ %s }; + sub url_with_params { + my ($q,$text) = @_; + my %param = $q->Vars; + my @p; + foreach my $p ( keys %param ) { + my $v = $param{$p}; + next unless defined $v and length($v) > 0; + if ( $v =~ m{\0} ) { + push @p, $p . '=' . my_unac_string($CHARSET, $_) + foreach (split(/\0/, $v )); + } else { + push @p, $p . '=' . my_unac_string($CHARSET, $v); + } + } + + return + qq{ $text }; + } if ($pager->current_page() > $pager->first_page) { $q->param('PAGER_offset', $pager->current_page - 1); - $pager_prev .= sprintf($nav_fmt,$q->url(-relative=>1, -query=>1),'<<'); + $pager_prev .= url_with_params( $q, '<<'); } if ($pager->previous_set) { $q->param('PAGER_offset', $pager->previous_set); - $pager_prev .= sprintf($nav_fmt,$q->url(-relative=>1, -query=>1),'..'); + $pager_prev .= url_with_params( $q,'..'); } @@ -162,18 +183,18 @@ sub make_pager($$$) { $pager_jump .= "$p "; } else { $q->param('PAGER_offset', $p); - $pager_jump .= sprintf($nav_fmt,$q->url(-relative=>1, -query=>1),$p); + $pager_jump .= url_with_params($q,$p); } } if ($pager->next_set) { $q->param('PAGER_offset', $pager->next_set); - $pager_next .= sprintf($nav_fmt,$q->url(-relative=>1, -query=>1),'..'); + $pager_next .= url_with_params($q,'..'); } if ($pager->current_page() < $pager->last_page) { $q->param('PAGER_offset', $pager->current_page + 1); - $pager_next .= sprintf($nav_fmt,$q->url(-relative=>1, -query=>1),'>>'); + $pager_next .= url_with_params($q,'>>'); } $tmpl->param('PAGER_PREV', $pager_prev); -- 2.20.1