function execute() { set_error_handler('exception_error_handler'); $results = false; $msg = array('text' => $this->type() == 'SELECT' ? 'no records' : 'no errors', 'type' => 'good'); try { $results = DB::getConn()->query($this->query, E_USER_NOTICE); } catch (Exception $e) { $msg = array('text' => htmlentities($e->getMessage()), 'type' => 'error'); } restore_error_handler(); $fields = new DataObjectSet(); $records = new DataObjectSet(); if (isset($results) && $results instanceof SS_Query) { foreach ($results as $result) { $record = new DBP_Record(); $data = array(); foreach ($result as $field => $val) { if (!$fields->find('Label', $field)) { $fields->push(new DBP_Field($field)); } $data[$field] = strlen($val) > 64 ? substr($val, 0, 63) . '<span class="truncated">…</span>' : $val; } $record->Data($data); $records->push($record); } } return array('Query' => $this->query, 'Fields' => $fields, 'Records' => $records, 'Message' => $msg); }
function Records() { $vars = Controller::curr()->getRequest()->requestVars(); $start = (int) @$vars['start']; $rows = new DataObjectSet(); $order = isset($vars['orderby']) && $vars['orderby'] ? "\"{$vars['orderby']}\" " . $vars['orderdir'] : ''; $records = DBP_Record::get($this->Name, $order, DatabaseBrowser::$records_per_page, $start); $num = DB::query('SELECT COUNT(*) FROM "' . $this->Name . '"')->value(); $records->setPageLimits($start, DatabaseBrowser::$records_per_page, $num); return $records; }
function save($request) { $record = new DBP_Record($request->postVar('oldid')); foreach ($request->postVars() as $key => $val) { if (preg_match('/^update_([a-z0-9_]+)$/i', $key, $match)) { $data[$match[1]] = "{$val}"; } } $record->data($data); $record->save(); return json_encode(array('msg' => 'Record saved', 'status' => 'good', 'id' => $record->ID())); }