Example #1
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 #2
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;
 }
 /**
  * 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 #4
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;
 }
 /**
  * @test
  */
 public function buildDateFieldIdentifierArrayWithFieldIdentifierCollection()
 {
     $filterSettings = $this->defaultFilterSettings;
     $filterSettings['fieldIdentifier'] = 'field1';
     $timeSpanFilterMock = $this->buildAccessibleAbstractTimeSpanFilter($filterSettings);
     /** @var $timeSpanFilterMock Tx_PtExtlist_Domain_Model_Filter_AbstractTimeSpanFilter  */
     $fieldIdentifierArray = $timeSpanFilterMock->getDateFieldsConfigs();
     $testField = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'field1', array('field' => 'fieldName1', 'table' => 'tableName1'));
     $this->assertTrue(is_a($fieldIdentifierArray[0]['start'], 'Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig'));
     $this->assertTrue(is_a($fieldIdentifierArray[0]['end'], 'Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig'));
     $this->assertEquals($testField->getIdentifier(), $fieldIdentifierArray[0]['start']->getIdentifier());
     $this->assertEquals($testField->getIdentifier(), $fieldIdentifierArray[0]['end']->getIdentifier());
 }
Example #6
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;
 }
 public function testGetAccessGroups()
 {
     $accessArray = $this->fieldConfig->getAccessGroups();
     $this->assertTrue(in_array('1', $accessArray));
     $this->assertTrue(in_array('2', $accessArray));
     $this->assertTrue(in_array('3', $accessArray));
     $this->assertTrue(in_array('4', $accessArray));
 }
Example #8
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;
 }
Example #9
0
 /**
  * Returns an array of this sorting state that can be persisted to session.
  *
  * Array has format array('fieldName' => fieldName, 'direction' => direction)
  * 
  * @return array
  */
 public function getSessionPersistableArray()
 {
     return array('fieldName' => $this->field->getIdentifier(), 'direction' => $this->direction);
 }
 /**
  * Adds a given field and direction to sorting state
  *
  * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $field
  * @param integer $direction
  */
 public function addSortingByFieldAndDirection(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $field, $direction)
 {
     $sortingState = new Tx_PtExtlist_Domain_Model_Sorting_SortingState($field, $direction);
     $this->addItem($sortingState, $field->getIdentifier());
 }
Example #11
0
 /**
  * Expand the field by delimiter
  *
  * @param array $row
  * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $mapping
  * @return array
  */
 protected function expandGroupedData(&$row, Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig $mapping)
 {
     return explode($mapping->getExpandGroupRowsSeparator(), $row[$mapping->getIdentifier()]);
 }