Experience1986
Erfahrenes Mitglied
Hi,
ich möchte gerade eine Seiteneinteilung realisiereren. Dies stellt soweit auch kein Problem da, jedoch möchte ich bei der Ausgabe der Seitenzahlen eine einschränkung vornehmen.
Wenn diese eine bestimmte Anzahl überschreitet (zb. 12), werden nur die ersten bzw. die letzten 3 Seiten sowie die 2 Seiten vor und nach der aktuellen Seite ausgegeben.
Daran scheitere ich derzeit.
Mein derzeitiger Code:
Bin für jeden Hinweis oder auch nur einen Suchbegreiff für Google dankbar, denn dort fand ich bislang nichts.
Vielen Dank schonmal im voraus.
ich möchte gerade eine Seiteneinteilung realisiereren. Dies stellt soweit auch kein Problem da, jedoch möchte ich bei der Ausgabe der Seitenzahlen eine einschränkung vornehmen.
Wenn diese eine bestimmte Anzahl überschreitet (zb. 12), werden nur die ersten bzw. die letzten 3 Seiten sowie die 2 Seiten vor und nach der aktuellen Seite ausgegeben.
Daran scheitere ich derzeit.
Mein derzeitiger Code:
Code:
if (empty($page)) { $page=1; }
$ipp=10;
$itotal=SQL_NUM_ROWS("SELECT * FROM forum_posts WHERE topic_id=$topic_id AND enable=1");
$pages=ceil($itotal / $ipp);
if ($pages == 0) { $pages=1; }
$sqlstart=($page*$ipp)-$ipp;
$sqlend=$ipp;
$lastcounts=($page*$ipp)-$ipp;
if ($pages <= 12)
{
for ($i=1; $i <= $pages; $i++)
{
if ($page != $i)
{ echo '<a href="'.$PHP_SELF.'?topic_id='.$topic_id.'&page='.$i.'" style="text-decoration: none; font-size:11pt; font-weight:bold;">'.$i.'</a>'; }
else { echo '<font style="text-decoration: none; font-size:14pt; ">»'.$i.'«</font>'; }
if ($i < $pages) { echo ", "; }
}
}
else
{
$dots=0;
$middle=ceil($pages/2);
$output='';
for ($i=1; $i <= $pages; $i++)
{
// $middle=$j;
if (($i <= 3) or ($i >=$pages-2) or (($i > $middle-2) and $i <= ($middle+1)))
{
if ($page != $i)
{ $output.='<a href="'.$PHP_SELF.'?topic_id='.$topic_id.'&page='.$i.'" style="text-decoration: none; font-size:11pt; font-weight:bold;">'.$i.'</a>'; }
else { $output.='<font style="text-decoration: none; font-size:14pt; ">»'.$i.'«</font>'; }
if ($i < $pages) { $output.=", "; }
}
else
{
$output.="%";
$dots++;
}
}
$SDots='';
for ($i=1; $i <= ceil($dots/2)-1; $i++)
{
$SDots.='%';
}
$output=str_replace($SDots, ' .., ', $output);
// echo $output;
for ($i=0; $i <=strlen($output); $i++)
{
if ($output[$i] == '%') { $output[$i]=''; }
}
echo $output;
}
Bin für jeden Hinweis oder auch nur einen Suchbegreiff für Google dankbar, denn dort fand ich bislang nichts.
Vielen Dank schonmal im voraus.