Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pager
Forum PHP.pl > Forum > Przedszkole
Dizzy
Witam więc mam problem z pagerem.
Działa on w ten sposób:
Kod
index.php?show=pokaz&ppidPagera=1

A na stronie stosuje jeszcze foldery więc musi on wyglądać w ten sposób:
Kod
index.php?show=pokaz&folder='. $folder .'&ppidPagera=1

$folder jets pobierany za pomocą GET...
  1. <?php
  2. if (isset($_GET['folder'])){
  3.   $folder=$_GET['folder'];
  4.   } else {
  5.   $folder='';}
  6. ?>


Jak zrobić by to działało bo niestety niedziała...
( Pager jest napisany w klasie... o programowaniu obiektywnym mało wiem więc pisze do was z prośbą o pomoc... )
osl
a tak konkretnie to co nie działa?
Bo z Twojego postu specjalnie nic nie wynika...
Dizzy
Kod
Parse error: syntax error, unexpected '.', expecting ',' or ';' in /home/tibiahun/public_html/Pager.class.php on line 62


I w tej lini znajduje się:
  1. <?php
  2. protected $linkSep = 'index.php?show=pokaz&folder='. $folder .'&';
  3. ?>
osl
podstawy...
$folder nie jest żadną zmienną globalną, więc podczas tworzenia klasy nie możesz używać jej w ten sposób. pokaż całą klasę, znajdzie się zapewne lepsze miejsce dla tej zmiennej...
Dizzy
  1. <?php
  2. class Pager {
  3.    /** Stałe klasy */
  4.    const GOTO_FIRST = 'gtf';
  5.    const GOTO_PREV_X = 'gtpx';
  6.    const GOTO_PREV = 'gtp';
  7.    const GOTO_NEXT = 'gtn';
  8.    const GOTO_NEXT_X = 'gtnx';
  9.    const GOTO_LAST = 'gtl';
  10.    const PAGES = 'pages';
  11.    const PAGE = 'page';
  12.    const LINK = 'link';
  13.    const LINK_PAGE = 'lp';
  14.    const LINK_SEP = 'ls';
  15.    const PARAM_PAGE_NUMBER = 'ppn';
  16.    const PAGES_PER_NAV = 'ppern';
  17.    const TOTAL_RECORDS = 'tr';
  18.    
  19.    /** Podstawowy adres do kolejnych stron.*/
  20.    protected $linkPage = '';
  21.  
  22.    /** Podstawowy adres do kolejnych stron.*/
  23.    protected $userWholeLink = false;
  24.    
  25.    /** Czym połączyć parametr strony z adresem (? lub &) */
  26.    protected $linkSep = 'index.php?show=pokaz&folder='. $folder .'&';
  27.  
  28.    /** Liczba rekordów */
  29.    protected $totalRecords = 0;
  30.  
  31.    /** Ilość rekordów na stronie */
  32.    public $RecordsPerPage = 25;
  33.  
  34.    /** Numer aktualnej strony */
  35.    protected $actualPage = 0;
  36.  
  37.    /** Liczba stron na pasku nawigatora */
  38.    protected $pagesPerNav = 10;
  39.  
  40.    /** Która to jest x(_pagesOnNav) stron */
  41.    protected $actualNavPages = 1;
  42.  
  43.    /** Ilość x stron */
  44.    protected $totalNavPages = 1;
  45.  
  46.    /** Ilość wszystkich stron */
  47.    protected $totalPages = 0;
  48.  
  49.    /** Index rekordu początkowego (od 0) */
  50.    protected $indexRecordStart = null;
  51.  
  52.    /** Index rekordu końcowego (od 0) */
  53.    protected $indexRecordEnd = null;
  54.  
  55.    /** Index strony początkowej */
  56.    protected $indexPageStart;
  57.  
  58.    /** Index strony końcowej */
  59.    protected $indexPageEnd;
  60.  
  61.    /** id pagera */
  62.    protected $id;
  63.  
  64.    /** Nazwa parametru, w której będzie numer aktualnej strony */
  65.    protected $paramPageNumber;
  66.  
  67.    /** Nazwa parametru ogólnego w url z numerem strony */
  68.    public $GeneralParamPageNumber = 'page';
  69.  
  70.    private $useGeneralParam;
  71.    /** Czy zapamiętywać dane w sesji */
  72.    protected $useSession = true;
  73.    
  74.    /** Tablica reprezentująca pager */
  75.    protected $array = array();
  76.  
  77.    /** Komunikaty błędów */
  78.    protected $errorMsg = array(
  79.        'call_get' => 'Method %s() You must call after Make()',
  80.        'call_set' => 'Method %s() You must call before Make()',
  81.        'wrong_parameter' => 'Wrong parameter "%s" in method "%s()"',
  82.    );
  83. ?>

To początek klasy tongue.gif Cała ma około 400 linijek
osl
to raczej niewiele daje winksmiley.jpg
może w takim razie jakieś przykładowe operacje na tej klasie?
Dizzy
Oto i cała klasa...
http://wklej.org/hash/5f7a46a171/
osl
zapoznaj się z komentarzem przy metodzie __construtor(), tam chyba możesz coś takiego osiąnąć przez odopwiednie wywołanie po prostu.
z tego co widzę to ustawiasz zdaje się separator adresu na cały ten ciąg index.php? i tak dalej... nie tędy droga winksmiley.jpg
Dizzy
Więc jak to zrobić?

  1. <?php
  2. public function __construct($folder = '') {
  3.        if (isset($_GET['folder'])){ $folder=$_GET['folder']; } else { $folder='';}
  4.    }
  5. ?>

Zrobiłem coś takiego ale nie działa :-/
Kod
Fatal error: Cannot redeclare Pager::__construct() in /home/tibiahun/public_html/Pager.class.php on line 154
nospor
  1. <?php
  2. $pager = new Pager('idpagera',null);
  3. ?>

Komentarze przy konstruktorze wydają się dosc przejrzyste.... winksmiley.jpg
Dizzy
yHmmm nospor
Nie rozumiem... co to jest to co mi napisałeś?
nospor
kurcze... poszukaj podobne kodu w tym co masz i sobie zamien na to co ci napisalem.
Dizzy
Niestety nie znalazłem nic podobnego w kodzie...

Już mam tongue.gif

Teraz wszystko działa jak powinno, dzięki wielkie za pomoc...
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-2025 Invision Power Services, Inc.