/**
  * Returns WHERE clause for a given filter
  *
  * @param Tx_PtExtlist_Domain_Model_Filter_AbstractFilter $filter
  * @return string WHERE clause for given filter without 'WHERE'
  */
 public function getWhereClauseFromFilter(Tx_PtExtlist_Domain_Model_Filter_AbstractFilter $filter)
 {
     $whereClauseFromFilter = $this->queryInterpreter->getCriterias($filter->getFilterQuery());
     return $whereClauseFromFilter;
 }
Beispiel #2
0
 /**
  * @param $filterBoxCollection
  * @return string whereClauseSbippet
  */
 public function getWhereClauseFromFilterboxes($filterBoxCollection)
 {
     $whereClauses = array();
     foreach ($filterBoxCollection as $filterBox) {
         /* @var $filterBox Tx_PtExtlist_Domain_Model_Filter_Filterbox */
         foreach ($filterBox as $filter) {
             /* @var $filter Tx_PtExtlist_Domain_Model_Filter_FilterInterface */
             $whereClauses[] = Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlInterpreter_MySqlInterpreter::getCriterias($filter->getFilterQuery());
         }
     }
     $whereClauseString = '';
     $whereClauses = array_filter($whereClauses);
     if (count($whereClauses)) {
         $whereClauseString = sizeof($whereClauses) > 1 ? implode(' AND ', $whereClauses) : current($whereClauses);
     }
     return $whereClauseString;
 }
 /**
  * @test
  * @dataProvider filterValueDataProvider
  *
  * @param $value
  * @param $andToken
  * @param $orToken
  * @param $expected
  * @param string $expectedSQL
  */
 public function buildFilterCriteria($value, $andToken, $orToken, $expected, $expectedSQL = '')
 {
     $additionalSettings = array('andToken' => $andToken, 'orToken' => $orToken);
     $filter = $this->getStringFilterInstance($additionalSettings);
     $filter->_set('filterValue', $value);
     $filter->_call('initFilterByTsConfig');
     $fieldConfig = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'testField', array('table' => 'table1', 'field' => 'field1'));
     $actualCriteria = $filter->_call('buildFilterCriteria', $fieldConfig);
     $this->assertInstanceOf('Tx_PtExtlist_Domain_QueryObject_Criteria', $actualCriteria);
     $query = new Tx_PtExtlist_Domain_QueryObject_Query();
     $query->addCriteria($actualCriteria);
     $actualSQL = Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlInterpreter_MySqlInterpreter::getCriterias($query);
     $this->assertEquals($expectedSQL, $actualSQL);
 }