/** * Translate the given selector to a criteria array * which key/values can be used to filter data. * * @param string $selector selector string * * @return array criteria */ protected function getCriteria($selector) { $criteria = $this->m_filters; if (empty($selector)) { return $criteria; } $selectors = explode(') OR (', $selector); foreach ($selectors as $selector) { $keyValueSet = Tools::decodeKeyValueSet($selector); foreach ($keyValueSet as $column => $value) { $column = trim($column, ' ()'); $value = trim($value, ' ()'); if (strpos($column, '.') !== false) { list($table, $column) = explode('.', $column); if ($table != $this->getTable()) { continue; } } $value = stripslashes(Tools::stripQuotes($value)); if (isset($criteria[$column]) && $criteria[$column] != $value) { $criteria[$column] = array_merge((array) $criteria[$column], (array) $value); } else { $criteria[$column] = $value; } } } return $criteria; }