For creating tables in drupal, you don’t need to write html table tag structure.
It is very easy to implement this in drupal.
Here I am giving the step by step explanation with code:-
1:-First create a menu in hook_menu() function.
In this menu we will display the table using theme table.
function hook_menu() {
$items = array();
$items['theme_table'] = array(
'title' => t('Theme Table'),
$items = array();
$items['theme_table'] = array(
'title' => t('Theme Table'),
//calling custom test_theme_table() function on this menu
'page callback' => 'test_theme_table',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
'page callback' => 'test_theme_table',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
2:- Code for test_theme_table function:-
function test_theme_table(){
$html = '';
$html = '';
//this $header array contains table header name,can be changed as per the requirement
$header = array(t('BID'),t('Module'),t('Delta'),t('THEME'),t('Status'));
//$count is the number of rows you want to display per page
$count = 5;
$count = 5;
//fetching records from blocks tabble
$res = "SELECT * FROM {blocks}";
$res = "SELECT * FROM {blocks}";
//passing sql query and count value in drupal pager_query function
$query = pager_query($res, $count);
$data = array();
while ($row = db_fetch_array($query)) {
$data[] = array(
$row['bid'],
$row['module'],
$row['delta'],
$row['theme'],
$row['status']
);
}
//adding id to the table(Not required)
$table_attributes = array('id' => 'example');
$output = theme('table', $header, $data, $table_attributes);
$query = pager_query($res, $count);
$data = array();
while ($row = db_fetch_array($query)) {
$data[] = array(
$row['bid'],
$row['module'],
$row['delta'],
$row['theme'],
$row['status']
);
}
//adding id to the table(Not required)
$table_attributes = array('id' => 'example');
$output = theme('table', $header, $data, $table_attributes);
//returning the resultant table with $count=5
return $output.theme('pager', $count);
}
Instead of displaying records from database,you can display any records using them table.
No comments:
Post a Comment