[calc] ## set match_count here, gets screwed up later, for some reason $mc = $Values->{mv_search_match_count}; return; [/calc] [tmp page_title]__COMPANY__ -- [L]Search Results[/L][/tmp] [tmpn display_class]leftonly[/tmpn] [if value more_link] [tmp page_title]__COMPANY__ -- [either][value-extended name=mv_searchspec joiner=" / "][or][value name=more_link filter=uri2string keep=1][/either][/tmp] [/if] [control reset=1] [control-set] [component]product_tree[/component] [output]left[/output] [/control-set] [control reset=1] @_TOP_@ [search-region] [on-match] [tmp meta_header] [calcn] return unless $Values->{more_link}; (my $more_page = $Session->{last_url}) =~ s|^/.*/([^\..]+)(?:\.html)?|$1|; if ($more_page =~ /^(Next|Prev)/) { $Tag->tag({ op => 'header' }, qq{Cache-control: no-cache\nCache-control: no-store\nPragma: no-cache\nExpires: 0\nContent-type: text/html}); } ## $mc set above. my $ml = $Values->{mv_matchlimit} || ''; my $fm = $Values->{mv_first_match} || ''; my ($canon, $rel_prev, $rel_next); #Debug("more_page=$more_page, ml=$ml, fm=$fm, mc=$mc"); my ($prev, $next); REL: { last REL if $mc < $ml; if($fm == 0 || $fm == 1) { # first page $rel_next = $Values->{more_link} . '/2'; } elsif( ($mc - $fm - $ml) <= 0 ) { # last page $prev = sprintf("%.0f", (($fm+$ml) / $ml) - 1); $rel_prev = $Values->{more_link} . '/' . ($prev ? $prev : '1'); } else { # page 2 to second-to-last $prev = sprintf("%.0f", ($fm / $ml)); $next = $prev + 2; $rel_prev = $Values->{more_link} . "/$prev"; $rel_next = $Values->{more_link} . "/$next"; } } CANON: { last CANON if $more_page !~ /^1|(Next|Prev)/; if ($more_page eq '1') { $canon = ''; } else { $canon = sprintf("%.0f", ($fm+$ml) / $ml); $canon = '' if $canon == 1; } $canon = $Values->{more_link} . ($canon ? "/$canon" : ''); } my @out; my $url = ($Variable->{SAMPLEURL} . $Variable->{CGI_URL}) || ''; my $ext = $Scratch->{mv_add_dot_html} ? '.html' : ''; $url !~ /\/$/ and $url .= '/'; push @out, qq{} if $rel_prev; push @out, qq{} if $rel_next; $Tag->tmp('rel_next', 1) if $rel_next; push @out, qq{} if $canon; if ($prev || $next) { $Scratch->{page_title} = $Scratch->{page_title} . ' - Page ' . (($prev || $next)+1) }; return "\t" . join "\n\t", @out; [/calcn] [/tmp]