В моем модуле я использую TableSort для некоторых из моих таблиц, но у меня также есть несколько таблиц, которые генерируются кодом, поэтому напрямую не связаны с запросом. Эти таблицы также создаются с помощью темы ('table') и поэтому имеют массивы $ header и $ lines. Можно ли использовать TableSort на них, возможно, с написанием моей функции сортировки?
Документация для tablesort.inc , кажется, предполагает , что это возможно ( Все таблицы , созданные с помощью вызова темы ( «таблицы») имеют возможность иметь заголовки столбцов , которые пользователь может нажать на , чтобы отсортировать таблицу по этому столбцу ). Тем не менее, я не нашел никаких инструкций или примеров, как это сделать. Все, что я нашел, основано на запросе. Я использую Drupal 7.
Благодаря Бердиру, я получил его на работу. Вот как это работает более подробно.
Tablesort запускается «автоматически», если массивы (столбца) в массиве $ headers содержат ключи «data», «field» и, необязательно, «sort». Это создаст ссылки с «сортировать» и «порядок» в заголовках столбцов и покажет маленькую стрелку и тому подобное.
Чтобы выполнить собственную сортировку, получите текущие параметры сортировки с помощью tablesort_get_order и tablesort_get_sort и используйте эти значения для своей собственной функции сортировки. Ключ 'sql' в массиве, возвращаемом tablesort_get_order, содержит имя поля, которое будет использоваться для сортировки.
Часть (непроверенного) примера кода с массивом $ users, содержащим некоторые детали для каждого пользователя:
источник
write your own sort function
.Вот код, который я закончил на ответ виски. Он использует запрос поля сущности.
источник