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.
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:
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:
class Controller_Welcome extends Controller_Application { public function action_index() { $content = View::factory('welcome') ->bind('messages', $messages) ->bind('pager_links', $pager_links); $message = new Model_Message; $message_count = $message->count_all(); 'total_items' => $message_count, 'items_per_page' => 3, )); $pager_links = $pagination->render(); $messages = $message->get_all($pagination->items_per_page, $pagination->offset); $this->template->content = $content; } }
W Bootstrapie jest tak:
'base_url' => '/kohana/', 'index_file' => FALSE, )); 'controller' => 'welcome', 'action' => 'index', ));
Oraz plik .htaccess
# Turn on URL rewriting RewriteEngine On # Installation directory RewriteBase /kohana/ # Protect hidden files from being viewed <Files .*> Order Deny,Allow Deny From All </Files> # Protect application and system files from being viewed RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L] # Allow any files or directories that exist to be displayed directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Rewrite all other URLs to index.php/URL RewriteRule .* index.php/$0 [PT]