Terug | Naar sckripts.nl



Demonstratie Pagina nummering

(CFG) Range: 3
(CFG) Maximum reacties per pagina: 15
(URL) Huidige pagina: 1
(SQL) Totaal reacties: 1000
(BEREKENING) Totaal paginas: 67
(RESULTAAT URLS) Pagina nummers: Vorige 1,2,3...65,66,67 Volgende
(RESULTAAT SQL) SQL: LIMIT 0, 15

<h1>Demonstratie Pagina nummering</h1>
<?php
function page_num_urls($max$prefix=null$suffix=null$current_template=null$use_pagenum=true$startWith=1$range=3) {
    
$prefix = ($prefix!==null) ? $prefix '+page_num=';
    
$suffix = ($suffix!==null) ? $suffix '';
    
$current_template = ($current_template!==null) ? $current_template false;
    
$pagenum = (isset($_GET['page_num']) && is_numeric($_GET['page_num'])) ? $_GET['page_num'] : 1;
    
$urls '';

    for(
$i $startWith$i <= $max$i++) {
        if(
$i > ($max-$range)) {
            
# Goto Append
        
} elseif($use_pagenum && $max $range && $i $range && ($i == $pagenum $range || $i == $pagenum $range) ) {
            
$urls  preg_replace('/,$/'''$urls);
            
$urls .= '...';
            continue;
        } elseif(
$use_pagenum && $i > ($pagenum $range) && $i < ($pagenum+$range)) {
            
# Goto Append
        
} elseif(!$use_pagenum && $i==($range+1)) {
            
$urls  preg_replace('/,$/'''$urls);
            
$urls .= '...';
            continue;
        } elseif(
$max $range && $i $range) {
            continue;
        }

        
// Append
        
if($i!=$pagenum || ($i==$pagenum && !$current_template)) {
            
$urls .= '<a href="'.$prefix.$i.$suffix.'">'.$i.'</a>,';
        } else {
            
$urls .= sprintf($current_template$i).',';
        }
    }
    
$urls  preg_replace('/,$/'''$urls);
    return 
$urls;
}
// Alle urls in dit script bevatten &test_reacties en &test_range puur voor de demonstratie. Deze moeten natuurlijk weg als jij het script gebruikt.
// Ipv daarvan wordt $aantal_reacties gevult m.b.v een query, en $range wordt een config variabele.
$max_entries_per_page 15;
$pagenum = (isset($_GET['page_num']) && is_numeric($_GET['page_num'])) ? $_GET['page_num'] : 1;
$aantal_reacties = (isset($_GET['test_reacties']) && is_numeric($_GET['test_reacties'])) ? $_GET['test_reacties'] : 1000;
$totaal ceil( (int) $aantal_reacties / (int) $max_entries_per_page);
$range = (isset($_GET['test_range']) && is_numeric($_GET['test_range'])) ? $_GET['test_range'] : 3;
$tussen_urls page_num_urls($totaalnull'&test_reacties='.$aantal_reacties.'&test_range='.$range'<b>%s</b>'true1$range);
$limit_x = (($pagenum -1) * (int) $max_entries_per_page);
$url_vorige = ($pagenum 1) ? '<a href="?page_num='.($pagenum-1).'&test_reacties='.$aantal_reacties.'&test_range='.$range.'">Vorige</a>' 'Vorige';
$url_volgende = ($pagenum $totaal) ? '<a href="?page_num='.($pagenum+1).'&test_reacties='.$aantal_reacties.'&test_range='.$range.'">Volgende</a>' 'Volgende';

echo 
'(CFG) <b>Range:</b> '.$range.'<br />';
echo 
'(CFG) <b>Maximum reacties per pagina:</b> '.$max_entries_per_page.'<br />';
echo 
'(URL) <b>Huidige pagina:</b> '.$pagenum.'<br />';

echo 
'(SQL) <b>Totaal reacties:</b> '.$aantal_reacties.'<br />';
echo 
'(BEREKENING) <b>Totaal paginas:</b> '.$totaal.'<br />';

echo 
'(RESULTAAT URLS) <b>Pagina nummers:</b> <small>'$url_vorige.' '.$tussen_urls.' '.$url_volgende .'</small><br />';
echo 
'(RESULTAAT SQL) <b>SQL:</b> LIMIT '$limit_x .', '.$max_entries_per_page.'<br />';
echo 
'<hr />';
highlight_file('voorbeelden/Vorige-Volgende.php');
?>