/** * get a new single filter action * * @param string|array $_fieldOrData * @param string $_operator * @param mixed $_value * @param array $_options */ public function __construct($_fieldOrData, $_operator = NULL, $_value = NULL, array $_options = array()) { // no legacy handling if (!is_array($_fieldOrData)) { throw new Tinebase_Exception_InvalidArgument('$_fieldOrDatamust be an array!'); } $be = new Tinebase_CustomField_Config(); $this->_cfRecord = $be->get($_fieldOrData['value']['cfId']); $type = $this->_cfRecord->definition['type']; if ($type == 'date' || $type == 'datetime') { $this->_subFilter = new Tinebase_Model_CustomField_ValueFilter(array()); $this->_subFilter->addFilter(new Tinebase_Model_Filter_Text(array('field' => 'customfield_id', 'operator' => 'equals', 'value' => $_fieldOrData['value']['cfId']))); $valueFilter = new Tinebase_Model_Filter_Date(array('field' => 'value', 'operator' => $_fieldOrData['operator'], 'value' => $_fieldOrData['value']['value'])); $this->_subFilter->addFilter($valueFilter); } elseif ($type == 'integer') { $valueFilter = new Tinebase_Model_Filter_Int($_fieldOrData, $_operator, $_value, $_options); } else { $valueFilter = new Tinebase_Model_Filter_Text($_fieldOrData, $_operator, $_value, $_options); } $this->_valueFilter = $valueFilter; $this->_operators = $valueFilter->getOperators(); $this->_opSqlMap = $valueFilter->getOpSqlMap(); parent::__construct($_fieldOrData, $_operator, $_value, $_options); }
/** * get custom field by id * * @param string $_customFieldId * @return Tinebase_Model_CustomField_Config */ public function getCustomField($_customFieldId) { return $this->_backendConfig->get($_customFieldId); }