private function _getOrderByClause()
{
$orderby_clause = '';
$orderby_clauses = array();
// Create copy of instance variables
$columns = $this->_formColumns;
$sort = $this->_formSorts;
$sortOrder = $this->_formSortOrders;
if (!empty($sortOrder) && count($sortOrder) == count($sort) && count($sortOrder) == count($columns)) {
// Sort all three arrays based on sort order
array_multisort($sortOrder, $sort, $columns);
}
for ($column_index = 0; $column_index < $this->_criteria_column_count; $column_index++) {
// if all columns are chosen with * selector,
// then sorting isn't available
// Fix for Bug #570698
if (empty($columns[$column_index]) && empty($sort[$column_index])) {
continue;
}
if (mb_substr($columns[$column_index], -2) == '.*') {
continue;
}
if (!empty($sort[$column_index])) {
$orderby_clauses[] = $columns[$column_index] . ' ' . $sort[$column_index];
}
}
// end for
if (!empty($orderby_clauses)) {
$orderby_clause = 'ORDER BY ' . htmlspecialchars(implode(", ", $orderby_clauses)) . "\n";
}
return $orderby_clause;
}