public function modelDataTable($id = null, Atomik_Model_Query $query = null, $options = array()) { $this->dataTable($id, array(), $options); if ($this->options['sortColumn']) { $query->orderBy($this->options['sortColumn'], $this->options['sortOrder']); } $this->options['paginateData'] = false; $this->options['sortData'] = false; $this->options['numberOfRows'] = Atomik_Model_Locator::count($query); $offset = ($this->options['currentPage'] - 1) * $this->options['rowsPerPage']; $query->limit($offset, $this->options['rowsPerPage']); $this->_builder = $query->getBuilder(); $this->setData(Atomik_Model_Locator::query($query)); return $this; }
public function modelFilters(Atomik_Model_Builder $builder) { $filters = Atomik_Model_Query::getAvailableFilters($builder); if (!count($filters)) { return ''; } Atomik_Backend_Assets::addStyle('css/filter.css', 'db'); Atomik_Backend_Assets::addScript('js/filter.js', 'db'); $html = '<div class="sidebar-box model-filters"><div class="sidebar-box-title">Filters</div><ul>'; foreach ($filters as $name => $filter) { $html .= sprintf('<li><span class="by">By %s</span>%s</li>', $builder->getField($name)->getLabel(), $this->_getList($name, $filter->getPossibleValues())); } $html .= '</ul></div>'; return $html; }
/** * Builds a query object from the parameters * * @param string|Atomik_Model_Builder $builder * @param array $where * @param string $orderBy * @param string|array $limit * @return Atomik_Db_Query */ public static function buildQuery($builder, $where = null, $orderBy = null, $limit = null) { $query = Atomik_Model_Query::create($builder); $query->select()->from($builder); if ($where !== null) { $query->where($where); } if ($orderBy !== null) { $query->orderBy($orderBy); } if ($limit !== null) { $query->limit($limit); } return $query; }
public function modelAutoComplete($id, $model, $field) { $this->field = $field; $query = Atomik_Model_Query::create()->from($model)->where('LOWER(' . $field . ') LIKE ?')->limit(10); return $this->autoComplete($id, $query); }
<?php if (!Atomik::has('request/name')) { Atomik::redirect('index'); } $modelName = Atomik::get('request/name'); $builder = Atomik_Backend_Models::getModelBuilder($modelName); $models = new Atomik_Model_Query(); $models->from($builder)->filter(Atomik::get('request/filters', array())); if (isset($_POST['search'])) { $models->where($_POST['searchBy'] . ' LIKE ?', '%' . $_POST['search'] . '%'); } $columns = array(); foreach ($builder->getFields() as $field) { if (($builder->isFieldThePrimaryKey($field) || $builder->isFieldPartOfReference($field) || $field->hasOption('admin-hide-in-list')) && !$field->hasOption('admin-show-in-list')) { continue; } $columns[$field->name] = $field->getLabel(); } $editUrl = Atomik::get('request/editUrl', Atomik::url('models/edit', array('name' => $modelName))); $deleteUrl = Atomik::get('request/deleteUrl', Atomik::url('models/delete', array('name' => $modelName)));