it-swarm-vi.com

Làm thế nào để bạn tạo các bảng có thể sắp xếp với một máy nhắn tin với dữ liệu từ một bảng tùy chỉnh?

Với Drupal 6 bạn có thể làm một cái gì đó như thế này:

$header = array(
  array('data' => t('Order id'), 'field' => 'order_id'),
  ...
  array('data' => t('Transaction time'), 'field' => 'payment_time', 'sort' => 'desc'),
);
$sql = "...";
$sql .= tablesort_sql($header);
$limit = 25;
$result = pager_query($sql, $limit);
...

Tôi đã xem và tìm drupal 7 và cả pager_querytablesort_sql đã biến mất Có vẻ như thay vào đó, lớp PagerDefault có thể được sử dụng để tạo truy vấn máy nhắn tin bằng DBTNG. Tôi không thể tìm thấy bất kỳ manh mối nào trên một API đơn giản để đính kèm một bảng có thể sắp xếp vào truy vấn giống như được thực hiện trong Drupal 6.

Vậy làm thế nào để bạn tạo một bảng có thể sắp xếp với một máy nhắn tin lấy dữ liệu từ một bảng tùy chỉnh?

20
googletorp

Bạn sử dụng cái gọi là bộ mở rộng. Trong trường hợp của bạn, mã sẽ tương tự như sau.

$header = array(
  array('data' => t('Order id'), 'field' => 'order_id'),
  // ...
  array('data' => t('Transaction time'), 'field' => 'payment_time', 'sort' => 'desc'),
);

// Initialize $query with db_select().
$query = db_select('your table name');

// Add the fields you need to query.
// ... 

// Add the table sort extender.
$query = $query->extend('TableSort')->orderByHeader($header);

// Add the pager.
$query = $query->extend('PagerDefault')->limit(25);
$result = $query->execute();

Xem Cách thực hiện: Chuyển đổi mô-đun sang DBTNG , Truy vấn động: Sắp xếp bảngMở rộng .

8
Berdir

Sử dụng các bộ mở rộng TableSortPagerDefault.

$query = db_select('node', 'n');
$query->fields('n', array('nid', 'title', 'status'));

$table_sort = $query->extend('TableSort') // Add table sort extender.
  ->orderByHeader($header); // Add order by headers.

$pager = $table_sort->extend('PagerDefault')
  ->limit(5); // 5 rows per page.

$result = $pager->execute();
6
Serjas

Sử dụng mô đun DataTables .

Mô-đun DataTables tích hợp plugin jQuery DataTables vào Drupal dưới dạng kiểu xem và chức năng chủ đề có thể gọi được. DataTables cho phép bạn thêm các tính năng động vào các bảng, bao gồm:

  • Biến chiều dài phân trang
  • Lọc nhanh
  • Sắp xếp với phát hiện kiểu dữ liệu
  • Xử lý thông minh độ rộng cột
  • Có thể sử dụng CSS
  • Và nhiều hơn nữa ...
2
Satya

Bạn chỉ có thể bao gồm cùng Drupal 6 bảngort_sql trong mã của bạn và nó hoạt động tốt.

Dành cho máy nhắn tin:

$count = <Total No. of Table rows>

$sql = "...";
$sql .= tablesort_sql($header);
$limit = 25; //Pager limit

$results = db_query( $sql );
$rows = array();
//Loop through the result.
while ( $row = $results->fetchAssoc() ) {
$rows = <Get your array values for Table row>
}
$current_page = pager_default_initialize($count, $limit);
$chunks = array_chunk($rows,$limit, TRUE);
$output = theme( 'table', array( 'header' => $headers, 'rows' => $chunks[$current_page] ) );
$output .= theme( 'pager', array('quantity',$count ) );
print $output;
0
Paulraj