paginanummering-v30

Gesponsorde koppelingen

PHP script bestanden

  1. paginanummering-v30

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
// Deze functie heb je nodig om de bladwijzer-functie te kunnen gebruiken.
// Deze functie staat ook http://www.phphulp.nl/php/scripts/2/1079/

    function url($replace = array(), $url = 'x') {
        // De array $geturl zetten, deze zal later alle GET waarden bevatten
        $geturl = array();

        // De URL geschikt maken, zodat deze gebruikt kan worden (als er geen URL is ingevuld, dan word de huidige URL gebruikt)
        $url = $url == 'x' ? $_SERVER['PHP_SELF'] : $url;
        $explurl = explode('?', $url);

        $url = $explurl[0];
        $url = basename($url);

        // Als de opgegeven URL hetzelfde is als de URL van de pagina waar je nu op bent, dan zullen alle GET waarden
        // ... ook weer meedoen. Als je dit ook wilt bij een URL die niet gelijk is, gebruik dan de functie: url($_GET);

        if ($url == basename($_SERVER['PHP_SELF'])) {
            global $_GET;
            $geturl = $_GET;
        }


        // Hier worden de GET variabelen uit de opgegeven link gehaalt (stel je vult pagina.php?var=8 in,
        // ... dan komt die var=8 ook weer voor in de nieuwe URL)

        if (!empty($explurl[1])) {
            $explurl2 = explode('&', $explurl[1]);
            foreach ($explurl2 as $value) {
                $explvalue = explode('=', $value);
                $geturl[$explvalue[0]] = $explvalue[1];
            }
        }


        // Hier worden alle GET variabelen die ingevuld werden als GET variabelen omgezet.
        foreach ($replace as $key => $value) {
            $geturl[$key] = $value;
        }


        // Hier dan, eindelijk de final touch: Alle GET variabelen worden aan de URL toegevoegd.
        $newurl = $url;
        foreach ($geturl as $key => $value) {
            $newurl .= !empty($key) && !empty($value) ? htmlentities(($newurl == $url ? '?' :'&').$key.'='.urlencode($value)) : '';
        }

    return $newurl;
    }

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
    function bladwijzer($input, $aantal, $scheiding = '-', $pagenaam = 'page', $volgorde = 'ASC', $vorigevolgende = 'regular') {
        // De variabele 'totaal' zetten
        if (is_array($input)) {
            $totaal = count($input);
        }

        else {
            $inputgedaan = mysql_query($input);
            $totaal = mysql_num_rows($inputgedaan);
        }

        // Wat belangrijke variabelen: Aantal pagina's, huidige pagina en het beginpunt van de gewenste resultatien
        $aantpages = ceil($totaal/$aantal);
        
        $nopage = $volgorde == 'ASC' ? 1 : $aantpages;
        $page = isset($_GET[$pagenaam]) ? $_GET[$pagenaam] : $nopage;
        $begin = ($page-1) * $aantal;
        $begin = $begin < 0 ? 0 : $begin;

        // De results (en een scheiding tussen sql en array)
        if (is_array($input)) {
            foreach ($input as $key => $value) {
                if ($i >= $begin && $i < ($begin+$aantal)) {
                    $return['array'][$key] = $value;
                }

                $i++;
            }
        }

        else {
            $return['sql'] = mysql_query($input." LIMIT ".$begin.",".$aantal);
            if (mysql_error()) {
                error_function('MySQL', mysql_error().'<br />SQL: '.$input." LIMIT ".$begin.",".$eind, 'function_bladwijzer.php', 28);
            }
        }

        
        // De tekst bepalen voor 'Volgende' en 'Vorige'. Als je weinig ruimte hebt, zijn '«' en '»' wel handig.
        $vorigetext = 'Vorige';
        $volgendetext = 'Volgende';
        $puntjes = '...';
        if ($vorigevolgende == 'klein') {
            $vorigetext = '&raquo;';
            $volgendetext = '&laquo;';
            $puntjes = '&hellip;';
        }

        else {
            $vorigetext = 'Vorige';
            $volgendetext = 'Volgende';
            $puntjes = '...';
        }

        
        // Vorige
        $vorige = $page > 1 ? '<a href="'.url(array($pagenaam => ($page-1))).'">'.$vorigetext.'</a>' : '';
        
        // Volgende
        $volgende = $aantpages >= 1 && ($page+1) <= $aantpages ? '<a href="'.url(array($pagenaam => ($page+1))).'">'.$volgendetext.'</a>' : '';

        // Variabelen voor het inspringen (voor de $scheiding)
        $i_begin = 0;
        $i_eind = $aantpages;
        if (is_numeric($scheiding)) {
            $i_begin = $page-$scheiding;
            $i_eind = $page+$scheiding;
            if ($i_begin < 1) {
                $i_eind -= $i_begin-1;
            }

            if ($i_eind > $aantpages) {
                $i_begin -= $i_eind-$aantpages;
            }

            $vorigepuntjes = $page-$scheiding > 1 ? $puntjes : '';
            $volgendepuntjes = $page+$scheiding < $totaal/$aantal ? $puntjes : '';
        }


        // De nummering
            for ($i = $i_begin; $i <= $i_eind; $i++) {
                if ($i >= 1 && $i <= $aantpages) {
                    $bladwijzer[] = $page == $i ? '<b>'.$i.'</b>' : '<a href="'.url(array($pagenaam => $i)).'">'.$i.'</a>';
                }
            }

            if (isset($bladwijzer)) {
                $return['nummering'] = $vorige.' '.$vorigepuntjes.implode(", ", $bladwijzer).$volgendepuntjes.' '.$volgende;
            }

        if ($volgorde != 'ASC') {
            if (isset($bladwijzer)) {
                $bladwijzer = array_reverse($bladwijzer);
                $return['nummering'] = $volgende.' '.$volgendepuntjes.implode(", ", $bladwijzer).$vorigepuntjes.' '.$vorige;
            }
        }

        
        $return['e - l'] = '<a href="'.url(array($pagenaam => $aantpages)).'">Last</a> - <a href="'.url(array($pagenaam => 1)).'">First</a>';
        $return['totaal'] = $totaal;
        return $return;
    }

?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.