JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
fix admin_images (crash), improve it
authorJason Woofenden <jason@jasonwoof.com>
Fri, 6 Nov 2015 22:32:57 +0000 (17:32 -0500)
committerJason Woofenden <jason@jasonwoof.com>
Fri, 6 Nov 2015 22:32:57 +0000 (17:32 -0500)
admin_images.html
admin_images.php

index d36df35..2294f29 100644 (file)
@@ -7,35 +7,6 @@
 
 <body>
 <!--~$body show {~-->
-       <!--~display {~-->
-               <h1>~$host~ Admin Control Panel</h1>
-
-               <h2><!--~image nonempty {~--><span class="wfpl_thumb" style="background-image: url(~image image_src_thumb~); vertical-align: middle;"></span><!--~}~--> Details for Image ~caption empty {~~name nonempty {~"~name html~"~}~~}~~caption nonempty {~"~caption html~"~}~</h2>
-
-               <p><a href="admin_images">&larr; Back to images</a></p>
-
-               <p><a href="admin_images?edit_id=~id attr~">Edit this image</a></p>
-
-               <h2>Uses of this image</h2>
-
-               <!--~references unset {~--><p>This image does not appear on any pages.</p><!--~}~-->
-
-               <!--~references {~--><p>This image appears on the following page~count s~: <!--~data {~--><a href="~filename attr~">~title html~</a><!--~ sep {~-->, <!--~}~--><!--~}~--></p><!--~}~-->
-
-               <h2>Instructions</h2>
-
-               <p>Now that you've uploaded this image, you can insert it into a page with the <strong>page&nbsp;editor</strong>. You can get to the <strong>page&nbsp;editor</strong> from the <a href="admin">control panel</a> or by going to a page you'd like to edit, then clicking "Edit this page" at the top.</p>
-
-               <div style="margin-top: 25px"><strong>Full Size (centered):</strong></div>
-               <div class="wfpl_ic"><div class="wfpl_i" style="background-image: url(~image image_src_full~); padding-top: ~image image_aspect~"></div>~caption nonempty {~~caption html~~}~</div>
-
-
-
-               <p><a href="admin_images">Back to images</a></p>
-
-               <p><a href="admin_images?edit_id=~id attr~">Edit</a></p>
-       <!--~}~-->
-
        <!--~form {~-->
                <h1>~$host~ Admin Control Panel</h1>
 
 
                <form action="admin_images" method="post" enctype="multipart/form-data"><!--~id {~--><div style="display: none"><input type="hidden" name="edit_id" value="~id attr~"></div><!--~}~--><input type="hidden" name="MAX_FILE_SIZE" value="~upload_max_filesize~">
 
+                       <!--~image once_if {~-->
+                               <div class="wfpl_ri"><div class="wfpl_i" style="background-image: url(~image image_src_small~); padding-top: ~image image_aspect~"></div>~caption html~</div>
+                       <!--~}~-->
+                       <!--~image once_else {~-->
                        <div class="caption">Image</div>
-                       <div class="field"><input type="file" name="image"><input type="hidden" name="old_image" value="~image attr~"></div>
+                       <div class="field"><input type="file" name="image"></div>
+                       <!--~}~-->
 
-                       <div class="caption">Name (optional)</div>
-                       <div class="field_notes">This name is only displayed on administration pages.</div>
+                       <div class="caption">Name (used for sorting, optional)</div>
+                       <div class="field_notes">This value is never displayed to site visitors. Your collection of images are sorted by name, so you can use this field to keep your images organized.</div>
                        <div class="field"><input type="text" name="name" value="~name attr~"></div>
 
                        <div class="caption">Caption (optional)</div>
                        <div class="field_notes">Here's some symbols you might want to paste in: &copy; &nbsp; &mdash; &nbsp; &ndash;</div>
                        <div class="field"><input type="text" name="caption" value="~caption attr~"></div>
 
-                       <div class="caption field"><input type="submit" name="save" value="Save"></div>
+                       <div class="caption field"><input type="hidden" name="old_image" value="~image attr~"><input type="submit" name="save" value="Save"></div>
 
                </form>
 
@@ -78,7 +54,7 @@
                                <tr>
                                        <td class="listing"><!--~image nonempty {~--><a style="cursor: zoom-in" href="~image image_src_full~" target="_blank"><span class="wfpl_thumb" style="background-image: url(~image image_src_thumb~)"></span></a><!--~}~--></td>
                                        <td class="listing">Name: ~name html~<br>Caption: ~caption html~</td>
-                                       <td><a href="admin_images?id=~id~">[edit]</a></td>
+                                       <td><a href="admin_images?edit_id=~id~">[edit]</a></td>
                                        <td><a href="admin_images?admin_images_delete_id=~id~" onclick="return confirm('Permanently delete?')" style="color: red">[delete]</a></td>
                                </tr>
                                <!--~}~-->
index 2a5ae51..e9d3169 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');
@@ -70,11 +70,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 +78,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) {
@@ -162,21 +137,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());