drupal tablesort_sql默认排序但不显示在标题中

时间:2010-10-27 09:52:14

标签: drupal themes tablesorter

我想创建一个简单的表,并让用户可以对标题进行排序。 使用tablesort_sql()函数并将$ header发送到theme(),这可以轻松而美观。

但我希望默认情况下对用户不可见的字段进行排序。 例如: 我希望内容按创建日期排序,但我不想向用户显示

所以这就是我所拥有的:

function vacancies_overview() { GLOBAL $user;

$header = array(
        array('field' => 'created', 'sort' => 'desc'),
        array('data' => t('title'), 'field' => 'title'),
);


$sql = "SELECT n.nid, n.title FROM {node} n WHERE n.type = 'mycontenttype' AND n.status = 1 AND n.uid = %d" . tablesort_sql($header);


$result = pager_query($sql, 30, 0, NULL, $user->uid);
while ($data = db_fetch_object($result)) {
    $rows[] = array(
        _mycontent_format_title_link($data->title, $data->nid),
    );
}

$output = theme('table', $header, $rows);
$output .= theme('pager', NULL, 30, 0);

return $output;

$header = array( array('field' => 'created', 'sort' => 'desc'), array('data' => t('title'), 'field' => 'title'), ); $sql = "SELECT n.nid, n.title FROM {node} n WHERE n.type = 'mycontenttype' AND n.status = 1 AND n.uid = %d" . tablesort_sql($header); $result = pager_query($sql, 30, 0, NULL, $user->uid); while ($data = db_fetch_object($result)) { $rows[] = array( _mycontent_format_title_link($data->title, $data->nid), ); } $output = theme('table', $header, $rows); $output .= theme('pager', NULL, 30, 0); return $output;

1 个答案:

答案 0 :(得分:2)

快速解决方案是做这样的事情:

$header = array(
    array('field' => 'created', 'sort' => 'desc'),
    array('data' => t('title'), 'field' => 'title'),
);

$header_sort = $header;
$header_sort[] = array(...); // Add the default sort.

然后你可以使用header_sort作为sql,$header作为表的主题。