public function buildDSRetrivalSQL($data, &$joins, &$where, $andOperation = false) { $field_id = $this->get('id'); if (self::isFilterRegex($data[0])) { $this->_key++; $pattern = str_replace('regexp:', '', parent::cleanValue($data[0])); $joins .= "\n\t\t\t\t\tLEFT JOIN\n\t\t\t\t\t\t`tbl_entries_data_{$field_id}` AS t{$field_id}_{$this->_key}\n\t\t\t\t\t\tON (e.id = t{$field_id}_{$this->_key}.entry_id)\n\t\t\t\t"; $where .= "\n\t\t\t\t\tAND INET_NTOA(t{$field_id}_{$this->_key}.value) REGEXP '{$pattern}'\n\t\t\t\t"; } elseif ($andOperation) { foreach ($data as $value) { $this->_key++; $value = $this->cleanValue($value); $joins .= "\n\t\t\t\t\t\tLEFT JOIN\n\t\t\t\t\t\t\t`tbl_entries_data_{$field_id}` AS t{$field_id}_{$this->_key}\n\t\t\t\t\t\t\tON (e.id = t{$field_id}_{$this->_key}.entry_id)\n\t\t\t\t\t"; $where .= "\n\t\t\t\t\t\tAND t{$field_id}_{$this->_key}.value = '{$value}'\n\t\t\t\t\t"; } } else { if (!is_array($data)) { $data = array($data); } foreach ($data as &$value) { $value = $this->cleanValue($value); } $this->_key++; $data = implode("', '", $data); $joins .= "\n\t\t\t\t\tLEFT JOIN\n\t\t\t\t\t\t`tbl_entries_data_{$field_id}` AS t{$field_id}_{$this->_key}\n\t\t\t\t\t\tON (e.id = t{$field_id}_{$this->_key}.entry_id)\n\t\t\t\t"; $where .= "\n\t\t\t\t\tAND t{$field_id}_{$this->_key}.value IN ('{$data}')\n\t\t\t\t"; } return true; }