JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
listings sort when you click headers
[wfpl.git] / metaform / template.php
index 30c0de8..6479fc5 100644 (file)
@@ -143,8 +143,22 @@ function ~file_name~_main_delete($id) {
 }~}~~opt_listing {~
 
 function ~file_name~_main_listing() {
-       $listing_rows = db_get_assocs('~table_name~', 'id~listing_fields_1 {~,~name~~}~', 'order by ~always_field~ limit 1000');
-       tem_set('listings', $listing_rows);
+       $data = array();
+       $desc = '';
+       $sort = _REQUEST_cut('sort');
+       if($sort && substr($sort, 0, 1) === '-') {
+               $sort = substr($sort, 1);
+               $desc = ' DESC ';
+       } else {
+               $data["sorting-by-$sort"] = '-';
+       }
+       $legal_sorts = explode(',', ~file_name upper~_DB_FIELDS);
+       if(!$sort || !in_array($sort, $legal_sorts)) {
+               $sort = '~always_field~';
+       }
+
+       $data['rows'] = db_get_assocs('~table_name~', 'id~listing_fields_1 {~,~name~~}~', "order by $sort $desc limit 1000");
+       tem_set('listings', $data);
 }~}~
 
 function ~file_name~_main_form($id = false) {~pulldowns {~
@@ -200,10 +214,10 @@ function ~file_name~_main_form($id = false) {~pulldowns {~
                                return './~file_name~~opt_db unset {~_thanks~}~';~}~
                        }
                }
-               # otherwise, we display the form again. ~file_name~_get_fields() has
-               # already put the posted values back into the template engine, so they will
-               # show up in the form fields. You should add some message asking people to
-               # fix their entry in whatever way you require.~opt_db {~
+               # otherwise, we display the form again. We've got the form field
+               # values in $data and will put those back in the filds below. You
+               # should add some message asking people to fix their entry in
+               # whatever way you require.~opt_db {~
        } elseif($id) {
                # we've recieved an edit id, but no data. So we grab the values to be edited from the database
                $data = db_get_assoc('~table_name~', ~file_name upper~_DB_FIELDS, 'where id=%i', $id);~}~
@@ -213,7 +227,7 @@ function ~file_name~_main_form($id = false) {~pulldowns {~
                $data = array();
        }~upload_max {~
 
-       tem_set('upload_max_filesize', upload_max_filesize());~}~
+       tem_set('$upload_max_filesize', upload_max_filesize());~}~
 
        tem_set('form', $data);~show_extra_headers {~
        tem_set('$head');~}~