Dalam modul saya, saya menggunakan TableSort untuk beberapa tabel saya, tetapi saya juga memiliki beberapa tabel yang dihasilkan oleh kode, jadi tidak langsung ditautkan ke kueri. Tabel-tabel ini juga dibuat dengan tema ('tabel') dan juga memiliki array $ header dan $ rows. Apakah mungkin menggunakan TableSort pada mereka juga, mungkin dengan menulis fungsi sortir saya?
The dokumentasi untuk tablesort.inc tampaknya menunjukkan adalah mungkin ( Semua tabel yang dibuat dengan panggilan untuk tema ( 'table') memiliki pilihan untuk memiliki header kolom bahwa pengguna dapat mengklik untuk mengurutkan tabel dengan kolom yang ). Namun, saya belum menemukan instruksi atau contoh tentang cara melakukan ini. Semua yang saya temukan sejauh ini didasarkan pada permintaan. Saya menggunakan Drupal 7.
Berkat Berdir, saya membuatnya bekerja. Beginilah cara kerjanya lebih detail.
Tablesort dipicu "secara otomatis" jika array (kolom) dalam array $ header berisi kunci 'data', 'field' dan opsional 'sort'. Ini akan membuat tautan dengan 'sort' dan 'order' di header kolom dan perlihatkan panah kecil dan semacamnya.
Untuk melakukan penyortiran Anda sendiri, dapatkan pengaturan penyortiran saat ini dengan tablesort_get_order dan tablesort_get_sort dan gunakan nilai-nilai itu untuk fungsi penyortiran Anda sendiri. Kunci 'sql' dalam array yang dikembalikan oleh tablesort_get_order berisi nama bidang yang akan digunakan untuk menyortir.
Sepotong kode contoh (yang belum diuji) dengan array $ users berisi beberapa detail untuk setiap pengguna:
sumber
write your own sort function
.Berikut adalah kode yang saya temukan pada jawaban wiski. Ini menggunakan kueri bidang entitas.
sumber