Exemplo n.º 1
0
 /**
  * @param Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $headerColumn
  * @return string
  */
 public function renderColumnLabel(Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $headerColumn)
 {
     $label = $headerColumn->getLabel();
     $label = Tx_PtExtlist_Utility_RenderValue::stdWrapIfPlainArray($label);
     if (\TYPO3\CMS\Core\Utility\GeneralUtility::isFirstPartOfStr($label, 'LLL:')) {
         $label = \TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate($label, '');
     }
     return $label;
 }
Exemplo n.º 2
0
 /**
  * build an instance of a header column by columnConfiguration 
  * 
  * @param Tx_PtExtlist_Domain_Configuration_Columns_ColumnConfig $columnConfiguration
  * @return Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn
  */
 public function createInstance(Tx_PtExtlist_Domain_Configuration_Columns_ColumnConfig $columnConfiguration)
 {
     $headerColumn = new Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn();
     $headerColumn->injectColumnConfig($columnConfiguration);
     $this->sessionPersistenceManagerBuilder->getInstance()->registerObjectAndLoadFromSession($headerColumn);
     $this->getPostVarsAdapterFactory->getInstance()->injectParametersInObject($headerColumn);
     // Register headerColumn in sorter
     // TODO we cannot use DI here since this would lead to cyclic dependencies
     $sorterFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_Model_Sorting_SorterFactory');
     /* @var $sorterFactory Tx_PtExtlist_Domain_Model_Sorting_SorterFactory */
     $sorter = $sorterFactory->getInstance($columnConfiguration->getConfigurationBuilder());
     $sorter->registerSortingObserver($headerColumn);
     $headerColumn->init();
     return $headerColumn;
 }
Exemplo n.º 3
0
 /**
  * Returns an array of sorting field parameters for given header.
  *
  * Each header can have multiple sorting fields attached, each one
  * can be sorted individually.
  *
  * @param Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $header
  * @return array
  */
 protected function buildSortingFieldParams(Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $header)
 {
     $sortingFieldsParams = array();
     foreach ($header->getColumnConfig()->getSortingConfig() as $sortingFieldConfig) {
         /* @var $sortingFieldConfig Tx_PtExtlist_Domain_Configuration_Columns_SortingConfig */
         $sortingFieldParams = array();
         $sortingFieldParams['field'] = $sortingFieldConfig->getField();
         $sortingFieldParams['label'] = $sortingFieldConfig->getLabel();
         $sortingFieldParams['forceDirection'] = $sortingFieldConfig->getForceDirection();
         $sortingFieldParams['direction'] = $sortingFieldConfig->getDirection();
         $sortingFieldParams['sortingFieldParameterAsc'] = $sortingFieldConfig->getField() . ':1';
         $sortingFieldParams['sortingFieldParameterDesc'] = $sortingFieldConfig->getField() . ':-1';
         $sortingFieldParams['sortingFieldParameterNone'] = $sortingFieldConfig->getField() . ':0';
         $sortingFieldParams['currentDirection'] = $header->getSortingDirectionForField($sortingFieldConfig->getField());
         $sortingFieldsParams[] = $sortingFieldParams;
     }
     return $sortingFieldsParams;
 }
Exemplo n.º 4
0
 /**
  * Returns sorting state for header
  *
  * We loop over each sorting field of header and take first sorting field
  * that has no forced direction and has a current sorting set in header.
  *
  * @param Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $header
  * @return integer Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_NONE | Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_ASC | Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_DESC
  */
 protected function getSortingDirectionForHeader(Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn $header)
 {
     $sortingFieldConfigForHeader = $header->getColumnConfig()->getSortingConfig();
     foreach ($sortingFieldConfigForHeader as $sortingFieldConfig) {
         /* @var $sortingFieldConfig Tx_PtExtlist_Domain_Configuration_Columns_SortingConfig */
         if (!$sortingFieldConfig->getForceDirection() && $header->getSortingDirectionForField($sortingFieldConfig->getField()) != Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_NONE) {
             return $header->getSortingDirectionForField($sortingFieldConfig->getField());
         }
     }
     return Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_NONE;
 }
Exemplo n.º 5
0
 /**
  * @test
  */
 public function initByTsConfigSetsVisibilityFalse()
 {
     $columnsConfiguration = $this->configurationBuilderMock->buildColumnsConfiguration();
     $headerColumn = new Tx_PtExtlist_Domain_Model_List_Header_HeaderColumn();
     $headerColumn->injectColumnConfig($columnsConfiguration[20]);
     $headerColumn->init();
     $this->assertFalse($headerColumn->getIsVisible());
 }