En mi módulo, estoy usando TableSort para algunas de mis tablas, pero también tengo algunas tablas que se generan por código, por lo que no están directamente vinculadas a una consulta. Estas tablas también se crean con el tema ('tabla') y también tienen las matrices $ header y $ rows. ¿Es posible usar TableSort también en esos, tal vez al escribir mi función de clasificación?
La documentación de tablesort.inc parece sugerir que es posible ( todas las tablas creadas con una llamada al tema ('tabla') tienen la opción de tener encabezados de columna en los que el usuario puede hacer clic para ordenar la tabla por esa columna ). Sin embargo, no he encontrado ninguna instrucción o ejemplo sobre cómo hacer esto. Todo lo que encontré hasta ahora se basa en una consulta. Estoy usando Drupal 7.
Gracias a Berdir lo conseguí funcionando. Así es como funciona con más detalle.
Tablesort se activa "automáticamente" si las matrices (columna) en la matriz $ headers contienen las claves 'datos', 'campo' y opcionalmente 'ordenar'. Esto creará enlaces con 'ordenar' y 'ordenar' en los encabezados de las columnas y mostrará la pequeña flecha y tal.
Para hacer su propia clasificación, obtenga la configuración de clasificación actual con tablesort_get_order y tablesort_get_sort y use esos valores para su propia función de clasificación. La clave 'sql' en la matriz devuelta por tablesort_get_order contiene el nombre del campo que se utilizará para la ordenación.
Una pieza de código de ejemplo (no probado) con la matriz $ users que contiene algunos detalles para cada usuario:
fuente
write your own sort function
.Aquí está el código que terminé en la respuesta de whisky. Utiliza la consulta de campo de entidad.
fuente