Example #1
0
 public function apply(App_ListFilter $filterlist)
 {
     if (!($fieldName = $this->getFieldName())) {
         throw new App_ListFilter_Rule_Condition_Exception("Filter field name not defined.");
     }
     $filterName = $this->getFilterField();
     if ($scopeVar = $this->getFromScopeVar()) {
         $filters = $filterlist->getFromScope($scopeVar);
         if (!is_array($filters)) {
             $filters = array($filters);
         }
     } else {
         $filters = $filterlist->getFiltersByFieldName($filterName);
     }
     foreach ($filters as $filter) {
         if (($class = $this->getFilterClass()) && !$filter instanceof $class) {
             continue;
         }
         if ($filterName && $filter->getFieldName() != $filterName) {
             continue;
         }
         if ($this->_checkValue($filter->{'get' . ucfirst($this->getFieldName())}(), $this->getComparedValue())) {
             if ($this->getScopeVar()) {
                 $filterlist->addToScope($this->getScopeVar(), $filter);
             }
             return true;
         }
     }
     return false;
 }
 public function testScopeCleanOk()
 {
     $listFilter = new App_ListFilter();
     $listFilter->addToScope('scopeVar1', 'scopeValue1');
     $listFilter->addToScope('scopeVar2', 'scopeValue2');
     $listFilter->addToScope('scopeVar3', 'scopeValue3');
     $listFilter->addToScope('scopeVar4', 'scopeValue4');
     $listFilter->addToScope('scopeVar5', 'scopeValue5');
     $this->assertEquals('scopeValue1', $listFilter->getFromScope('scopeVar1'));
     $this->assertEquals('scopeValue2', $listFilter->getFromScope('scopeVar2'));
     $this->assertEquals('scopeValue3', $listFilter->getFromScope('scopeVar3'));
     $this->assertEquals('scopeValue4', $listFilter->getFromScope('scopeVar4'));
     $this->assertEquals('scopeValue5', $listFilter->getFromScope('scopeVar5'));
     $listFilter->clearScope();
     $this->assertNull($listFilter->getFromScope('scopeVar1'));
     $this->assertNull($listFilter->getFromScope('scopeVar2'));
     $this->assertNull($listFilter->getFromScope('scopeVar3'));
     $this->assertNull($listFilter->getFromScope('scopeVar4'));
     $this->assertNull($listFilter->getFromScope('scopeVar5'));
 }