Próbálkozom a tablesort függvény alkalmazásával.
Az első problémám, hogy ha a limitet meghaladja a visszaadott rekordok száma és rákattintok a "következő oldal"-ra akkor a pager nem adja vissza a kívánt oldalt, hanem egy üres oldalt mutat.
Pontosabban:
1.) sql skript: "SELECT DISTINCT * FROM _nev WHERE nev like '%%' or tipus like '%%'"
(A keresés szűkítésére textfieldbe beírhatok egy stringet, melynek értéke bekerül a like '%%'-nál a százalékjelek közé, ha ezt nem teszem akkor a teljes táblát listázhatom.)
2.) $sql .= tablesort_sql($header); aminek az eredménye: "SELECT DISTINCT * FROM _nev WHERE nev like '%%' or tipus like '%%' ORDER BY tipus ASC"
3.) $result = pager_query($sql, 100);
Ennek hatására az első oldal megjelenik az első 100 rekorddal, az url-ben átadott érték a "sort=asc&order=n%C3%A9v" pedig a headerben az első elem, a "név" amire alapból rendezi az adatokat a pager.
A "következő oldal" linkjére kattintva egy üres oldal jelenik meg, az urlben csak a következő változó kerül átadásra: from=10
Gondolom ez a hiba oka.
Azt megjegyzem, hogy az "utolsó oldal" linkjére kattintva helyesen jelzi a rekordszámot (from=210), csak az oldal nem jelenik meg:(
A másik problémám, hogy ha szűkítem a keresést úgy, hogy a textfieldnek értéket adok, akkor az első oldal ugyan jól jelenik meg, de a headerre rendezésnél már a teljes táblát listázza. Ha a "következő oldal" -ra kattintok akkor pedig ugyancsak üres oldalt hoz fel, tehát ez a funkció ebben az esetben sem működik.
A probléma megtekinthető itt: http://elan.rulez.org/~kuller/wwiihq//?q=taxonomy_menu/1/47/7
A pager_query leírásánál (http://jonbob.drupaldevs.org/api/head/function/pager_query) egy számora ismeretlen sql szintxist ajánlgat, de azt mondja, hogy a bonyolultabb lekérdezéseknél külön számláló sql-t kell használni. Emiatt próbáltam ki számlálóval is: 'SELECT COUNT(DISTINCT(nev)) FROM _nev' a $result = pager_query($sql, 100, 0, $counter_sql) függvényhívással párosítva. Nem jött be..
Rákerestem a "http://drupal.org/search"-en is a "sql syntax pager" szavakra, de használható megoldást nem találtam.
Vajh mi lehet a hiba?
Nem a jó a $header
Én ennyiből arra tippelnék, hogy nem jó a header szerkezete, a benne lévő adatok, vagy hasoló Ezért nem jó oszlopnevet talál meg a linkben lévő értékhez, és az SQL lekérdezés ebben elhasal. Az eseménynaplóban látni fogod az SQL hibaüzeneteket. Nézd meg, hogy jól állítottad-e be a $header szerkezetét, értékeit. Szerintem.