public function setup()
 {
     $this->queryObject = new Tx_PtExtlist_Domain_QueryObject_Query();
     // select
     $this->queryObject->addField('name');
     $this->queryObject->addField('age');
     // from
     $this->queryObject->addFrom('Users u');
     $this->queryObject->addFrom('Groups g');
     // where
     $this->queryObject->addCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria::equals('name', 'Michael'));
     // group by
     $this->queryObject->addGroupBy('name');
     $this->queryObject->addGroupBy('company');
     // limit
     $this->queryObject->setLimit('10:10');
     // sortings
     $this->queryObject->addSorting('test');
     $this->queryObject->addSorting('test2', Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_DESC);
 }
Esempio n. 2
0
 /**
  * Build the group data query to retrieve the group data
  *
  * @param array Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $fields
  * @return string
  */
 protected function buildGroupDataQuery($fields)
 {
     $groupDataQuery = new Tx_PtExtlist_Domain_QueryObject_Query();
     $displayField = $this->displayFields->getItemByIndex(0);
     if ($this->additionalTables != '') {
         $groupDataQuery->addFrom($this->additionalTables);
     }
     //TODO only works with SQL!
     $groupDataQuery->addField(sprintf('UPPER(LEFT(%1$s,1)) as firstLetter', $displayField->getTableFieldCombined()));
     $groupDataQuery->addSorting('firstLetter', 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()));
     }
     $groupDataQuery->addGroupBy('firstLetter');
     return $groupDataQuery;
 }
Esempio n. 3
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;
 }
Esempio n. 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);
     }
     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;
 }
Esempio n. 5
0
 public function testGetFrom()
 {
     $query = new Tx_PtExtlist_Domain_QueryObject_Query();
     $query->addFrom('test');
     $this->assertTrue(method_exists($query, 'getFrom'));
     $froms = $query->getFrom();
     $this->assertTrue(in_array('test', $froms));
 }