コード例 #1
0
ファイル: DataNode.php プロジェクト: sintattica/atk
 /**
  * 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;
 }