Index: kernel/classes/ezcontentobjecttreenode.php =================================================================== --- kernel/classes/ezcontentobjecttreenode.php (revision 19707) +++ kernel/classes/ezcontentobjecttreenode.php (working copy) @@ -642,7 +642,7 @@ /*! \a static */ - function createSortingSQLStrings( $sortList, $treeTableName = 'ezcontentobject_tree' ) + function createSortingSQLStrings( $sortList, $treeTableName = 'ezcontentobject_tree', $allowCustomColumns = false ) { $sortingInfo = array( 'sortCount' => 0, 'sortingFields' => " path_string ASC", @@ -783,8 +783,15 @@ default: { - eZDebug::writeWarning( 'Unknown sort field: ' . $sortField, 'eZContentObjectTreeNode::getSortingInfo' ); - continue; + if ( $allowCustomColumns ) + { + $sortingFields .= $sortField; + } + else + { + eZDebug::writeWarning( 'Unknown sort field: ' . $sortField, 'eZContentObjectTreeNode::getSortingInfo' ); + continue; + } }; } $sortOrder = true; // true is ascending @@ -868,7 +875,8 @@ function createExtendedAttributeFilterSQLStrings( &$extendedAttributeFilter ) { $filter = array( 'tables' => '', - 'joins' => '' ); + 'joins' => '', + 'columns' => '' ); if ( $extendedAttributeFilter and count( $extendedAttributeFilter ) > 1 ) { @@ -898,6 +906,7 @@ $filter['tables'] = $sqlResult['tables']; $filter['joins'] = $sqlResult['joins']; + $filter['columns'] = $sqlResult['columns']; } @@ -1771,7 +1780,13 @@ eZContentLanguage::setPrioritizedLanguages( $language ); } - $sortingInfo = eZContentObjectTreeNode::createSortingSQLStrings( $params['SortBy'] ); + $allowCustomSorting = false; + if ( is_array ( $params['ExtendedAttributeFilter'] ) ) + { + $allowCustomSorting = true; + } + + $sortingInfo = eZContentObjectTreeNode::createSortingSQLStrings( $params['SortBy'], 'ezcontentobject_tree', $allowCustomSorting ); $classCondition = eZContentObjectTreeNode::createClassFilteringSQLString( $params['ClassFilterType'], $params['ClassFilterArray'] ); if ( $classCondition === false ) { @@ -1830,6 +1845,7 @@ ezcontentclass.is_container as is_container $groupBySelectText $versionNameTargets + $extendedAttributeFilter[columns] FROM ezcontentobject_tree, ezcontentobject,ezcontentclass