Sziasztok (Szia Hojtsy Gábor :) )
Tartalmat oldalakra bontva jelenítek meg. Ez müködik is rendesen a rendezéssel együtt.
$header = array(
array('data'=> ''),
array('data'=> t('Caption1'), 'field'=>'myfield1')
array('data'=> t('Caption2'), 'field'=>'myfield2'),
....
);
$pager_select_sql='SELECT * FROM...';
$pager_select_sql .= tablesort_sql($header);
Ha a cimkékre kattintok akkor rendezi ahogy kell, de a problémám a következő:
Erre a listázó oldalra el lehet jutni sima linkről illetve ürlapról. Mind a két módszer átad egy azonosítót, hogy mit kell listázni. Ha linkről megyek akkor semmi gond, de ha ürlapról akkor nem jók a linkek amik az előző/következő oldalakra mutatnak illetve a fejlécen a rendező linkek sem jók.
Probáltam már azt csinálni hogy:
If(IsSet($edit['listazando'])){
$_GET['listazando']=$edit['listazando'];
}
de nem jó így sem.
Hogy lehet ezt megoldani?
Továbbá szeretném még azt is, hogy ne csak 1 mezőt lehessen megadni rendezési feltételnek.
Az nem baj ha nincsen hozzá az oldalon kezelőfelület, csak ha felhasználó rányomott az "Egyik" oszlopra akkor az "Egyik" és a "Másik" legyen a rendezés iránya.
(ORDER BY egyik ASC, masik ASC)
Most csak ennyi :)
Már letölttötem egy csomó modult, de a forráskódakat nézegetve sem találtam megoldást. :-/
A többszörös rendezést már megoldottam
Gondoltam hogy ezt lesz egyszerübb.
GET változók
A pager valóban a GET változókat őrzi meg, ha feltöltöd a GET változókba az űrlapból jött POST változókat, akkor jó lesz, de pontosan olyan indexekkel kellene megtenni a másolást.
már próbáltam
A témanyító hozzászólásomban említettem hogy már probáltam
Feltölteni a $_GET tömböt az ürlapról jött adatokkal
If(IsSet($edit['listazando'])){
$_GET['listazando']=$edit['listazando'];
}
a hook_page függvény eleje táján történik mindez
még mindenféle pager, theme és egyéb dolgok elött
figyelj oda arra, amit írok
Úgy tűnik nem ment át jól, az $edit Drupalban jellemzően POST['edit'] alapján jön, te pedig ennek egy indexét GET['index']-be teszed be, tehát POST['edit']['listazando']-bol csinalsz GET['listazandot']. Hát én nem erről beszéltem. Úgy kellene átadni, ahogy a program várja, az, hogy hogyan az eddigiekből nem derült ki, meg kell nézni.
most akkor miről is beszélsz?
De már a kérdés feltevésénél is írtam hogy rendesen belerakom (figyelve az indexekre), a $GET változóba az ürlapról jött cuccot.
A pager valóban a GET változókat őrzi meg, ha feltöltöd a GET változókba az űrlapból jött POST változókat, akkor jó lesz, de pontosan olyan indexekkel kellene megtenni a másolást.
az $edit Drupalban jellemzően POST['edit'] alapján jön, te pedig ennek egy indexét GET['index']-be teszed be, tehát POST['edit']['listazando']-bol csinalsz GET['listazandot']. Hát én nem erről beszéltem.
amúgy pedig itt a megoldás
$_SERVER["REQUEST_METHOD"]='GET';
sajnos elég kézenfekő ahoz hogy szégyeljem magam amiért nem jutott eszembe már rögtön az elején.
meg (félre) lettem vezetve?
Van magamat vezettem félre, vagy egymás mellett beszéltünk el.
$edit = $_POST['edit']
szokott lenni, és te$_GET['valami'] = $edit['valami']
-t emlegettél folyamatosan, ami így nem őrzi meg azedit
tömböt, hanem abból kitör. Ezt nem összeegyeztethetőnek gondoltam, bár az sem volt egyértelmű, hogy hol és mi használja majd fel, úgyhogy... Azért örülök, hogy sikerült felfedezni a megoldást :)Összefoglalás :-)
Jó írányba indultam el az elején azzal amikor ezt csináltam:
$_GET['valami'] = $edit['valami']
hiszen a pager a $_GET tömbből készíti a linket és ezért kell az ürlap adatokat berakni a $_GET-be.
Azt nem írtam hogy az én $edit -em honnan van, de erősen gyanítható volt, hogy a $_POST['edit'] -tel megegyezik.
Csak zt felejetettem ki az egészből hogy a pager csak akkor készíti el a linket ha a
$_SERVER["REQUEST_METHOD"]=='GET'
-------------
Csak azért írtam ide, hogy ha valaki veszi a fáratságot, és pont ezt keresi mert neki is ez a hasfájása akkor megtalálja.
Itt jegyezném meg hogy a
theme('table'...);
theme('pager'...);
és társairól nem sok leírásvan. Használati javaslat vagy ilyesmi
van doksi
A theme('table', ...) és társai a theme_table() alapfüggvényből indulnak ki, annak a dokumentációját kell nézni, annak pedig van rendesen.
majd átnézem még egyszer a függvényeket
elképzelhető hogy valahol mélyen nem a $_GET tömböt olvassa, hanem a QUERY_STRING -et