Example #1
0
 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;
 }