Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana]Moduł Pagination - pager_links duplikuje ścieżkę
Forum PHP.pl > Forum > PHP > Frameworki
tomall
Witajcie

Mam problem z modułem paginacji w Kohana 3.2. Moduł Paginacji w wersji kloopko 3.0.8-6 dostosowany do KO3.2.
Za pomocą poniższego kodu umieszczonego w widoku, wyświetlam wygenerowane przez moduł linki do kolejnych stron.
  1. <?php echo $pager_links; ?>


Wygląda to tak:
First Previous 1 2 Next Last

Wpisując w adres przeglądarki poniższe linki, bez problemu wyświetlają się odpowiednio wyniki z bazy.

http://localhost/kohana/welcome/
http://localhost/kohana/welcome/page/
http://localhost/kohana/welcome/page/1
http://localhost/kohana/welcome/page/2

Problem polega na tym, że wygenerowane linki przez moduł paginacji nie działają prawidłowo.
Klikając w Previous i next wszystko jest ok. Jednak kiedy kliknę w First lub 2 pojawiają się błędy.
Spowodowane jest to przypisaniem nieprawidłowych adresów do linków.

Podglądając źródło strony generuje się tak:
  1. <a href="/kohana/welcome/page" rel="first">First</a>
  2. <a href="/kohana/welcome/page" rel="prev">Previous</a>
  3. <a href="/kohana/welcome/page">1</a>
  4. <a href="/kohana/welcome/page/2>2</a>

Natomiast po kliknięciu w 2 wywoływany zostaje adres:

http://localhost/kohana/welcome/%EF%BB%BF/.../welcome/page/2

Po najechaniu na link wyświetla się adres odnośnika:

http://localhost/kohana/welcome/page//kohana/welcome/page/2

Wygląda to tak jak by dwa razy pobierany był adres bazowy. Szukałem rozwiązania tego problemu na wielu forach i nigdzie nic na ten temat nie ma.
Szukałem błędów w routingu oraz ustawieniu htaccess. Jednak nic nie udało mi się w tej kewstii zrobić.
Poniżej ilustruję ważniejsze ustawienia poszczególnych plików.
Kod kontrolera:
  1. class Controller_Welcome extends Controller_Application {
  2.  
  3. public function action_index()
  4. {
  5. $content = View::factory('welcome')
  6. ->bind('messages', $messages)
  7. ->bind('pager_links', $pager_links);
  8.  
  9. $message = new Model_Message;
  10.  
  11. $message_count = $message->count_all();
  12. $pagination = Pagination::factory(array(
  13. 'current_page' => array('source' => 'route', 'key' => 'page'),
  14. 'total_items' => $message_count,
  15. 'items_per_page' => 3,
  16. ));
  17.  
  18. $pager_links = $pagination->render();
  19. $messages = $message->get_all($pagination->items_per_page, $pagination->offset);
  20. $this->template->content = $content;
  21.  
  22. }
  23.  
  24. }


W Bootstrapie jest tak:
  1. Kohana::init(array(
  2. 'base_url' => '/kohana/',
  3. 'index_file' => FALSE,
  4. ));
  5.  
  6. Route::set('messages', 'welcome/page(/<page>)', array('page' => '\d+'))
  7. ->defaults(array(
  8. 'controller' => 'welcome',
  9. 'action' => 'index',
  10. ));



Oraz plik .htaccess
  1. # Turn on URL rewriting
  2. RewriteEngine On
  3.  
  4. # Installation directory
  5. RewriteBase /kohana/
  6.  
  7. # Protect hidden files from being viewed
  8. <Files .*>
  9. Order Deny,Allow
  10. Deny From All
  11. </Files>
  12.  
  13. # Protect application and system files from being viewed
  14. RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
  15.  
  16. # Allow any files or directories that exist to be displayed directly
  17. RewriteCond %{REQUEST_FILENAME} !-f
  18. RewriteCond %{REQUEST_FILENAME} !-d
  19.  
  20. # Rewrite all other URLs to index.php/URL
  21. RewriteRule .* index.php/$0 [PT]
  22.  


skowron-line
Ja bym zajrzał do źródeł modułu, no ale może jestem inny.
tomall
Korzystam z tego modułu. Nie za bardzo potrafię znaleźć tu błąd.

https://github.com/kloopko/kohana-pagination

Wydaje mi się, że coś jest nie tak z helperem URL::base(); lub URL::site();
Po umieszczeniu każdego z nich w widoku generuje:
/kohana/
zamiast:
http://localhost/kohana/

I tak myślę, że może to ma coś wspólnego z problemem.
lukaskolista
A moze po prostu w bootstrapie wpisales zly base_url
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.