Ejemplo n.º 1
0
 public function addAnd(Criterion $criterion)
 {
     if ($criterion instanceof KalturaCriterion) {
         $criterion->setParentCriterion($this);
         $criterion->setSelfConjunction(self::UND);
     }
     return parent::addAnd($criterion);
 }
Ejemplo n.º 2
0
 /**
  * 增加默认的搜索条件
  *
  * @param string|Criterion $dbColName
  * @param string $value
  * @param Watt_Util_Grid_Searchs::Const $type
  */
 public function addHiddenSearch($dbColName, $value = null, $comparison = self::EQUAL, $isOr = false)
 {
     /**
      * 这样将覆盖同 $dbColName 的条件
      */
     //$this->_criteria->add( $dbColName, $value, $type );
     /**
      * 这样将不覆盖同 $dbColName 的条件
      */
     if ($dbColName instanceof Criterion) {
         $newCriterion = $dbColName;
     } else {
         $newCriterion = $this->_criteria->getNewCriterion($dbColName, $value, $comparison);
     }
     if ($this->_hidden_criterion) {
         //$this->_hidden_criterion->addAnd( $newCriterion );	// _hidden_criterion 都必须是 and //错误判断,不仅仅如此
         if ($isOr) {
             $this->_hidden_criterion->addOr($newCriterion);
         } else {
             $this->_hidden_criterion->addAnd($newCriterion);
         }
     } else {
         $this->_hidden_criterion = $newCriterion;
     }
 }
Ejemplo n.º 3
0
 /**
  * add inner criteria for criterions 
  * ----------------- IMPORTANT ----------------- 
  *  for this to work - we have to change the access modifier of the Creterion::getClauses() function from private to public
  * It's in the Criteria.php file under
  * 	/symfony/vendor/propel/util/Criteria.php 
  */
 private function addClauses(Criteria $criteria_to_filter, Criterion $filter_criterion, Criterion $crit)
 {
     $conjunctions = $filter_criterion->getConjunctions();
     if (count($conjunctions) < 1) {
         return;
     }
     $clauses = $filter_criterion->getClauses();
     $i = 0;
     foreach ($clauses as $clause) {
         $new_crit = $criteria_to_filter->getNewCriterion($clause->getTable() . "." . $clause->getColumn(), $clause->getValue(), $clause->getComparison());
         $conj = @$conjunctions[$i];
         if ($conj == Criterion::UND) {
             $crit->addAnd($new_crit);
         } elseif ($conj == Criterion::ODER) {
             $crit->addOr($new_crit);
         }
         $i++;
     }
 }
 /**
  * add inner criteria for criterions 
  * ----------------- IMPORTANT ----------------- 
  *  for this to work - we have to change the access modifier of the Creterion::getClauses() function from private to public
  * It's in the Criteria.php file under
  * 	/symfony/vendor/propel/util/Criteria.php 
  */
 private function addClauses(Criteria $criteriaToFilter, Criterion $filterCriterion, Criterion $criterion)
 {
     $conjunctions = $filterCriterion->getConjunctions();
     if (count($conjunctions) < 1) {
         return;
     }
     $clauses = $filterCriterion->getClauses();
     $i = 0;
     foreach ($clauses as $clause) {
         if ($clause instanceof KalturaCriterion && !$clause->isEnabled()) {
             continue;
         }
         /* @var $clause Criterion */
         $newCriterion = $criteriaToFilter->getNewCriterion($clause->getTable() . "." . $clause->getColumn(), $clause->getValue(), $clause->getComparison());
         $conj = @$conjunctions[$i];
         if ($conj == Criterion::UND) {
             $criterion->addAnd($newCriterion);
         } elseif ($conj == Criterion::ODER) {
             $criterion->addOr($newCriterion);
         }
         $i++;
     }
 }