JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
first stab at paypal_ipn framework
[wfpl-cms.git] / admin_pages.html
index 55eed7d..e6630f5 100644 (file)
@@ -2,14 +2,14 @@
 
 <html>
 <head>
-       <title><!--~$title show {~-->~$host~ Admin: <!--~listings once_if {~-->Pages Listing<!--~}~--><!--~form {~--><!--~id {~-->Add a new page<!--~}~--><!--~id unset {~-->Edit page "~title html~"<!--~}~--><!--~}~--><!--~}~--></title>
+       <title><!--~$title show {~-->~$host~ Admin: <!--~listing {~-->Manage Pages<!--~}~--><!--~form {~--><!--~id unset {~-->Add a new page<!--~}~--><!--~id {~-->Edit page "~title html~"<!--~}~--><!--~}~--><!--~}~--></title>
        <!--~$head {~-->
-       <script type="text/javascript" src="code/ckeditor/ckeditor.js"></script>
+       <script src="inc/ckeditor/ckeditor.js?t=F0RD"></script>
        <style>
                /* icon in cke buttons */
                .cke_button_icon.cke_button__wfpl_images_icon {
-                       background-image: url(/code/ckeditor/plugins/icons.png?t=D5AC);
-                       background-position: 0 -1504px;
+                       background-image: url(/inc/ckeditor/plugins/icons.png?t=F0RD);
+                       background-position: 0 -936px;
                }
                .cke_wfpl_images_dialog * {
                        white-space: normal !important;
@@ -47,6 +47,7 @@
                        display: inline-block;
                        overflow: hidden;
                        text-align: center;
+                       background-size: contain;
                        background-position: 50% 50%;
                        background-repeat: no-repeat;
                        background-color: transparent;
                        border: 2px solid #444;
                }
        </style>
-       <script type="text/javascript">
+       <script>
                window.cke_wfpl_images = {
-                       images: [~wfpl_images {~
-                               {
-                                       thumb: "~image thumb_src jsdq~",
-                                       image: "~image image_src jsdq~",
-                                       image_width: "~image image_width~",
-                                       image_height: "~image image_height~",
-                                       sizes: "~sizes jsdq~",
-                                       caption: "~caption jsdq~"
-                               }~ sep {~,~}~~}~
-                       ],
+                       images: ~wfpl_images_json~,
+                       full_width: ~wfpl_image_width_full~,
+                       small_width: ~wfpl_image_width_small~,
+                       thumb_width: ~wfpl_image_width_thumb~,
                        next_id: 0,
                        selected: [],
                        editors: []
                };
+               var enc_html = function(str) {
+                       return str.replace(/[<>&]/g, function(i) { return '&#' + i.charCodeAt(0) + ';'; });
+               };
                function cke_wfpl_images_thumb_click(plugin_id, element, image_id) {
                        var thumbs = element.parentNode.children;
                        var i, thumb;
@@ -96,7 +94,7 @@
                        var selected = window.cke_wfpl_images.selected[plugin_id];
                        var editor = window.cke_wfpl_images.editors[plugin_id];
                        var image;
-                       var code, width, height, src, size, caption;
+                       var code, src, caption;
                        if (selected == null) {
                                CKEDITOR.dialog.getCurrent().hide();
                                return;
                        image = window.cke_wfpl_images.images[selected];
                        switch(align) {
                                case 'left':
-                                       code = '<span class="wfpl_ifl"'
+                                       code = '<div class="wfpl_li">'
+                               break;
+                               case 'centered':
+                                       code = '<div class="wfpl_ci">'
                                break;
                                case 'right':
-                                       code = '<span class="wfpl_ifr"'
+                                       code = '<div class="wfpl_ri">'
                                break;
-                               case 'centered': case 'full':
-                                       code = '<div class="wfpl_ic"'
+                               case 'full':
+                                       code = '<div class="wfpl_fi">'
                                break;
                        }
-                       size = image.sizes.replace(/^\s+|\s+$/g, '').split(/\s\+/)[0];
-                       width = image.image_width;
-                       height = image.image_height;
-                       src = image.image;
-                       caption = image.caption;
-                       if (caption == '') {
+                       code += '<div class="wfpl_i"'
+                       src =
+                               image.src.substr(0, image.src.length - 4)
+                               + 'w'
+                               + window.cke_wfpl_images[align == 'full' ? 'full_width' : 'small_width']
+                               + image.src.substr(image.src.length - 4);
+                       if (image.caption == '') {
                                caption = '&nbsp;';
-                       }
-                       if (align != 'full') {
-                               var wh = size.split('x');
-                               wh[0] = parseInt(wh[0]);
-                               wh[1] = parseInt(wh[1]);
-                               if (width / height > wh[0] / wh[1]) {
-                                       height = Math.round(height * wh[0] / width);
-                                       width = wh[0];
-                               } else {
-                                       width = Math.round(width * wh[1] / height);
-                                       height = wh[1];
-                               }
-                               size = '' + wh[0] + '-' + wh[1]; // dash instead of x
-                               src = src.substr(0, src.length - 4) + '-' + size + src.substr(src.length - 4);
+                       } else {
+                               caption = enc_html(image.caption);
                        }
                        code += ' style="background-image: url(/' + src + ');';
-                       code += ' width: ' + width + 'px;';
-                       code += ' padding-top: ' + height + 'px;';
-                       code += '">' + caption;
-                       switch(align) {
-                               case 'left': case 'right':
-                                       code += '</span>'
-                               break;
-                               case 'centered': case 'full':
-                                       code += '</div>'
-                               break;
-                       }
+                       code += ' padding-top: ' + image.aspect;
+                       code += '">&nbsp</div>' + caption;
+                       code += '</div>'
                        CKEDITOR.dialog.getCurrent().hide();
-                       editor.insertElement(CKEDITOR.dom.element.createFromHtml(code));
+                       CKEDITOR.currentInstance.insertElement(CKEDITOR.dom.element.createFromHtml(code));
                }
                CKEDITOR.plugins.add('wfpl_images', {
                        init: function (editor) {
                                        toolbar: 'insert'
                                });
                                CKEDITOR.dialog.add('wfpl_images_dialog', function (api) {
+                                       var i, im, selected, thumbs;
+                                       selected = 'selected ';
+                                       thumbs = '<div class="cke_wfpl_thumbs">'
+                                       for (i in window.cke_wfpl_images.images) {
+                                               im = window.cke_wfpl_images.images[i];
+                                               thumbs += '<div class="'+selected+'cke_wfpl_thumb" onclick="return window.cke_wfpl_images_thumb_click('+plugin_id+', this, '+im.id+')" style="background-image: url('+im.src.substr(0, im.src.length - 4) + 'w' + window.cke_wfpl_images.thumb_width + im.src.substr(im.src.length - 4) + ')">'+ enc_html(im.name.length > 0 ? im.name : im.caption) + '</div>';
+                                               selected = '';
+                                       }
+                                       thumbs += '</div>'
                                        return {
                                                title: 'Insert Image',
                                                minWidth: 700,
                                                                                type: 'html',
                                                                                html: '<div class="cke_wfpl_images_dialog">'
                                                                                        + '<h3>Step 1: Choose an image to insert:</h3>'
-                                                                                       + "<div class=\"cke_wfpl_thumbs\">~wfpl_images {~ <div class=\"~ first {~selected ~}~cke_wfpl_thumb\" onclick=\"return window.cke_wfpl_images_thumb_click("+plugin_id+", this, ~id~)\" style=\"background-image: url(~image thumb_src attr jsdq~)\">~caption empty {~~name html jsdq~~}~~caption nonempty {~~caption html jsdq~~}~</div>~}~</div>"
+                                                                                       + thumbs
                                                                                + '<p>If you\'d like to insert an image not shown above, you can <a href="admin_images?new=1" target="_blank">upload it here</a>. Sorry, it won\'t appear here until you reload this editor page (hit Save below, then "edit this page" again.)</p>'
                                                                                + '</div>'
                                                                        }
                });
                function make_wysiwyg(name) {
                        CKEDITOR.replace(name, {
-                               'contentsCss': 'style.css?m=~style.css mtime~',
+                               'contentsCss': 'css.css?m=~css.css mtime~',
                                'allowedContent': true,
+                               bodyId: '~$basename~' + '_wysiwyg_' + name,
                                'stylesSet': [
                                        { name: 'Paragraph', element: 'p'},
                                        { name: 'Page Headline', element: 'h1'},
                                        { name: 'Subsection Headline', element: 'h3'},
                                        { name: 'Tagline (under headline)', element: 'h4', attributes: { class: 'tagline'}},
                                        { name: 'Quote', element: 'p', attributes: { class: 'quote'}},
-                                       { name: 'Quote Author', element: 'p', attributes: { class: 'attrib'}}
+                                       { name: 'Quote Author', element: 'p', attributes: { class: 'attrib'}},
+                                       { name: 'div (generic box)', element: 'div'}
                                ],
                                'uiColor': '#ccccff',
                                'removePlugins': 'forms,templates,smiley,pagebreak,save,newpage,preview,print',
 <!--~$body show {~-->
 
        <!--~form {~-->
+               <h1>~$host~ Admin Control Panel</h1>
+
                <h2><!--~id unset {~-->Add a new page<!--~}~--><!--~id {~-->Edit page "~title html~"<!--~}~--></h2>
 
                <form action="admin_pages" method="post"><!--~id {~--><div style="display: none"><input type="hidden" name="edit_id" value="~id attr~"></div><!--~}~-->
                        <div class="field_notes">(<!--~editing {~-->Careful: if you change this, be sure to update all links to this page<!--~}~--><!--~editing unset {~-->Please use only a-z, 0-9 and _ (underscore) in your filename. Please, no capitals, punctuation or spaces.<!--~}~-->)</div>
                        <div class="field"><input type="text" name="filename" value="~filename attr~"></div>
 
-                       <div class="caption">Show in navigation links</div>
-                       <div class="field_notes">(On the left of every page.)</div>
+                       <div class="caption">Show in site-wide navigation links (optional)</div>
                        <div class="field"><select name="navbar"><!--~navbar options~--></select></div>
 
                        <div class="caption">Navigation Link Text</div>
                                        <li>If you don't see an editor below (with buttons in it) then please try this page in <a href="http://getfirefox.com">Mozilla FireFox</a> or <a href="http://www.google.com/chrome/">Google Chrome</a>.</li>
                                        <li>If you're pasting from Microsoft Word, please use the "paste from word" button (looks like a clipboard with a "W").</li>
                                        <li>To make a link, type the text to be clicked, select it, click the "Link" button (looks like a short chain) and paste the web address (where the link should point to) into the "URL" field. Exception: If you're making a link to another page on this site, please remove the "http://~$host~/" from the beginning of the "URL" field and set the "Protocol" to &lt;other&gt;.</li>
+                                       <li>To insert an image: place the cursor at the beginning of a line and click the "insert image" button in the editor. Note that you will only be able to insert images that you have already uploaded on the <a href="admin_images" target="_blank">manage images</a> page.</li>
                                </ul>
                        </div>
-                       <div class="field"><textarea class="html_editor" rows="20" cols="50" id="content" name="content">~content html~</textarea><script type="text/javascript">make_wysiwyg('content');</script></div>
+                       <div class="field"><textarea class="html_editor" rows="20" cols="50" id="content" name="content">~content html~</textarea><script>make_wysiwyg('content');</script></div>
 
+                       <!--
                        <div class="caption">Description</div>
                        <div class="field_notes">(Hidden description of this page, primarily for search engines.)</div>
                        <div class="field"><textarea rows="9" cols="22" name="description">~description html~</textarea></div>
                        <div class="caption">Keywords</div>
                        <div class="field_notes">(Hidden words (up to 30) with commas between them for search engines)</div>
                        <div class="field"><textarea rows="9" cols="22" name="keywords">~keywords html~</textarea></div>
+                       -->
 
                        <div class="caption">&nbsp;</div>
                        <div class="field"><input type="submit" name="save" value="Save"></div>
                <div class="field"><a href="~filename nonempty {~~filename attr~~}~~filename empty {~admin_pages~id {~?id=~id~~}~~}~">Cancel</a></div>
        <!--~}~-->
 
-       <!--~listings once {~-->
-               <!--~listings once_if {~-->
+       <!--~listing {~-->
+               <h1>~$host~ Admin Control Panel</h1>
+               <h2>Manage Pages</h2>
+
+               <!--~rows once_if {~-->
                        <p><a href="admin_pages?new=1">[Add a new page]</a></p>
 
-                       <table cellspacing="0" cellpadding="4" border="1" summary="">
-                               <tr><th>Title</th><th>Filename</th><th>&nbsp;</th></tr>
-                               <!--~listings {~-->
+                       <table cellspacing="0" cellpadding="4" border="0" summary="" class="evenodd">
+                               <tr>
+                                       <th><a href="?sort=~sorting-by-filename~filename">Filename</a></th>
+                                       <th><a href="?sort=~sorting-by-title~title">Title</a></th>
+                                       <th>&nbsp;</th>
+                               </tr><!--~rows {~-->
                                <tr>
-                                       <td class="listing"><a href="admin_pages?edit_id=~id~">~title html~<!--~title empty {~--><em>(untitled)</em><!--~}~--></a></td>
                                        <td class="listing"><a href="admin_pages?edit_id=~id~">~filename html~<!--~filename empty {~--><em>(offline)</em><!--~}~--></a></td>
-                                       <td><a href="admin_pages?admin_pages_delete_id=~id~" onclick="return confirm('Permanently delete?')">[delete this page]</a></td>
-                               </tr>
-                               <!--~}~-->
+                                       <td class="listing"><a href="admin_pages?edit_id=~id~">~title html~<!--~title empty {~--><em>(untitled)</em><!--~}~--></a></td>
+                                       <td><a href="admin_pages?admin_pages_delete_id=~id~" onclick="return confirm('Permanently delete?')">[delete]</a></td>
+                               </tr><!--~}~-->
 
                        </table>
                <!--~}~-->
-               <!--~listings once_else {~-->
+               <!--~rows once_else {~-->
                        <p>No pages in database.</p>
                <!--~}~-->