Пример #1
0
 public function crits_to_json(Utils_RecordBrowser_CritsInterface $crits)
 {
     $crits->normalize();
     if ($crits instanceof Utils_RecordBrowser_Crits) {
         $cc = $crits->get_component_crits();
         $condition = $crits->get_join_operator();
         if (!$condition) {
             $condition = 'AND';
         }
         $ret = array('condition' => $condition);
         $rules = array();
         foreach ($cc as $c) {
             $rr = $this->crits_to_json($c);
             if ($rr) {
                 $rules[] = $rr;
             }
         }
         $ret['rules'] = $rules;
         return $ret;
     } elseif ($crits instanceof Utils_RecordBrowser_CritsSingle) {
         list($operator, $value) = self::map_crits_operator_to_query_builder($crits->get_operator(), $crits->get_value());
         $ret = array('id' => $crits->get_field(), 'field' => $crits->get_field(), 'operator' => $operator, 'value' => $value);
         return $ret;
     } elseif ($crits instanceof Utils_RecordBrowser_CritsRawSQL) {
     } else {
         throw new Exception("crits to json exporter: unsupported class: " . get_class($crits));
     }
 }