W moim module używam TableSort do niektórych moich tabel, ale mam też niektóre tabele, które są generowane przez kod, więc nie są bezpośrednio powiązane z zapytaniem. Te tabele są również tworzone przy użyciu kompozycji („tabela”), a więc mają tablice $ header i $ rows. Czy jest możliwe użycie TableSort również na tych, być może podczas pisania mojej funkcji sortowania?
Dokumentacja dla tablesort.inc zdaje się sugerować, że jest to możliwe ( Wszystkie tabele utworzone z wezwaniem do tematu ( „stół”) mają możliwość posiadania nagłówków kolumn, które użytkownik może kliknąć, aby posortować tabelę według tej kolumny ). Nie znalazłem jednak żadnych instrukcji ani przykładów, jak to zrobić. Wszystko, co do tej pory znalazłem, opiera się na zapytaniu. Używam Drupala 7.
Dzięki Berdirowi działam . Tak to działa bardziej szczegółowo.
Tablesort jest uruchamiany „automatycznie”, jeśli tablice (kolumnowe) w tablicy $ headers zawierają klucze „data”, „field” i opcjonalnie „sort”. Spowoduje to utworzenie linków z „sort” i „uporządkowanie” w nagłówkach kolumn oraz wyświetlenie małej strzałki i tym podobnych.
Aby wykonać własne sortowanie, uzyskaj bieżące ustawienia sortowania za pomocą tableort_get_order i tablesort_get_sort i użyj tych wartości do własnej funkcji sortowania. Klucz „sql” w tablicy zwrócony przez tableort_get_order zawiera nazwę pola, która ma być używana do sortowania.
Kawałek (nieprzetestowanego) przykładowego kodu z tablicą $ users zawierającą pewne szczegóły dla każdego użytkownika:
źródło
write your own sort function
.Oto kod, który skończyłem na odpowiedzi na whisky. Wykorzystuje zapytanie o pole encji.
źródło