root/dev/common/includes/class.pagesplitter.php

Revision 438, 1.7 KB (checked in by kovell, 13 years ago)

Fixes: pagesplitter creates correct links for 1000+ pages. Feed fetcher caches feeds in case of timeouts.

Line 
1<?php
2class PageSplitter
3{
4    function PageSplitter($max, $split)
5    {
6        $this->max_ = $max;
7        $this->split_ = $split;
8    }
9
10    function getSplit()
11    {
12        return $this->split_;
13    }
14
15    function generate()
16    {
17        if ($this->max_ / $this->split_ <= 1)
18            return;
19
20        $html = "<br><p><b>[</b> Page: ";
21        $endpage = ceil($this->max_ / $this->split_);
22        if ($_GET['page'])
23        {
24            $url = preg_replace("/&page=([0-9]+)/", "",
25                $_SERVER['QUERY_STRING']);
26                        $url =preg_replace("/&/", "&amp;", $url);
27            $page = $_GET['page'];
28        }
29        else
30        {
31            $url = $_SERVER['QUERY_STRING'];
32                        $url =preg_replace("/&/", "&amp;", $url);
33            $page = 1;
34        }
35        for ($i = 1; $i <= $endpage; $i++)
36        {
37            if ($i != $page)
38            {
39                if ($i == 1 || $i == $endpage || (($i >= $page - 1 && $i <= $page + 1)))
40                {
41                    if ($i != 1)
42                        $html .= "<a href=\"?".$url."&amp;page=".$i."\">".$i."</a>&nbsp;";
43                    else
44                        $html .= "<a href=\"?".$url."\">".$i."</a>&nbsp;";
45                }elseif ($i < $page && !$dotted)
46                {
47                    $dotted = true;
48                    $html .= "<b>..&nbsp;</b>";
49                }elseif ($i > $page && !$ldotted)
50                {
51                    $ldotted = true;
52                    $html .= "<b>..&nbsp;</b>";
53                }
54            }
55            else
56                $html .= "<b>".$i."</b>&nbsp;";
57        }
58        $html .= "<b>]</b>";
59        return $html;
60    }
61}
62?>
Note: See TracBrowser for help on using the browser.