Berdir sayesinde çalıştım . Daha ayrıntılı olarak bu şekilde çalışır.
$ Headers dizisindeki (sütun) dizileri 'data', 'field' ve isteğe bağlı olarak 'sort' anahtarlarını içeriyorsa, tablesort "otomatik olarak" tetiklenir. Bu, sütun başlıklarında 'sıralama' ve 'sıra' ile bağlantılar oluşturur ve küçük oku ve benzerlerini gösterir.
Kendi sıralamanızı yapmak için geçerli sıra ayarlarını tablesort_get_order ve tablesort_get_sort ile alın ve bu değerleri kendi sıralama işleviniz için kullanın. Tablesort_get_order tarafından döndürülen dizideki 'sql' anahtarı, sıralama için kullanılacak alan adını içerir.
$ Users dizisine sahip ve her kullanıcı için bazı ayrıntılar içeren bir örnek (test edilmemiş) örnek kod:
// setup the table data that we want to show
$tableData = array();
foreach ($users as $userDetails) {
$tableData[] = array(
'name' => $userDetails['name'],
'visits' => $userDetails['visits'],
'views' => $userDetails['views'],
'comments' => $userDetails['comments']
);
}
// headers array, sorting by default on comments
$headers = array(
array('data' => t('Name'), 'field' => 'name'),
array('data' => t('Visits'), 'field' => 'visits'),
array('data' => t('Views'), 'field' => 'views'),
array('data' => t('Comments'), 'field' => 'comments', 'sort' => 'desc')
);
// getting the current sort and order parameters from the url
$order = tablesort_get_order($headers);
$sort = tablesort_get_sort($headers);
// sort the table data accordingly (write your own sort function)
$tableData = my_array_sort($tableData, $order['sql'], $sort);
// create the array with rows for theme table
$rows = array();
foreach ($tableData as $entry) {
$rows[] = array(
array('data' => $entry['name']),
array('data' => $entry['visits']),
array('data' => $entry['views']),
array('data' => $entry['comments']),
);
}
// add any attributes and sent everything to theme table
$attributes = array('class' => array('my_class'));
$table = array('header' => $headers, 'attributes' => $attributes, 'rows' => $rows);
$html = theme('table', $table);