// add result field names to column defs for
// col value retrieve and sort purposes
for ($c = $i = 0; $c < count($this->columns); $c++) {
- if ($this->columns[$c]['type'] != 'insert')
+ if (!(isset($this->columns[$c]['insert']) && $this->columns[$c]['insert']))
$this->columns[$c]['name']= mysql_field_name($result, $i++);
}
// $sql - base sql for data inquiry. Order of fields implies
// pager columns order.
// $coldef - array of column definitions. Example definitions
-// Text column with title 'User name':
+// Column with title 'User name' and default text format:
// 'User name'
// Skipped field from sql query. Data for the field is not displayed:
// 'dummy' => 'skip'
-// Column without title, formated with function func(). Field value
-// is passed as parameter:
-// array('type'=>'spec', 'fun'=>'func')
-// Inserted column with title 'Some', formated with function rowfun(). Row
-// values are passed as parameter array:
-// 'Some' => array('type'=>'insert', 'fun'=>'rowfun')
+// Column without title, data retrieved form row data with function func():
+// array('fun'=>'func')
+// Inserted column with title 'Some', formated with function rowfun().
+// formated as date:
+// 'Some' => array('type'=>'date, 'insert'=>true, 'fun'=>'rowfun')
// Column with name 'Another', formatted as date,
// sortable with ascending start order (available orders: asc,desc, '').
// 'Another' => array('type'=>'date', 'ord'=>'asc')
$coltype = $col['type'];
$cell = isset($col['name']) ? $row[$col['name']] : '';
- switch($coltype) {
+ if (isset($col['fun'])) { // use data input function if defined
+ $fun = $col['fun'];
+ if (method_exists($pager, $fun)) {
+ $cell = $pager->$fun($row, $cell);
+ } elseif (function_exists($fun)) {
+ $cell = $fun($row, $cell);
+ } else
+ $cell = '';
+ }
+
+ switch($coltype) { // format column
case 'date':
label_cell(sql2date($cell), "align='center'"); break;
case 'dstamp': // time stamp displayed as date
case 'percent':
percent_cell($cell); break;
case 'amount':
- amount_cell($cell); break;
+ amount_cell($cell, false); break;
case 'qty':
qty_cell($cell); break;
case 'rate':
rate_cell($cell); break;
- case 'insert': // extra inserted column
- case 'spec': // special formatting function
- $fun = $col['fun'];
- if (method_exists($pager, $fun)) {
- $cell = $pager->$fun($row, $cell);
- } elseif (function_exists($fun)) {
- $cell = $fun($row, $cell);
- } else
- $cell = '';
-// case 'text':
default:
- label_cell($cell);
+// case 'text':
+ if (isset( $col['align']))
+ label_cell($cell, "align='" . $col['align'] . "'");
+ else
+ label_cell($cell);
case 'skip': // column not displayed
}
}