Custom Pager im Stil des standardmäßigen Drupal-Pagers gestalten

Imitieren der Gestaltung des Standard-Pagers für beliebige Inhalte

Custom Pager im Stil des standardmäßigen Drupal-Pagers gestalten.

[image:1023 align=right size=medium]
Diese Gestaltungsvariante imitiert die Gestaltung des standardmäßigen Drupal-Pagers.

Vorteil: Der Custom Pager fügt sich nahtlos in das Theme ein.
Nachteil: Die unterschiedlichen Pager lassen sich nicht mehr ohne weiteres unterscheiden.

custom-pager.tpl.php
:
<div class="item-list">

    <ul class="pager custom-pager-<?php print $position; ?>">
        <li class="pager-previous first"><?php print $previous; ?></li>
        <?php
            
            $quantity = 5;
            $pager_middle = ceil($quantity / 2);
            $pager_current = $nav_array['current_index'];
            $pager_first = $pager_current - $pager_middle + 1;
            $pager_last = $pager_current + $quantity - $pager_middle+1;
            $pager_max = sizeof($nav_array['full_list']);
            
            
            $i = $pager_first;
            if ($pager_last > $pager_max) { 
                $i = $i + ($pager_max - $pager_last);
                $pager_last = $pager_max;
            }
            if ($i <= 0) {
                $pager_last = $pager_last + (1 - $i)-1;
                $i = 0;
            }
            
            if ($i != $pager_max) {
                for (; $i < $pager_last && $i <= $pager_max; $i++) {
                    $nid = $nav_array['full_list'][$i];
                    if ($i < $pager_current) {
                      print '<li class="pager-item">'.l($i+1,'node/'. $nid) .'</li>';
                    }
                    if ($i == $pager_current) {
                      print '<li class="pager-current">'.l($i+1,'node/'. $nid) .'</li>';
                    }
                    if ($i > $pager_current) {
                      print '<li class="pager-item">'.l($i+1,'node/'. $nid) .'</li>';
                    }
                }
            }
            ?>
        <li class="pager-next last"><?php print $next; ?></li>
    </ul>
</div>