Example #1
0
 /**
  * Build the group data query to retrieve the group data
  *
  * @param array Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fields
  * @return Tx_PtExtlist_Domain_QueryObject_Query
  */
 protected function buildGroupDataQuery($fields)
 {
     $groupDataQuery = new Tx_PtExtlist_Domain_QueryObject_Query();
     foreach ($fields as $selectField) {
         $groupDataQuery->addField(Tx_PtExtlist_Utility_DbUtils::getAliasedSelectPartByFieldConfig($selectField));
     }
     if ($this->additionalTables != '') {
         $groupDataQuery->addFrom($this->additionalTables);
     }
     foreach ($this->displayFields as $displayField) {
         /* @var $displayField Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig */
         $groupDataQuery->addSorting($displayField->getIdentifier(), Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_ASC);
     }
     if ($this->showRowCount) {
         // TODO only works with SQL!
         $groupDataQuery->addField(sprintf('count("%s") as rowCount', $this->filterField->getTableFieldCombined()));
     }
     $groupFields = array();
     foreach ($this->getFieldsRequiredToBeSelected() as $field) {
         /* @var $field Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig */
         $groupFields[] = $field->getIdentifier();
     }
     $groupDataQuery->addGroupBy(implode(',', $groupFields));
     return $groupDataQuery;
 }
Example #2
0
 /**
  * Creates the select part for given field config
  *
  * <table>.<field>
  *
  * Or: if a special mysql string is given
  * <special mysql string>
  *
  * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldConfiguration
  * @return string
  */
 public static function getSelectPartByFieldConfig(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldConfiguration)
 {
     if ($fieldConfiguration->getSpecial()) {
         $selectPart = '(' . $fieldConfiguration->getSpecial() . ')';
     } else {
         $selectPart = $fieldConfiguration->getTableFieldCombined();
     }
     return $selectPart;
 }
Example #3
0
 /**
  * (non-PHPdoc)
  * @see Classes/Domain/Model/Filter/Tx_PtExtlist_Domain_Model_Filter_AbstractFilter::buildFilterCriteria()
  */
 protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier)
 {
     $criteria = null;
     if ($this->isActive) {
         $columnName = $fieldIdentifier->getTableFieldCombined();
         $filterValue = intval($this->filterValue);
         $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::greaterThanEquals($columnName, $filterValue);
     }
     return $criteria;
 }
Example #4
0
 /**
  * Build the group data query to retrieve the group data
  *
  * @param array Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fields
  * @return \Tx_PtExtlist_Domain_QueryObject_Query
  */
 protected function buildGroupDataQuery($fields)
 {
     $groupDataQuery = new Tx_PtExtlist_Domain_QueryObject_Query();
     foreach ($fields as $selectField) {
         $groupDataQuery->addField(Tx_PtExtlist_Utility_DbUtils::getAliasedSelectPartByFieldConfig($selectField));
     }
     if ($this->additionalTables != '') {
         $groupDataQuery->addFrom($this->additionalTables);
     }
     $groupDataQuery->addSorting('elementCount', Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_DESC);
     if ($this->elementCountField !== NULL) {
         $groupDataQuery->addField(sprintf('%s as elementCount', $this->elementCountField->getTableFieldCombined()));
     } else {
         // TODO only works with SQL!
         $groupDataQuery->addField(sprintf('count("%s") as elementCount', $this->filterField->getTableFieldCombined()));
     }
     $groupDataQuery->addGroupBy($this->filterConfig->getFieldIdentifier()->getItemByIndex(0)->getIdentifier());
     return $groupDataQuery;
 }
 /**
  * Returns property name for given fieldConfiguration
  * 
  * If __self__ is referenced, only field name is returned. 
  * If another domain object is referenced, domain object name (table) is prepended
  *
  * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldConfiguration
  * @return string
  */
 protected function getPropertyNameByFieldConfig(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldConfiguration)
 {
     if ($fieldConfiguration->getTable() != '__self__') {
         // __self__ references current domain object
         $property = $fieldConfiguration->getTableFieldCombined();
     } else {
         $property = $fieldConfiguration->getField();
     }
     return $property;
 }
Example #6
0
 /**
  * (non-PHPdoc)
  * @see Classes/Domain/Model/Filter/Tx_PtExtlist_Domain_Model_Filter_AbstractOptionsFilter::buildFilterCriteria()
  */
 protected function buildFilterCriteria(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fieldIdentifier)
 {
     $criteria = null;
     $columnName = $fieldIdentifier->getTableFieldCombined();
     $filterValues = array_filter($this->filterValues);
     if (count($filterValues)) {
         $criteria = Tx_PtExtlist_Domain_QueryObject_Criteria::like($columnName, current($filterValues) . '%');
     }
     return $criteria;
 }
 public function testGetTableFieldCombined()
 {
     $this->assertEquals($this->fieldConfig->getTableFieldCombined(), $this->fieldSettings['table'] . '.' . $this->fieldSettings['field']);
 }