static function get($table, $order, $limit, $start) { $return = new DataObjectSet(); $result = DB::query(DBP_SQLDialect::select('*', $table, null, $order, $limit, $start)); foreach ($result as $r) { $rec = new DBP_Record(); $rec->id = $r['ID']; $rec->table = $table; $rec->data = $r; $return->push($rec); } return $return; }
function Pagination() { $start = (int) $this->requestVar('start'); $total = DB::query(DBP_SQLDialect::select('COUNT(*)', $this->Name))->value(); $end = $start + DatabaseBrowser::$records_per_page - 1 > $total - 1 ? $total - 1 : $start + DatabaseBrowser::$records_per_page - 1; $pagination = array('total' => $total, 'start' => $start, 'length' => DatabaseBrowser::$records_per_page, 'end' => $end, 'orderby' => $this->requestVar('orderby'), 'orderdir' => $this->requestVar('orderdir')); if ($start > 0) { $pagination['firstlink'] = 'start=0'; $pagination['prevlink'] = 'start=' . ($start - DatabaseBrowser::$records_per_page); } if (isset($pagination['prevlink']) && $pagination['prevlink'] < 0) { $pagination['prevlink'] = 'start=0'; } if ($start + DatabaseBrowser::$records_per_page < $pagination['total']) { $pagination['nextlink'] = 'start=' . ($start + DatabaseBrowser::$records_per_page); $pagination['lastlink'] = 'start=' . floor(($pagination['total'] - 1) / DatabaseBrowser::$records_per_page) * DatabaseBrowser::$records_per_page; } return new ArrayData($pagination); }