No meu módulo, estou usando o TableSort para algumas das minhas tabelas, mas também tenho algumas tabelas que são geradas pelo código, portanto, não diretamente vinculadas a uma consulta. Essas tabelas também são criadas com o tema ('tabela') e, portanto, possuem as matrizes $ header e $ lines. É possível usar o TableSort também, talvez ao escrever minha função de classificação?
A documentação do tablesort.inc parece sugerir que é possível ( Todas as tabelas criadas com uma chamada para o tema ('tabela') têm a opção de ter cabeçalhos de coluna nos quais o usuário pode clicar para classificar a tabela por essa coluna ). No entanto, não encontrei nenhuma instrução ou exemplo de como fazer isso. Tudo o que encontrei até agora é baseado em uma consulta. Estou usando o Drupal 7.
Graças a Berdir , consegui funcionar. É assim que funciona com mais detalhes.
O Tablesort é acionado "automaticamente" se as matrizes (coluna) na matriz $ headers contiverem as chaves 'data', 'field' e, opcionalmente, 'sort'. Isso criará links com 'sort' e 'order' nos cabeçalhos das colunas e mostrará a pequena flecha e tal.
Para fazer sua própria classificação, obtenha as configurações atuais de classificação com tablesort_get_order e tablesort_get_sort e use esses valores para sua própria função de classificação. A chave 'sql' na matriz retornada por tablesort_get_order contém o nome do campo a ser usado para classificação.
Um trecho de código de exemplo (não testado) com a matriz $ users contendo alguns detalhes para cada usuário:
fonte
write your own sort function
.Aqui está o código que eu acabei com a resposta do whisky. Ele usa a consulta de campo da entidade.
fonte