Showing posts with label Theming tables in drupal. Show all posts
Showing posts with label Theming tables in drupal. Show all posts

Wednesday, June 15, 2011

how to set width in drupal table theme

$header = array('Content Name', 'Mandatory','Sequence');
...
...
...
$rows[] = array(
                      array('data'=>$contentTitle->title, 'width'=>'80%'),
                      array('data'=>$mandatory_check, 'width'=>'10%'),
                      array('data'=>$sequence, 'width'=>'10%'));

$data = theme('table', $header, $rows);
$form['contentByLevels'.$l]['result'] = array('#value'=>$data);

Look on this too..
We can use inline styles also in the table theming.  Like,

$rows[] = array(
            array('data'=>$contentTitle->title, 'width'=>'80%', 'style' => 'color:red;'),
            array('data'=>$mandatory_check, 'width'=>'10%', 'style' => 'font-family:arial;'),
            array('data'=>$sequence, 'width'=>'10%', 'style' => 'text-decoration:underline;'));

Monday, June 6, 2011

Create a sortable table using “theme_table()” function in Drupal

We can create a sortable header using “theme_table()” function. In sortable header user can sort a column in ascending or descending order. I am using a table called “package_coupon“.
This table have seven fields (coupon, operator, operand, created,
expire, used and user_by). We are providing the sorting facility on four
fields only (coupon, created, expire and used). Initially, the coupon
field is sorted by ascending order.
Here “tablesort_sql()” function is important. 
This function produces the ORDER BY clause to insert in your SQL queries,
assuring that the returned database table rows match the sort order chosen
by the user.
Code:-
 
function package_coupon_list() {
 $head = array(
  array('data' => t('Coupon'), 'field' => 'coupon', 'sort' => 'asc'),
  array('data' => t('Type of Discount')),
  array('data' => t('Created'), 'field' => 'created'),
  array('data' => t('Expire'), 'field' => 'expire'),
  array('data' => t('Status'), 'field' => 'used'),
  array('data' => t('Used by')),
 );
 
   $sql = "SELECT * FROM package_coupon" . tablesort_sql($head);
 
    $result = db_query($sql);
 
   while ($coupon = db_fetch_object($result)) {
  $rows[] = array(
   array('data' => _coupon_format($coupon->coupon)),
   array('data' => ($coupon->operator == '%' ? "{$coupon->operand}% discount" : 
"\${$coupon->operator}{$coupon->operand} discount")),
   array('data' => format_date($coupon->created, 'small')),
   array('data' => format_date($coupon->expire, 'small')),
   array('data' => $coupon->used . ' left'),
   array('data' => ($coupon->user_by == '') ? 'None' : $coupon->user_by),
  );
   }
 
 return theme_table($head, $rows);
}
 
::Output Seems like:: 

Sortable table using theme_table() function

Additional information click here

Followers