Kære udviklere,
Nu sidder jeg (igen) med et "pagination"-script problem. Det er ikke et desideret problem, så scriptet virker fint. Men jeg skal have splittet min liste op, så der maksimalt er omkring 7 knapper.
Et eksempel kunne være:
< 1 2 (...) 67 68 69 (...) 120 121 >
Mit spørgsmål forlyder på at jeg ikke har nogen idé til hvordan jeg skal splitte "knapperne" på, som vist foroven. Det skal være opstillet med de to første knapper, dernæst tre punktummer, så de tre midterste knapper efterfulgt af tre punktummer, og til sidst de sidste to knapper.
Jeg har ledt rundt omkring på nettet, men kan ikke rigtig finde en forklaring der passer til mit script.
- $max = 2;
- if(isset($_GET["page"]))
- $page = $_GET["page"];
- else
- $page = 1;
-
- if($page == 0)
- $page = 1;
-
- $offset = ($page - 1) * $max;
- $limits = 7;
-
- $db->query("SELECT * FROM portfolio ORDER BY id DESC LIMIT ".$offset.", ".$max);
- $result = $db->fetchAll();
- $i = 0;
- foreach($result as $row):
- echo '<div class="thumb_border">
- <div style="margin:9px;">
- <a href="'.$menu->menu().$row["id"].'/'.strtolower(str_replace(" ", "-", $row["titel"])).'/">
- <img src="'.$menu->menu().'images/portfolio/thumb/thumb_'.$row["bSti"].'" alt="" />
- </a>
- </div>
- </div>';
- echo ($i % 2 == 0 ? '<div class="thumb_break"></div>' : false);
- $i++;
- endforeach;
-
- $db->mysql_close();
-
- $db->mysql_open();
- $db->query("SELECT COUNT(*) AS counts FROM portfolio ORDER BY id DESC");
- $result = $db->fetchAll();
- foreach($result as $row):
- if($row["counts"] > $max)
- {
- echo '<div style="display:block;">';
- $total = $row["counts"];
- $totalpages = ceil($total / $max);
- $lpm1 = $totalpages - 1;
-
- for ($i=0;$i<$totalpages;$i++):
- // last-botton
- if($i == 0)
- {
- if($page != 1)
- echo '<span class="pag"><a href="'.$menu->menu().'page/'.($page - 1).'/"><</a></span>';
- else
- echo '<span class="pag" disabled="disabled"><</span>';
- }
-
- // current page
- if($i == ($page - 1))
- echo '<span class="pag"><b>'.($i + 1).'</b></span>';
- else
- {
- // active pages
- if(($i + 1) == 1)
- echo '<span class="pag"><a href="'.$menu->menu().'">'.($i + 1).'</a></span>';
- else
- echo '<span class="pag"><a href="'.$menu->menu().'page/'.($i + 1).'/">'.($i + 1).'</a></span>';
- }
-
- // next-botton
- if(($i+1) == ($totalpages))
- {
- if($page != ($totalpages))
- echo '<span class="pag"><a href="'.$menu->menu().'page/'.($page + 1).'/">></a></span>';
- else
- echo '<span class="pag" disabled="disabled">></span>';
- }
- endfor;
- echo '</div>';
- }
- endforeach;
Hvis I ikke kan følge min idé, så bare spørg. Det jeg sådan set spørger efter er hvordan man begrænser antallet af knapper, ud fra eksempelvis en
if-statement.
Håber at der er nogle der kan give mig lidt hjælp, eller i det mindste bare et hint til hvordan det kunne gøres.