Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Modyfikacja pagera pod SEO
Forum PHP.pl > Forum > Gotowe rozwiązania
admin22
Witam. Od niedawna korzystam ze znanej wam wszystkim clasy pagera do porcjowania i sortowania zapytań z bazy Mysql.
Potrafi ktoś z was zmodyfikować pagera tak aby wyniki były pod SEO, oprócz utworzenia pliku .httaccess należy w zmodyfikować poniższy plik aby generował on linki
Przykład:
zamiast np. takiego linku
http://krowiorz.com/test.php?mp3=2
był taki:
http://krowiorz.com/test-2.html
lub zamiast
http://krowiorz.com/test.php?mp3=1&ord...amp;orderd=desc
był taki:
http://krowiorz.com/test-1-2-desc.html
Zielonego pojęcia nie mam jak to ugryźć w tych w poniższych funkcjach, bo z .htaccess nie będzie problemu.

Daje link, bo topic był by za długi KOD PAGERA
nospor
czemu nie dajesz linka do strony klasy tylko do swojej strony? winksmiley.jpg
Kodu pagera nie trzeba modyfikowac. Wyjasnialem juz pare razy jak trzeba zapodawac linki. smile.gif

edit: choc na szybkiego mozesz zmienic metode makeLink na:
  1. <?php
  2. protected function makeLink(){
  3. $this->linkPage = 'twojglownylink-#PAGE#';
  4. }
  5. ?>

a pager tworzyc tak:
$pager = new Pager('id', null);
admin22
Nie działa sad.gif używam wersji 2.5 i php5
Zmieniłem w pliku Pager.class.php fragmęt kodu z:
  1. <?php
  2. protected function makeLink(){
  3. //TODO: pomyslec cos z niceurl
  4. //pobranie nazwy parametru z $_GET
  5. $paramPageNumber = $this->getUrlParamPageNumber();
  6.  
  7. //wyrzucenie go z REQUEST_URI jeśli był
  8. $this->linkPage = $paramPageNumber ? preg_replace('/&?'.$paramPageNumber.'=d*/','', $_SERVER['REQUEST_URI']) : $_SERVER['REQUEST_URI']; 
  9. }
  10. ?>

na
  1. <?php
  2. protected function makeLink(){
  3. $this->linkPage = 'twojglownylink-#PAGE#';
  4. }
  5. ?>

Wywoływałem pagera tak:

  1. <?php
  2. require_once('Pager.class.php');
  3. require_once('EPager.class.php');
  4.  
  5. ...
  6.  
  7. $orders = array('id','nazwa','ile');
  8. $pager = new EPager('id', null, false,$orders);
  9. $headers = array('id' => 'ID', 'nazwa' => 'NAZWA', 'ile' => 'POPULARNOSC');
  10. echo $pager->Render();
  11. //a teraz już kod generujący tabelę z wynikami
  12. echo "<table cellpadding='10' cellspacing='6'><tr>
  13. <th><a href=\"{$headers['id']['LINK']}\">ID</a>".($headers['id']['SORTED'] ? ' <img src="sort_'.$headers['id']['SORTED'].'.gif"/>' : '')."</th>
  14. <th><a href=\"{$headers['nazwa']['LINK']}\">NAZWA</a>".($headers['nazwa']['SORTED'] ? ' <img src="sort_'.$headers['nazwa']['SORTED'].'.gif"/>' : '')."</th>
  15. <th><a href=\"{$headers['ile']['LINK']}\">POPULARNOŚĆ</a>".($headers['ile']['SORTED'] ? ' <img src="sort_'.$headers['ile']['SORTED'].'.gif"/>' : '')."</th>
  16. </tr>";
  17.  
  18. //wyświetlenie wyników zapytania
  19. while($row = mysql_fetch_array($res)){
  20. echo "<tr><td>{$row['id']}</td><td><a href=\"search-mp3,{$row['nazwa']},1.html\" target=\"_blank\">{$row['nazwa']}</a></td><td>{$row['ile']}</td></tr>";
  21. }
  22.  
  23. echo '</table>';
  24. ?>


Próbowałem zmienić przy wywoływaniu tą linijkę
  1. <?php
  2. $pager = new EPager('id', null, false,$orders);
  3. ?>


na
  1. <?php
  2. $pager = new Pager('id', null);
  3. ?>
lub
  1. <?php
  2. $pager = new EPager('id', null);
  3. ?>

NIESTETY BEZ REZULTATÓW, CO ROBIĘ ŹLE?
nospor
samo nie dziala to mi za wiele nie mowi.

Pozatym mieszasz dwie wersje pagera. Zmiany robisz w Pager, a uzywasz EPager.
EPager jest rozszerzeniem klasy Pager o dodatkową funkcjionalnosc. Skoro wiec uzywasz EPager, to zmiane funkcji rob w niej, a nie w Pager, gdyz EPager i tak nadpisze funkcję z Pager.

I tylko mi nie mow ze mowie niezrozumiale. Tu sie klania tzw. dziedziczenie winksmiley.jpg
admin22
Oczywiście że słyszałem o dziedziczeniu, tylko że widząc skrawek skryptu trudno się połapać. Oczywiście za działało biggrin.gif Bardzo dziękuje za pomoc i przepraszam za kłopot.
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.