Seite 1 von 1

[gelöst] Seitennavigation wie im vbulletin?

Verfasst: 25.07.2006 18:42
von markus4deadsy
EDIT: Hab eine lösung gefunden (siehe unten)
Hi zusammen...

Möchte mein Forum nach langer zeit endlich mal wieder etwas verändern.
Die Seitennavigation ist ja im phpBB erstmal ziemlich simpel dargestellt:

Gehe zu Seite 1, 2, 3 Weiter

Jetzt möchte ich diese Navigation so ähnlich wie im Vbulletin gestalten.
[ externes Bild ]

Es gab da mal einen kleinen Hack. Ich find den aber nirgends.
Könnt ihr mir da weiter helfen? Wäre euch sehr dankbar ;)...

der markus
Um die Seitennavigation wie im Vbulletin zu gestalten folgt einfach der anleitung unter diesem link ;)

http://forums.zerocubed.net/viewtopic.p ... d903c9b9a0

Verfasst: 26.07.2006 01:56
von IPB_Flüchtling
Oh,

danke Markus! Werde das auch mal ausprobieren! Die vBulletin-Funktion, dass man direkt zu einer bestimmten Seite springen kann (z.B. von Seite 1 zu Seite 55) ist da aber nicht integriert, oder? (Aufrufen lässt sich diese Funktion im vBulletin über den "Pfeil nach unten"-Button ganz rechts in der Pagination.)

LG, IPB_Flüchtling

EDIT: ACHTUNG:

Ein paar Unsauberkeiten sind in dem "Mod" schon drinnen. Z.B. gibt es bei mir keine Klasse "gensmallest". Statt & wird ein paar Mal & verwendet. Und in einer der $page_string-Zeilen kommt cellpadding doppelt vor. Andere HTML-Fehler sind auch enthalten. Vielleicht sollte das Vorhaben besser mit CSS als mit <table> gelöst werden.

Verfasst: 26.07.2006 07:26
von ATARI
Na das ist ja mal ein saugeiles Teil !!

@IBP_Flüchtling: Wie wärs wenn du das Teil überarbeitest bzw. die Fehler rausmachst und dann hier postest.
Da würden wir uns alle freuen! :D

Verfasst: 27.07.2006 15:45
von markus4deadsy
Oki ihr lieben...

Hab die fehler die in der Originalen Version waren behoben...
Hier die neue Version:

Code: Alles auswählen

