Exemplo n.º 1
0
 private static function buildWhereClauseForAdvancedSearch($dbname2searchTerm)
 {
     $where = array();
     $where['clause'] = array();
     $where['params'] = array();
     foreach ($dbname2searchTerm as $dbname => $term) {
         $isRange = false;
         if (strstr($term, '~')) {
             $info = explode('~', $term);
             if ($dbname == 'utime' || $dbname == 'mtime' || $dbname == 'lptime') {
                 $input1 = $info[0] != "" ? Application_Common_DateHelper::UserTimezoneStringToUTCString($info[0]) : null;
                 $input2 = $info[1] != "" ? Application_Common_DateHelper::UserTimezoneStringToUTCString($info[1]) : null;
             } else {
                 if ($dbname == 'bit_rate' || $dbname == 'sample_rate') {
                     $input1 = isset($info[0]) ? doubleval($info[0]) * 1000 : null;
                     $input2 = isset($info[1]) ? doubleval($info[1]) * 1000 : null;
                 } else {
                     $input1 = isset($info[0]) ? $info[0] : null;
                     $input2 = isset($info[1]) ? $info[1] : null;
                 }
             }
             $isRange = true;
         } else {
             $input1 = $term;
         }
         if ($isRange) {
             $sub = array();
             if ($input1 != null) {
                 $sub[] = $dbname . " >= :" . $dbname . "1";
             }
             if ($input2 != null) {
                 $sub[] = $dbname . " <= :" . $dbname . "2";
             }
             if (!empty($sub)) {
                 $where['clause'][$dbname] = "(" . implode(' AND ', $sub) . ")";
                 if ($input1 != null) {
                     $where['params'][$dbname . "1"] = $input1;
                 }
                 if ($input2 != null) {
                     $where['params'][$dbname . "2"] = $input2;
                 }
             }
         } else {
             if (trim($input1) !== "") {
                 $where['clause'][$dbname] = $dbname . " ILIKE :" . $dbname . "1";
                 $where['params'][$dbname . "1"] = "%" . $input1 . "%";
             }
         }
     }
     return $where;
 }
Exemplo n.º 2
0
 public function storeCriteriaIntoDb($p_criteriaData)
 {
     // delete criteria under $p_blockId
     CcBlockcriteriaQuery::create()->findByDbBlockId($this->id)->delete();
     //Logging::info($p_criteriaData);
     //insert modifier rows
     if (isset($p_criteriaData['criteria'])) {
         $critKeys = array_keys($p_criteriaData['criteria']);
         for ($i = 0; $i < count($critKeys); $i++) {
             foreach ($p_criteriaData['criteria'][$critKeys[$i]] as $d) {
                 $field = $d['sp_criteria_field'];
                 $value = $d['sp_criteria_value'];
                 if ($field == 'utime' || $field == 'mtime' || $field == 'lptime') {
                     $value = Application_Common_DateHelper::UserTimezoneStringToUTCString($value);
                 }
                 $qry = new CcBlockcriteria();
                 $qry->setDbCriteria($field)->setDbModifier($d['sp_criteria_modifier'])->setDbValue($value)->setDbBlockId($this->id);
                 if (isset($d['sp_criteria_extra'])) {
                     if ($field == 'utime' || $field == 'mtime' || $field == 'lptime') {
                         $d['sp_criteria_extra'] = Application_Common_DateHelper::UserTimezoneStringToUTCString($d['sp_criteria_extra']);
                     }
                     $qry->setDbExtra($d['sp_criteria_extra']);
                 }
                 $qry->save();
             }
         }
     }
     // insert limit info
     $qry = new CcBlockcriteria();
     $qry->setDbCriteria("limit")->setDbModifier($p_criteriaData['etc']['sp_limit_options'])->setDbValue($p_criteriaData['etc']['sp_limit_value'])->setDbBlockId($this->id)->save();
     // insert repeate track option
     $qry = new CcBlockcriteria();
     $qry->setDbCriteria("repeat_tracks")->setDbModifier("N/A")->setDbValue($p_criteriaData['etc']['sp_repeat_tracks'])->setDbBlockId($this->id)->save();
 }