You can use do.call to pass a list of arguments to order. The key is you need a step in between because order requires vector arguments rather than the column names supplied in ...
Below should work:
colSort <-function(data,...,decreasing=TRUE){
# Get list of arguments from ...
l1<-list(...)
# Convert column names to list of vectors to use for ordering
l2 <- lapply(l1, function(x){data[[x]]})
# Add decreasing argument as named element of list
l2$decreasing <- decreasing
# Use do.call to pass list of arguments to order
sort_order <- do.call(order, l2)
# Sort data
sorted <- data[sort_order,]
invisible(sorted)
}
t1<-colSort(mtcars,"disp","qsec")