ad_order_by_from_sort_spec sort_by tabledefWhat it does:
Takes a sort_by spec, and translates it into into an "order by" clause with each sort_by key dictated by the sort info in tabledefDefined in: /web/philip/packages/acs-core/table-display-procs.tcl
Source code:
set order_by_clause {}
foreach sort_key_spec [split $sort_by ","] {
if { [regexp {^([A-Za-z_]+)(\*?)$} $sort_key_spec match sort_key reverse] } {
# if there's a "*" after the key, we want to reverse the usual order
foreach order_spec $tabledef {
if { $sort_key == [lindex $order_spec 0] } {
if { $reverse == "*" } {
set order "desc"
} else {
set order "asc"
}
if { $order_by_clause == "" } {
append order_by_clause "\norder by "
} else {
append order_by_clause ", "
}
# tack on the order by clause
if {![empty_string_p [lindex $order_spec 2]]} {
append order_by_clause "[subst [lindex $order_spec 2]]"
} else {
append order_by_clause "$sort_key $order"
}
break
}
}
}
}
return $order_by_clause