Gossamer Forum
Home : Products : Gossamer Links : Development, Plugins and Globals :

Re: [katabd] PageBuilder to generate users pages...

Quote Reply
Re: [katabd] PageBuilder to generate users pages... In reply to
This is the span global that I use:

sub {
# ---------------------------------------------------------------
# Display/calculate a span pages toolbar.
#
my $tags=shift;
my $nh=$tags->{nh};
my $page=$tags->{p};
my $maxhits = $tags->{maxhits}||100;
my $numhits = $tags->{numhits}||1000;
my ($next_url, $max_page, $next_hit, $prev_hit, $left, $right, $upper, $lower, $first, $url, $last, $i);

# Return if there shouldn't be a speedbar.
return unless ($numhits > $maxhits);

$next_hit = $nh + 1;
$prev_hit = $nh - 1;
$max_page = int ($numhits / $maxhits) + (($numhits % $maxhits) ? 1 : 0);

# First, set how many pages we have on the left and the right.
$left = $nh;
$right = int($numhits/$maxhits) - $nh;

# Then work out what page number we can go above and below.
($left > 7) ? ($lower = $left - 7) : ($lower = 1);
($right > 7) ? ($upper = $nh + 7) : ($upper = int($numhits/$maxhits) + 1);

# Finally, adjust those page numbers if we are near an endpoint.
(7 - $nh >= 0) and ($upper = $upper + (8 - $nh));
($nh > ($numhits/$maxhits - 7)) and ($lower = $lower - ($nh - int($numhits/$maxhits - 7) - 1));
$url = "";
# Then let's go through the pages and build the HTML.
($nh > 1) and ($url .= qq~<a href="$CFG->{db_cgi_url}/page.cgi?p=$page">[&lt;&lt;]</a> ~);
($nh > 1) and ($url .= qq~<a href="$CFG->{db_cgi_url}/page.cgi?p=$page&nh=$prev_hit">[&lt;]</a> ~);
for ($i = 1; $i <= int($numhits/$maxhits) + 1; $i++) {
if ($i < $lower) { $url .= " ... "; $i = ($lower-1); next; }
if ($i > $upper) { $url .= " ... "; last; }
($i == $nh) ? ($url .= qq~$i ~) : ($url .= qq~<a href="$CFG->{db_cgi_url}/page.cgi?p=$page&nh=$i">$i</a> ~);
if ($i * $maxhits == $numhits) { $nh == $i and $next_hit = $i; last; }
}
$url .= qq~<a href="$CFG->{db_cgi_url}/page.cgi?p=$page&nh=$next_hit">[&gt;]</a> ~ unless ($next_hit == $nh or ($nh * $maxhits > $numhits));
$url .= qq~<a href="$CFG->{db_cgi_url}/page.cgi?p=$page&nh=$max_page">[&gt;&gt;]</a> ~ unless ($next_hit == $nh or ($nh * $maxhits > $numhits));
return $url;
}
Subject Author Views Date
Thread PageBuilder to generate users pages... katabd 5393 Aug 8, 2003, 2:22 PM
Thread Re: [katabd] PageBuilder to generate users pages...
afinlr 5299 Aug 8, 2003, 2:51 PM
Thread Re: [afinlr] PageBuilder to generate users pages...
katabd 5283 Aug 9, 2003, 8:20 PM
Thread Re: [katabd] PageBuilder to generate users pages...
afinlr 5271 Aug 10, 2003, 4:33 AM
Post Re: [afinlr] PageBuilder to generate users pages...
net_wiz 5255 Aug 10, 2003, 2:04 PM
Thread Re: [afinlr] PageBuilder to generate users pages...
Payooo 5293 Aug 10, 2003, 3:31 PM
Thread Re: [Payooo] PageBuilder to generate users pages...
afinlr 5244 Aug 10, 2003, 4:33 PM
Post Re: [afinlr] PageBuilder to generate users pages...
Payooo 5240 Aug 10, 2003, 5:44 PM
Thread Re: [afinlr] PageBuilder to generate users pages...
katabd 5164 Sep 16, 2003, 10:03 PM
Thread Re: [katabd] PageBuilder to generate users pages...
afinlr 5132 Sep 17, 2003, 1:46 AM
Thread Re: [afinlr] PageBuilder to generate users pages...
katabd 5125 Sep 17, 2003, 5:51 PM
Post Re: [katabd] PageBuilder to generate users pages...
afinlr 5140 Sep 17, 2003, 5:59 PM
Thread Re: [afinlr] PageBuilder to generate users pages...
Essam 4903 Sep 16, 2004, 10:58 AM
Thread Re: [Essam] PageBuilder to generate users pages...
afinlr 4909 Sep 17, 2004, 4:13 PM
Post Re: [afinlr] PageBuilder to generate users pages...
Jag 4881 Sep 17, 2004, 8:10 PM