/** * @param filterType * @service filter read */ public function getFilters($filterType) { $condition = new Gpf_SqlBuilder_CompoundWhereCondition(); $condition->add('f.userid', '=', Gpf_Session::getAuthUser()->getUserId(), 'OR'); $condition->add('f.userid', '=', null, 'OR'); $condition->add('f.userid', '=', '', 'OR'); $selectBuilder = new Gpf_SqlBuilder_SelectBuilder(); $selectBuilder->select->add('f.filterid', 'id'); $selectBuilder->select->add('f.name', 'name'); $selectBuilder->select->add('c.fieldid', 'fieldid'); $selectBuilder->select->add('c.sectioncode', 'sectioncode'); $selectBuilder->select->add('c.code', 'code'); $selectBuilder->select->add('c.operator', 'operator'); $selectBuilder->select->add('c.value', 'value'); $selectBuilder->from->add(Gpf_Db_Table_Filters::getName(), 'f'); $selectBuilder->from->addLeftJoin(Gpf_Db_Table_FilterConditions::getName(), 'c', 'f.filterid=c.filterid'); $selectBuilder->where->add('f.filtertype', '=', $filterType); $selectBuilder->where->addCondition($condition); $selectBuilder->orderBy->add('f.name'); $selectBuilder->orderBy->add('f.filterid'); $selectBuilder->orderBy->add('c.sectioncode'); $response = new Gpf_Data_RecordSet(); $response->load($selectBuilder); foreach ($response as $filter) { $filter->set('name', $this->_localize($filter->get('name'))); } return $response; }
public static function getInstance() { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; }
public function delete($filterId) { $this->set('filterid', $filterId); $this->load(); if ($this->getPreset() == Gpf::YES) { throw new Gpf_Exception("You cannot delete preset filter!"); } $conditionsTable = Gpf_Db_Table_FilterConditions::getInstance(); $conditionsTable->deleteAll($filterId); return parent::delete(); }
private function saveFilterPresets(Gpf_Rpc_Form $form, $filterId) { $filterConditionsTable = Gpf_Db_Table_FilterConditions::getInstance(); $filterConditionsTable->deleteAll($filterId); $presets = new Gpf_Data_RecordSet(); $presets->loadFromArray($form->getFieldValue("presets")); foreach ($presets as $preset) { $filterCondition = new Gpf_Db_FilterCondition(); $filterCondition->setFilterId($filterId); $filterCondition->fillFromRecord($preset); $filterCondition->save(); } }
protected function buildFilter() { if ($this->filterId && $this->filterId != 'custom') { $sql = new Gpf_SqlBuilder_SelectBuilder(); $sql->select->addAll(Gpf_Db_Table_FilterConditions::getInstance()); $sql->from->add(Gpf_Db_Table_FilterConditions::getName()); $sql->where->add('filterid', '=', $this->filterId); $conditions = $sql->getAllRows(); foreach ($conditions as $condition) { $filterArray = array( Gpf_SqlBuilder_Filter::FILTER_CODE => $condition->get('code'), Gpf_SqlBuilder_Filter::FILTER_OPERATOR => $condition->get('operator'), Gpf_SqlBuilder_Filter::FILTER_VALUE => $condition->get('value')); $filter = new Gpf_SqlBuilder_Filter($filterArray); if (array_key_exists($filter->getCode(), $this->dataColumns)) { $dataColumn = $this->dataColumns[$filter->getCode()]; $filter->setCode($dataColumn->getName()); $filter->addTo($this->_selectBuilder->where); } else { $this->addFilter($filter); } } } if (!empty($this->recipients)) { $condition = new Gpf_SqlBuilder_CompoundWhereCondition(); $condition->add('au.'.Gpf_Db_Table_AuthUsers::NOTIFICATION_EMAIL, 'IN', $this->recipients, 'OR'); $condition->add('au.username', 'IN', $this->recipients, 'OR'); $this->_selectBuilder->where->addCondition($condition); } }
function init() { $this->setTable(Gpf_Db_Table_FilterConditions::getInstance()); parent::init(); }