/** * 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; }
/** * 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; }