コード例 #1
0
ファイル: DbUtilsTest.php プロジェクト: punktde/pt_extlist
 /**
  * @test
  */
 public function getAliasedSelectPartByFieldConfigCollection()
 {
     $fieldConfig1 = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'test1', array('field' => 'field', 'table' => 'table'));
     $fieldConfig2 = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'test2', array('field' => 'field', 'table' => 'table', 'special' => 'special'));
     $fieldConfigCollection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection();
     $fieldConfigCollection->addFieldConfig($fieldConfig1);
     $fieldConfigCollection->addFieldConfig($fieldConfig2);
     $return = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfigCollection($fieldConfigCollection);
     $this->assertEquals('table.field, (special)', $return);
 }
コード例 #2
0
 /**
  * translate fullText criteria
  *
  * @param Tx_PtExtlist_Domain_QueryObject_Criteria $criteria
  * @return string
  */
 public static function translateCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria $criteria)
 {
     $connection = $GLOBALS['TYPO3_DB'];
     /** @var TYPO3\CMS\Core\Database\DatabaseConnection $connection */
     $searchString = $criteria->getSearchString();
     if ($criteria->getSearchParameter('booleanMode')) {
         $booleanMode = $criteria->getSearchParameter('booleanMode') ? ' IN BOOLEAN MODE' : '';
         if ($criteria->getSearchParameter('booleanModeWrapWithStars')) {
             if (substr($searchString, 0, 1) != '*') {
                 $searchString = '*' . $searchString;
             }
             if (substr($searchString, -1, 1) != '*') {
                 $searchString .= '*';
             }
         }
     }
     $searchString = $connection->fullQuoteStr($searchString, '');
     return sprintf('MATCH (%s) AGAINST (%s%s)', Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfigCollection($criteria->getFields()), $searchString, $booleanMode);
 }
コード例 #3
0
 /**
  * @param Tx_PtExtlist_Domain_Model_Filter_FilterInterface $filter
  * @param string $filterField
  * @param string $notActiveQuery
  *
  * @return string
  */
 public function render(Tx_PtExtlist_Domain_Model_Filter_FilterInterface $filter, $filterField = '', $notActiveQuery = '1=1')
 {
     if (!$filter->isActive()) {
         return $notActiveQuery;
     }
     if ($filter instanceof Tx_PtExtlist_Domain_Model_Filter_DateRangeFilter) {
         $calculatedTimestampBoundaries = $filter->getCalculatedTimestampBoundaries();
         if (is_array($filterField)) {
             return sprintf('%s >= %s AND %s <= %s', $filterField[0], $calculatedTimestampBoundaries['filterValueFromTimestamp'], $filterField[1], $calculatedTimestampBoundaries['filterValueToTimestamp']);
         } else {
             return sprintf('%s >= %s AND %1$s <= %s', $filterField, $calculatedTimestampBoundaries['filterValueFromTimestamp'], $calculatedTimestampBoundaries['filterValueToTimestamp']);
         }
     }
     $filterValue = $filter->getValue();
     $filterField = $filterField ? $filterField : Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfigCollection($filter->getFilterConfig()->getFieldIdentifier());
     if (is_array($filterValue)) {
         return sprintf('%s in (%s)', $filterField, implode(', ', $filterValue));
     } else {
         return sprintf('%s = %s', $filterField, $filterValue);
     }
 }