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(); }