. ***********************************************************************/ //-------------------------------------------------------------------------------------------------- function pager_link($link_text, $url, $icon=false) { global $path_to_root; $link = access_string($link_text); if (user_graphic_links() && $icon) $link[0] = set_icon($icon, $link[0]); $href = $path_to_root . $url; return "" . $link[0] . ""; } function navi_button($name, $value, $enabled=true, $icon = false) { global $path_to_root; return "\n"; } function navi_button_cell($name, $value, $enabled=true, $align='left') { label_cell(navi_button($name, $value, $enabled), "align='$align'"); } //----------------------------------------------------------------------------- // // Sql paged table view. Call this function inside form. // function display_db_pager(&$pager) { global $table_style, $use_popup_windows, $use_date_picker, $path_to_root; $pager->select_records(); div_start("_{$pager->name}_span"); $headers = array(); foreach($pager->columns as $num_col=>$col) { if (isset($col['head'])) { if (!isset($col['ord'])) $headers[] = $col['head']; else { $icon = (($col['ord'] == 'desc') ? 'sort_desc.gif' : ($col['ord'] == 'asc' ? 'sort_asc.gif' : 'sort_none.gif')); $headers[] = navi_button($pager->name.'_sort_'.$num_col, $col['head'], true, $icon); } } } /* show a table of records returned by the sql */ start_table("$table_style width=$pager->width"); table_header($headers, 'nowrap'); if($pager->header_fun) { // if set header handler start_row("class='{$pager->header_class}'"); $fun = $pager->header_fun; if (method_exists($pager, $fun)) { $h = $pager->$fun($pager); } elseif (function_exists($fun)) { $h = $fun($pager); } foreach($h as $c) { // draw header columns $pars = isset($c[1]) ? $c[1] : ''; label_cell($c[0], $pars); } end_row(); } $cc = 0; //row colour counter foreach($pager->data as $line_no => $row) { $marker = $pager->marker; if ($marker && $marker($row)) start_row("class='$pager->marker_class'"); else alt_table_row_color($cc); foreach ($pager->columns as $k=>$col) { $coltype = $col['type']; $cell = isset($col['name']) ? $row[$col['name']] : ''; 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 'time': label_cell($cell, "width=40"); break; case 'date': label_cell(sql2date($cell), "align='center' width=50"); break; case 'dstamp': // time stamp displayed as date label_cell(sql2date(substr($cell, 0, 10)), "align='center'"); break; case 'tstamp': // time stamp - FIX user format label_cell(sql2date(substr($cell, 0, 10)). ' '. substr($cell, 10), "align='center'"); break; case 'percent': percent_cell($cell); break; case 'amount': if ($cell=='') label_cell(''); else amount_cell($cell, false); break; case 'qty': if ($cell=='') label_cell(''); else qty_cell($cell, false, isset($col['dec']) ? $col['dec'] : null); break; case 'rate': label_cell(number_format2($cell, user_exrate_dec()), "align=center"); break; default: // case 'text': if (isset( $col['align'])) label_cell($cell, "align='" . $col['align'] . "'"); else label_cell($cell); case 'skip': // column not displayed } } end_row(); } //end of while loop if($pager->footer_fun) { // if set footer handler start_row("class='{$pager->footer_class}'"); $fun = $pager->footer_fun; if (method_exists($pager, $fun)) { $h = $pager->$fun($pager); } elseif (function_exists($fun)) { $h = $fun($pager); } foreach($h as $c) { // draw footer columns $pars = isset($c[1]) ? $c[1] : ''; label_cell($c[0], $pars); } end_row(); } //end_table(); //start_table("$table_style align='center' class='navibar' width=100%"); /* start_row("class='navibar'"); $colspan = count($pager->columns); if($pager->rec_count) { $from = ($pager->curr_page-1)*$pager->page_len+1; $to = $from + $pager->page_len - 1; if ($to > $pager->rec_count) $to = $pager->rec_count; $all = $pager->rec_count; $lcols = ($colspan > 4 ? 3 : 2); label_cell(sprintf( _('Records %d-%d of %d'), $from, $to, $all), "colspan=$lcols class='navibar' style='border:none'"); //echo ""; echo ""; $but_pref = $pager->name.'_page_'; start_table("align='right'"); start_row(); echo navi_button_cell($but_pref.'first', _('First'), $pager->first_page, 'right'); echo navi_button_cell($but_pref.'prev', _('Prev'), $pager->prev_page,'right'); echo navi_button_cell($but_pref.'next', _('Next'), $pager->next_page,'right'); echo navi_button_cell($but_pref.'last', _('Last'), $pager->last_page, 'right'); end_row(); end_table(); echo ""; } else { label_cell( _('No records'), "colspan=$colspan class='navibar'"); } end_row(); */ start_row("class='navibar'"); $colspan = count($pager->columns); if($pager->rec_count) { echo ""; echo "
"; $but_pref = $pager->name.'_page_'; start_table(); start_row(); echo navi_button_cell($but_pref.'first', _('First'), $pager->first_page, 'right'); echo navi_button_cell($but_pref.'prev', _('Prev'), $pager->prev_page,'right'); echo navi_button_cell($but_pref.'next', _('Next'), $pager->next_page,'right'); echo navi_button_cell($but_pref.'last', _('Last'), $pager->last_page, 'right'); end_row(); end_table(); echo "
"; $from = ($pager->curr_page-1)*$pager->page_len+1; $to = $from + $pager->page_len - 1; if ($to > $pager->rec_count) $to = $pager->rec_count; $all = $pager->rec_count; echo sprintf( _('Records %d-%d of %d'), $from, $to, $all); echo ""; } else { label_cell( _('No records'), "colspan=$colspan class='navibar'"); } end_row(); end_table(); if (isset($pager->marker_txt)) display_note($pager->marker_txt, 0, 1, "class='$pager->notice_class'"); div_end(); return true; } ?>