JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
first stab at paypal_ipn framework
[wfpl-cms.git] / admin_images.php
index 73d16c6..c4647c1 100644 (file)
@@ -2,7 +2,7 @@
 
 # This form requires wfpl. See: http://sametwice.com/wfpl
 
-define('ADMIN_IMAGES_DB_FIELDS', 'image,name,caption,sizes');
+define('ADMIN_IMAGES_DB_FIELDS', 'image,name,caption');
 
 require_once(DOCROOT . 'inc/wfpl/format.php');
 require_once(DOCROOT . 'inc/wfpl/upload.php');
@@ -39,8 +39,6 @@ function admin_images_get_fields() {
        } else {
                if(_REQUEST_cut('delete_image') == 'Yes') {
                        $data['image'] = '';
-               } else {
-                       $data['image'] = format_image_w_h(_REQUEST_cut('old_image'));
                }
        }
        unset($_FILES['image']);
@@ -70,11 +68,6 @@ function admin_images_main() {
                return admin_images_main_listing();
        }
 
-       $id = _REQUEST_cut('id');
-       if($id) {
-               return admin_images_main_display($id);
-       }
-
        if(isset($_POST['name'])) {
                return admin_images_main_form();
        }
@@ -83,28 +76,8 @@ function admin_images_main() {
        return admin_images_main_listing();
 }
 
-function admin_images_main_display($id) {
-       $data = db_get_assoc('cms_images', 'id,'.ADMIN_IMAGES_DB_FIELDS, 'where id=%i', $id);
-       if(!$data) {
-               message("Error: Broken Link (Image #$id not found)");
-               return './admin_images';
-       }
-
-       # Find pages that have this image on it
-       if($data['image']) {
-               $references = db_get_assocs('cms_pages', 'title,filename', 'where content like "%%%s%%" order by concat(nav_title,title)', substr(enc_image_src($data['image']), 0, -4));
-               if($references) {
-                       $data['references'] = array(
-                               'data' => $references,
-                               'count' => count($references));
-               }
-       }
-
-       tem_set('display', $data);
-}
-
 function admin_images_main_delete($id) {
-       $data = db_get_assoc('cms_images', 'image,sizes', 'where id=%i', $id);
+       $data = db_get_assoc('cms_images', 'image', 'where id=%i', $id);
        if ($data) {
                $src = enc_image_src($data['image']);
                if ($src) {
@@ -127,7 +100,22 @@ function admin_images_main_delete($id) {
 }
 
 function admin_images_main_listing() {
-       $listing_rows = db_get_assocs('cms_images', 'id,image,name,caption', 'order by name, caption');
+       $sort_by = 'name';
+       $sorts = array(
+               'age' => 'created_at desc',
+               'name' => "coalesce(nullif(name, ''), caption), created_at",
+               'caption' => "coalesce(nullif(caption, ''), name), created_at"
+       );
+       if (isset($_REQUEST['sort'])) {
+               foreach ($sorts as $s => $sql) {
+                       if ($_REQUEST['sort'] == $s) {
+                               $sort_by = $s;
+                               break;
+                       }
+               }
+       }
+       tem_set("sort_by_$sort_by");
+       $listing_rows = db_get_assocs('cms_images', 'id,image,name,caption', 'order by ' . $sorts[$sort_by]);
        tem_set('listings', $listing_rows);
 }
 
@@ -147,21 +135,21 @@ function admin_images_main_form($id = false) {
                        db_update_assoc('cms_images', $data, 'where id=%i', $id);
                        message('Image updated.');
                        $saved_id = $id;
+                       return "./admin_images";
                } else {
+                       $data['created_at'] = time();
                        db_insert_assoc('cms_images', $data);
                        message('Image saved. Next time you open a page editor, this image will be availble in the "Insert Image" dialog.');
                        $saved_id = db_auto_id();
+                       return "./admin_images?sort=age";
                }
 
-               # return user to display page where they can see instructions, etc
-               return "./admin_images";
-
        } 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('cms_images', ADMIN_IMAGES_DB_FIELDS, 'where id=%i', $id);
        } else {
                # form not submitted, set default values:
-               $data = array('sizes' => '275x500');
+               $data = array();
        }
 
        tem_set('upload_max_filesize', upload_max_filesize());