//  
 // Pagination routine, generates  
 // page number sequence  
 //  
 function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE, $start_field='start')  
 {  
    global $lang;  
   
    $total_pages = ceil($num_items/$per_page);  
   
    if ( $total_pages <= 1 )  
    {  
       return '';  
    }  
   
    $on_page = floor($start_item / $per_page) + 1;  
   
    $page_string = '';  
    if ( $total_pages > 5 )  
    {  
       $init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;  
   
       for($i = 1; $i < $init_page_max + 1; $i++)  
       {  
          $page_string .= ( $i == $on_page ) ? '<td class="row2" width="20" align="center" nowrap><b>' . $i . '</b></td>' : '<td class="row1" width="20" align="center" nowrap><a href="' . append_sid($base_url . "&$start_field=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a></td>';  
          if ( $i <  $init_page_max )  
          {  
             $page_string .= "";  
          }  
       }  
   
       if ( $total_pages > 3 )  
       {  
          if ( $on_page > 1  && $on_page < $total_pages )  
          {  
             $page_string .= ( $on_page > 5 ) ? '<td class="row1" width="20" align="center" nowrap>...</td>' : '';  
   
             $init_page_min = ( $on_page > 4 ) ? $on_page : 5;  
             $init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;  
   
             for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)  
             {  
                $page_string .= ($i == $on_page) ? '<td class="row2" width="20" align="center" nowrap><b>' . $i . '</b></td>' : '<td class="row1" width="20" align="center" nowrap><a href="' . append_sid($base_url . "&$start_field=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a></td>';  
                if ( $i <  $init_page_max + 1 )  
                {  
                   $page_string .= '';  
                }  
             }  
   
             $page_string .= ( $on_page < $total_pages - 4 ) ? '<td class="row1" width="20" align="center" nowrap>...</td>' : '';  
          }  
          else  
          {  
             $page_string .= '<td class="row1" width="20" align="center" nowrap>...</td>';  
          }  
   
          for($i = $total_pages - 2; $i < $total_pages + 1; $i++)  
          {  
             $page_string .= ( $i == $on_page ) ? '<td class="row2" width="20" align="center" nowrap><b>' . $i . '</b></td>'  : '<td class="row1" width="20" align="center" nowrap><a href="' . append_sid($base_url . "&$start_field=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a></td>';  
             if( $i <  $total_pages )  
             {  
                $page_string .= "";  
             }  
          }  
       }  
    }  
    else  
    {  
       for($i = 1; $i < $total_pages + 1; $i++)  
       {  
          $page_string .= ( $i == $on_page ) ? '<td class="row2" width="20" align="center" nowrap><b>' . $i . '</b></td>' : '<td class="row1" width="20" align="center" nowrap><a href="' . append_sid($base_url . "&$start_field=" . ( ( $i - 1 ) * $per_page ) ) . '">' . $i . '</a></td>';  
          if ( $i <  $total_pages )  
          {  
             $page_string .= '';  
          }  
       }  
    }  
   
    if ( $add_prevnext_text )  
    {  
       if ( $on_page > 1 )  
       {  
          $page_string = '<td class="row1" width="20" align="center" nowrap><a title="Vorherige Seite" class="gensmallest" href="' . append_sid($base_url . "&$start_field=" . ( ( $on_page - 2 ) * $per_page ) ) . '"><b>«</b></a></td>' . $page_string;  
       }  
   
       if ( $on_page < $total_pages )  
       {  
          $page_string .= '<td class="row1" width="20" align="center" nowrap><a title="Nächste Seite" class="gensmallest" href="' . append_sid($base_url . "&$start_field=" . ( $on_page * $per_page ) ) . '"><b>»</b></a></td>';  
       }  
   
    }  
   
    $page_string = '<table class="forumline" cellpadding="2" cellspacing="1" height="15"><tr><td class="row3" nowrap>&nbsp;Seite ' . $on_page . ' von ' . $total_pages . '&nbsp;</td>' . $page_string . '</tr></table>';  
   
    return $page_string;  
 }  
Hätte nie gedacht das es so umständlich ist diesen Rahmen um die Navi zu Basteln.

Verfasst: 27.07.2006 16:10
von ATARI
Kleine Schönheitskorrektur:

Statt » sollte man besser &raquo; schreiben
und statt « sollte man &laquo; schreiben!

Aber es geht auch so wie du es gepostet hast! ;)

Verfasst: 27.07.2006 22:13
von markus4deadsy
ATARI hat geschrieben:Kleine Schönheitskorrektur:

Statt » sollte man besser &raquo; schreiben
und statt « sollte man &laquo; schreiben!

Aber es geht auch so wie du es gepostet hast! ;)
axo?

sind die codes besser als die zeichen? Werden die zeichen bei manchen Browsern nicht angezeigt?

Verfasst: 27.07.2006 22:27
von PureSpider
markus4deadsy hat geschrieben:axo?

sind die codes besser als die zeichen? Werden die zeichen bei manchen Browsern nicht angezeigt?
Sie sind valides HTML, das sollte als Grund reichen ;)

Verfasst: 28.07.2006 06:06
von markus4deadsy
hmmm was ist denn ein html valid?

die zeichen zeigts doch auch so an...

Verfasst: 28.07.2006 06:18
von IPB_Flüchtling
Valides HTML ist quasi HTML ohne Rechtschreib- und Grammatikfehler. Zum Überprüfen der Validität kannst Du z.B. folgende Seite des "Dudens" für HTML verwenden:

http://validator.w3.org

LG, IPB_Flüchtling