web-gelistirme-sc.com

Özel tablodaki verilerle bir çağrı cihazı ile sıralanabilir tablolar nasıl yapılır?

Drupal 6 için böyle bir şey yapabilirsiniz:

$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);
...

Bir göz attım ve drupal 7 ve her ikisi de pager_query ve tablesort_sql artık gitti. Bunun yerine PagerDefault sınıfı DBTNG kullanarak bir çağrı cihazı sorgusu oluşturmak için kullanılabilir. Ben Drupal 6 gibi yapılır gibi sorgu için sıralanabilir bir tablo eklemek için basit bir API ipucu bulamadı.

Peki, özel bir tablodan veri çeken bir çağrı cihazıyla sıralanabilir bir tablo nasıl oluşturabilirsiniz?

20
googletorp

Sözde genişleticiler kullanırsınız. Sizin durumunuzda, kod aşağıdakine benzer olacaktır.

$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();

Bkz. Nasıl Yapılır: Bir modülü DBTNG'ye dönüştürme , Dinamik sorgular: Tablo sıralama ve Genişleticiler .

8
Berdir

TableSort ve PagerDefault genişleticileri kullanın.

$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

DataTables modülünü kullanın.

DataTables modülü, jQuery eklentisi DataTables'ı Drupal bir görünüm stili ve çağrılabilir tema işlevi olarak tümleştirir) DataTables tablolara dinamik özellikler eklemenizi sağlar:

  • Değişken uzunluk sayfalaması
  • Anında filtreleme
  • Veri türü algılama ile sıralama
  • Sütun genişliklerinin akıllı kullanımı
  • CSS tarafından teması
  • Ve daha fazlası ...
2
Satya

Sadece aynı Drupal 6 tablesort_sql kodunuza dahil edebilirsiniz ve iyi çalışıyor.

Çağrı cihazı için:

$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