Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] paginacja - problem z domyślną stroną
csharp
post
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 3
Dołączył: 22.04.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


mam problem tego typu, że paginacja działa mi poprawnie dopiero jeśli dopiszę ręcznie w pasku nr strony np. 1 - później już normalnie przeskakuje.

problem nie występuje gdy otwieram stronę z kontrolera tj. public/index/index wtedy ładnie przeskakuje index/index/page/2 -> page/3 itd

chciałem sobie ułatwić i ustawić aby zmienna page wczytywała się już w public np. public/2

paginacja wygląda standardowo jak poniżej:

  1. $result = $Post->fetchAll($select);
  2.  
  3. $pageNumber = 1;
  4. $itemNumber = 1;
  5. $paginator = Zend_Paginator::factory($result);
  6. $paginator->setItemCountPerPage($pageNumber);
  7. $paginator->getItemsByPage($itemNumber);
  8. $paginator->setCurrentPageNumber($this->_getParam('page', 1));
  9. Zend_Paginator::setDefaultScrollingStyle('Sliding');
  10. $view = new Zend_View();
  11. $paginator->setView($view);
  12.  
  13. $this->view->result = $paginator;
  14. $this->view->paginator = $paginator;


i w application.ini poczyniłem coś takiego:

  1. resources.router.routes.page.route = "/:page"
  2. resources.router.routes.page.defaults.controller = "index"
  3. resources.router.routes.page.defaults.action = "index"
  4. resources.router.routes.page.defaults.page = "1"


ma ktoś jakiś pomysł?

Ten post edytował csharp 20.09.2012, 00:13:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Tam gdzie używasz .html wygląda ok, ale ja zalecam dokleić do adresu także ID - jest szybciej i mniej kłopotliwie, dla SEO to żadna różnica jeśli doklejasz ID na końcu adresu a i na potrzeby developerskie sprawdza się dużo lepiej, nie muszę się zastanawiać, jaki jest ID artykułu w którym coś nie bangla.

Kod
    resources.router.routes.news.route = "newsletter"
    resources.router.routes.news.defaults.controller = "index"
    resources.router.routes.news.defaults.action = "newsletter"
- ten też wygląda ok, ale jeśli mamy dużo "sztywnych" adresów to warto je obsłużyć jednym routingiem żeby nie mnożyć sztywnych deklaracji routingów bez potrzeby, można też wrzucić listę stron "stałych" do modelu a routing tego typu definiować w bootstrapie - łatwiejsza jest wtedy modyfikacja i implementacja, możesz sobie sprawdzać, czy do obsłużenia np. reguły "newsletter" istnieje specjalna akcja i ją wywołać a jeśli nie, to renderować tylko widok o takiej nazwie a jeśli i jego nie ma, to wyjątek -> strona błędu.


Kod
resources.router.routes.homepage.route = "/"
resources.router.routes.homepage.controller = "index"
resources.router.routes.homepage.action = "index"

resources.router.routes.domowa.route = "/"
resources.router.routes.domowa.defaults.controller = "index"
resources.router.routes.domowa.defaults.action = "index"
- te routingi nie wiem za bardzo co mają robić, przecież strona główna to kontroler index i akcja index, jest to także domyślny routing (czyli jak nie znajdzie żadnego dopasowania to żądanie zostanie obsłużone właśnie przez tą akcję) a by wygenerować adres strony głównej nie potrzebujemy chyba routingu ani tym bardziej kilku?


Powiem tak, jeśli używasz routingów na modłę Zendową, to używaj jakiegoś klucza, np:

Kod
resources.router.routes.artykuly.route = ":title/:id"
- źle

Kod
resources.router.routes.artykuly.route = "artykuly/:title/:id"
- dobrze

Inaczej są problemy, istotna staje się kolejność routingów i tak dalej a przede wszystkim ktoś kto siądzie potem do tego kodu będzie miał problem.

I pamiętaj, że jak używasz this->url to korzysta on nie tylko z przekazywanych parametrów, ale także tych w GET - można to którymś parametrem wyłączyć (chyba trzecim, bo drugi to nazwa routingu)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 01:35