Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Stronnicowanie
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Spyder
Witam

Jakis czas temu napisalem wlasne stronnicowanie lecz skrypt nie jest idealny. Dokladnie mowiac stronnicuje wszystko ladnie wstawia numerki i guzika back i next ale jak mam np 100 stron to robi mi numerki od 1-100 co nie jest idealnum rozwiazaniem. Nie wiem jak zrobic zeby po np 5 wstawil mi kropki i na koncu ostatnia strone cos jak to:

<back 1,2,3,4,5...54 next>

a po kliknieciu w kropki kolejna 5 i tak dalej lub podobne rozwiazanie. Interesuje mnie skrypt ale nie obiektowy, cos prostego do przerowienia. Czy ktos natknol sie na cos dobrego.

Dzieki
golaod
Czekasz na gotowca czy podczas myślenia nad rozwiązaniem zaciąłeś się ? Pokaż, co próbowałeś zrobić to Ci pomożemy.
Jest dział od poszukiwania skryptów.
Spawnm
Spyder -> pobaw się z instrukcjami warunkowymi, sprawdzaj ile jest stron itp.
Popróbuj , jak coś nie wyjdzie -> pokaż kod.

Hmmm skoro prosisz o skrypt to przeniosę .
Kojak
Napisałem coś takiego... może ci się przyda. Tablica $strona przechowuje tablicę z numerami stron, a stała $ilosc_wypisanych określa ile wypisujemy stron, a resztę kropkujemy.

Plik strona.php
  1. <?
  2. //Tworzymy tablicę $strona
  3. $strona = array();
  4.  
  5. // Dla przykładu przypiszę jej nr strony do indeksu tablicy
  6. for ($i = 0 ; $i < 50 ; $i++)
  7. {
  8.  $nr = $i + 1;
  9.    $strona[$i] = $nr;
  10. }
  11.  
  12.  
  13. $ilosc_stron = count($strona); // Skoro mamy tablicę to zliczamy ilość stron
  14. $ilosc_wypisanych = 9; // ilość stron wypisanych (resztę kropkujemy)
  15.  
  16.  
  17. // Pobieranie aktualnie wybranej strony
  18. if (isset($_GET['akt_str'])) $akt_str = $_GET['akt_str'];
  19. else $akt_str = 1;
  20.  
  21.  
  22. // Teraz sprawdzamy od której ($start) do której ($end) strony wyświetlimy adresy stron
  23. if ($akt_str==1) { $start = 1; $end = $start + $ilosc_wypisanych - 1; }
  24. else if ($akt_str==$ilosc_stron) { $end = $ilosc_stron; $start = $end - $ilosc_wypisanych + 1; }
  25. else
  26. {
  27.    $start = $akt_str-1;
  28.    $end = $akt_str+1;
  29.    $ilosc_iter = 3; // liczba, jedna przed i jedna po
  30.    
  31.    for ( ; ; )
  32.    {
  33.        
  34.        if ($end<$ilosc_stron && isset($strona[$end])) { $end++; $ilosc_iter++; }
  35.        if ($ilosc_iter == $ilosc_wypisanych) break;
  36.        if ($start>1 && isset($strona[$start-1])) { $start--; $ilosc_iter++; }
  37.        if ($ilosc_iter == $ilosc_wypisanych) break;
  38.    }
  39. }
  40.  
  41.  
  42. // Sprawdzanie czy będziemy pokazywać kropki (...)
  43. if ($start==1) $pokaz_start = false;
  44. else $pokaz_start = true;
  45. if ($end == $ilosc_stron) $pokaz_end = false;
  46. else $pokaz_end = true;
  47.  
  48.  
  49. // Właściwa pętla wyświetlająca strony
  50. for ($i = 0 ; $i < $ilosc_stron ; $i++)
  51. {    
  52.    if ($i == 0 && $akt_str != 1 && $pokaz_start)
  53.        $pokaz1 = true;
  54.    else $pokaz1 = false;
  55.    
  56.    if ($i == $ilosc_stron-1 && $akt_str != $ilosc_stron && $pokaz_end)
  57.        $pokaz2 = true;
  58.    else $pokaz2 = false;
  59.    
  60.    // pierwsza iteracja więc wypisujemy Back
  61.  if ($i == 0)
  62.  {
  63.        if ($akt_str>1)
  64.            $back_str = $akt_str - 1;
  65.        else $back_str = $akt_str;
  66.        
  67.        echo "<a href=\"strona.php?action=back&akt_str=$back_str\">Back</a> | ";
  68.  }
  69.    
  70.    if ($pokaz1) echo " ... | ";
  71.  
  72.    if ($strona[$i] >= $start && $strona[$i] <= $end)
  73.    {
  74.        if ($akt_str == $strona[$i]) echo $strona[$i]." | ";
  75.        else echo "<a href=\"strona.php?akt_str=".$strona[$i]."\">".$strona[$i]."</a> | ";
  76.    }
  77.    
  78.    if ($pokaz2) echo " ... | ";
  79.  
  80.    // ostatnia iteracja więc wypisujemy Next
  81.  if ($i == $ilosc_stron - 1)
  82.  {
  83.        if ($akt_str<$ilosc_stron)
  84.            $next_str = $akt_str + 1;
  85.        else $next_str = $akt_str;
  86.        
  87.        echo "<a href=\"strona.php?action=next&akt_str=$next_str\">Next</a>";
  88.  }
  89. }
  90.  
  91. echo "<br /><br />";
  92. echo "Aktualnie wybrany numer srony: <strong>$akt_str</strong>";
  93.  
  94. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.