JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
indent with spaces
[wfpl-cms.git] / admin_pages.php
index ae0fa33..384591d 100644 (file)
@@ -6,264 +6,264 @@ define('ADMIN_PAGES_DB_FIELDS', 'title,filename,navbar,nav_title,layout,content,
 
 
 function format_cms_filename($str) {
-       $str = format_filename($str);
-       $str = str_replace('.', '_', $str);
-       return $str;
+    $str = format_filename($str);
+    $str = str_replace('.', '_', $str);
+    return $str;
 }
 
 
 function admin_pages_get_fields() {
-       $data = array();
-
-       $data['title'] = format_oneline(_REQUEST_cut('title'));
-       $data['filename'] = format_cms_filename(_REQUEST_cut('filename'));
-       $data['navbar'] = format_options(_REQUEST_cut('navbar'), 'navbar');
-       $data['nav_title'] = format_oneline(_REQUEST_cut('nav_title'));
-       $data['layout'] = format_options(_REQUEST_cut('layout'), 'layout');
-       $data['content'] = format_unix(_REQUEST_cut('content'));
-       if (isset($_REQUEST['sidebar_content'])) { // probs not needed
-               $data['sidebar_content'] = format_unix(_REQUEST_cut('sidebar_content'));
-       }
-       if (isset($_REQUEST['description'])) {
-               $data['description'] = format_unix(_REQUEST_cut('description'));
-       }
-       if (isset($_REQUEST['keywords'])) {
-               $data['keywords'] = format_unix(_REQUEST_cut('keywords'));
-       }
-
-       return $data;
+    $data = array();
+
+    $data['title'] = format_oneline(_REQUEST_cut('title'));
+    $data['filename'] = format_cms_filename(_REQUEST_cut('filename'));
+    $data['navbar'] = format_options(_REQUEST_cut('navbar'), 'navbar');
+    $data['nav_title'] = format_oneline(_REQUEST_cut('nav_title'));
+    $data['layout'] = format_options(_REQUEST_cut('layout'), 'layout');
+    $data['content'] = format_unix(_REQUEST_cut('content'));
+    if (isset($_REQUEST['sidebar_content'])) { // probs not needed
+        $data['sidebar_content'] = format_unix(_REQUEST_cut('sidebar_content'));
+    }
+    if (isset($_REQUEST['description'])) {
+        $data['description'] = format_unix(_REQUEST_cut('description'));
+    }
+    if (isset($_REQUEST['keywords'])) {
+        $data['keywords'] = format_unix(_REQUEST_cut('keywords'));
+    }
+
+    return $data;
 }
 
 
 function admin_pages_main() {
-       session_auth_must('admin_pages');
-
-       $id = _REQUEST_cut('edit_id');
-       if($id) {
-               return admin_pages_main_form($id);
-       }
-
-       $id = _REQUEST_cut('edit_history_id');
-       if($id) {
-               return admin_pages_main_form(null, $id);
-       }
-
-       $id = _REQUEST_cut('history_page_id');
-       if($id) {
-               return admin_pages_main_page_history($id);
-       }
-
-       $id = _REQUEST_cut('history_id');
-       if($id) {
-               return admin_pages_main_history($id);
-       }
-
-       $id = _REQUEST_cut('admin_pages_delete_id');
-       if($id) {
-               return admin_pages_main_delete($id);
-       }
-
-       if(_REQUEST_cut('new')) {
-               return admin_pages_main_form();
-       }
-
-       if(_REQUEST_cut('list')) {
-               return admin_pages_main_listing();
-       }
-
-       $id = _REQUEST_cut('id');
-       if($id) {
-               return admin_pages_main_display($id);
-       }
-
-       if(isset($_POST['title'])) {
-               return admin_pages_main_form();
-       }
-
-       # default action:
-       return admin_pages_main_listing();
+    session_auth_must('admin_pages');
+
+    $id = _REQUEST_cut('edit_id');
+    if($id) {
+        return admin_pages_main_form($id);
+    }
+
+    $id = _REQUEST_cut('edit_history_id');
+    if($id) {
+        return admin_pages_main_form(null, $id);
+    }
+
+    $id = _REQUEST_cut('history_page_id');
+    if($id) {
+        return admin_pages_main_page_history($id);
+    }
+
+    $id = _REQUEST_cut('history_id');
+    if($id) {
+        return admin_pages_main_history($id);
+    }
+
+    $id = _REQUEST_cut('admin_pages_delete_id');
+    if($id) {
+        return admin_pages_main_delete($id);
+    }
+
+    if(_REQUEST_cut('new')) {
+        return admin_pages_main_form();
+    }
+
+    if(_REQUEST_cut('list')) {
+        return admin_pages_main_listing();
+    }
+
+    $id = _REQUEST_cut('id');
+    if($id) {
+        return admin_pages_main_display($id);
+    }
+
+    if(isset($_POST['title'])) {
+        return admin_pages_main_form();
+    }
+
+    # default action:
+    return admin_pages_main_listing();
 }
 
 # admin-only access to view pages with no filename
 function admin_pages_main_display($id) {
-       $page = db_get_assoc('cms_pages', 'id,title,keywords,description,layout,content,sidebar_content', 'where id=%"', $id);
-       cms_display_content($GLOBALS['wfpl_main_template'], $page);
-       $GLOBALS['wfpl_main_template']->data['$admin_links']['$edit_page_id'] = $id;
+    $page = db_get_assoc('cms_pages', 'id,title,keywords,description,layout,content,sidebar_content', 'where id=%"', $id);
+    cms_display_content($GLOBALS['wfpl_main_template'], $page);
+    $GLOBALS['wfpl_main_template']->data['$admin_links']['$edit_page_id'] = $id;
 }
 
 function admin_pages_main_delete($id) {
-       db_delete('cms_pages', 'where id=%i', $id);
-       message('Page deleted.');
-       return './admin_pages';
+    db_delete('cms_pages', 'where id=%i', $id);
+    message('Page deleted.');
+    return './admin_pages';
 }
 
 # get all images from admin_images (for cms)
 function admin_pages_get_images() {
-       $out = [];
-       $rows = db_get_assocs('cms_images', 'image,name,caption', "order by coalesce(nullif(name, ''), caption), created_at");
-       if ($rows) {
-               $id = -1;
-               foreach($rows as &$row) { $id += 1;
-                       $parts = explode(' ', $row['image'] . '      ', 7);
-                       $out[] = [
-                               'id' => '' . $id,
-                               'src' => $parts[0],
-                               'aspect' => ''.(round(100000 * ((int)$parts[2]) / ((int)$parts[1]) / 1000)).'%',
-                               'name' => $row['name'],
-                               'caption' => $row['caption']
-                       ];
-               } unset($row);
-       }
-       return $out;
+    $out = [];
+    $rows = db_get_assocs('cms_images', 'image,name,caption', "order by coalesce(nullif(name, ''), caption), created_at");
+    if ($rows) {
+        $id = -1;
+        foreach($rows as &$row) { $id += 1;
+            $parts = explode(' ', $row['image'] . '      ', 7);
+            $out[] = [
+                'id' => '' . $id,
+                'src' => $parts[0],
+                'aspect' => ''.(round(100000 * ((int)$parts[2]) / ((int)$parts[1]) / 1000)).'%',
+                'name' => $row['name'],
+                'caption' => $row['caption']
+            ];
+        } unset($row);
+    }
+    return $out;
 }
 
 function admin_pages_main_listing() {
-       $data = array();
-
-       $rows = db_get_assocs('cms_pages', 'id,coalesce(nullif(nav_title,""), title) as title,filename', 'order by coalesce(nullif(nav_title,""), title), filename limit 2000');
-       $have_home_page = false;
-       if (count($rows) !== 0) {
-               $data['rows'] = $rows;
-               foreach ($rows as &$row) {
-                       if ($row['filename'] === 'index') {
-                               $have_home_page = true;
-                               break;
-                       }
-               } unset($row);
-       }
-       if ($have_home_page === false) {
-               $data['no_home'] = true;
-       }
-       tem_set('listing', $data);
+    $data = array();
+
+    $rows = db_get_assocs('cms_pages', 'id,coalesce(nullif(nav_title,""), title) as title,filename', 'order by coalesce(nullif(nav_title,""), title), filename limit 2000');
+    $have_home_page = false;
+    if (count($rows) !== 0) {
+        $data['rows'] = $rows;
+        foreach ($rows as &$row) {
+            if ($row['filename'] === 'index') {
+                $have_home_page = true;
+                break;
+            }
+        } unset($row);
+    }
+    if ($have_home_page === false) {
+        $data['no_home'] = true;
+    }
+    tem_set('listing', $data);
 }
 
 function admin_pages_main_page_history ($id) {
-       $data = array();
-
-       $rows = db_get_assocs('history_cms_pages left join users on history_cms_pages.history_user_id = users.id', 'history_cms_pages.id as page_id,history_cms_pages.history_id,history_cms_pages.filename,coalesce(nullif(history_cms_pages.nav_title,""), history_cms_pages.title) as title,history_when as timestamp,coalesce(nullif(users.name,""), users.username) as who', 'where history_cms_pages.id=%i order by history_id desc', $id);
-       if (count($rows) !== 0) {
-               $data['title'] = $rows[0]['title'];
-               $rows[0]['first'] = true;
-               if ($rows[0]['filename'] === 'index') {
-                       $rows[0]['filename'] = './';
-               }
-               $data['rows'] = $rows;
-       }
-       tem_set('page_history', $data);
+    $data = array();
+
+    $rows = db_get_assocs('history_cms_pages left join users on history_cms_pages.history_user_id = users.id', 'history_cms_pages.id as page_id,history_cms_pages.history_id,history_cms_pages.filename,coalesce(nullif(history_cms_pages.nav_title,""), history_cms_pages.title) as title,history_when as timestamp,coalesce(nullif(users.name,""), users.username) as who', 'where history_cms_pages.id=%i order by history_id desc', $id);
+    if (count($rows) !== 0) {
+        $data['title'] = $rows[0]['title'];
+        $rows[0]['first'] = true;
+        if ($rows[0]['filename'] === 'index') {
+            $rows[0]['filename'] = './';
+        }
+        $data['rows'] = $rows;
+    }
+    tem_set('page_history', $data);
 }
 
 function admin_pages_main_history ($id) {
-       $cms_page = db_get_assoc('history_cms_pages', 'id,title,keywords,description,layout,content,sidebar_content', 'where history_id=%"', $id);
-       if (!$cms_page) {
-               message("Error 9393 please inform developer");
-               return './admin_pages';
-       }
-       message('You are viewing an archived version of this page. To publish this version (revert the page) click the "Edit this page" link at the top, then the "save" at the bottom of the editor page. Feel free to make changes before saving.');
-       cms_display_content($GLOBALS['wfpl_main_template'], $cms_page);
-       $GLOBALS['wfpl_main_template']->data['$admin_links']['$edit_page_id'] = null;
-       $GLOBALS['wfpl_main_template']->data['$admin_links']['$edit_page_history_id'] = $id;
+    $cms_page = db_get_assoc('history_cms_pages', 'id,title,keywords,description,layout,content,sidebar_content', 'where history_id=%"', $id);
+    if (!$cms_page) {
+        message("Error 9393 please inform developer");
+        return './admin_pages';
+    }
+    message('You are viewing an archived version of this page. To publish this version (revert the page) click the "Edit this page" link at the top, then the "save" at the bottom of the editor page. Feel free to make changes before saving.');
+    cms_display_content($GLOBALS['wfpl_main_template'], $cms_page);
+    $GLOBALS['wfpl_main_template']->data['$admin_links']['$edit_page_id'] = null;
+    $GLOBALS['wfpl_main_template']->data['$admin_links']['$edit_page_history_id'] = $id;
 }
 
 function admin_pages_main_form($id = false, $history_id = false) {
-       if ($history_id) {
-               message('The fields below have been filled with an archived version of this page. To publish this version (revert the page) click "save" button at the bottom. Feel free to make changes before saving.');
-               $history_data = db_get_assoc('history_cms_pages', 'id,'.ADMIN_PAGES_DB_FIELDS, 'where history_id=%i', $history_id);
-               if (!$history_data) {
-                       message("Error 3938 please inform developer");
-                       return './admin_pages';
-               }
-               $id = $history_data['id'];
-       } elseif ($id) {
-               if (db_count('history_cms_pages', 'where id=%i', $id) > 1) {
-                       tem_set('archived_versions');
-               }
-       }
-       if($id) {
-               tem_set('id', $id);
-       }
-
-       tem_set('$basename', 'admin_pages');
-
-       pulldown('layout', [
-               ['0', "Full (no sidebar)"],
-               ['1', "With Plain Sidebar"],
-               ['2', "With Bordered Sidebar"]
-       ]);
-
-       $navbar_options = array(array('ignored', 'Not at all'), array('0', 'First'));
-       $rows = db_get_rows('cms_pages', 'id,coalesce(nullif(nav_title,\'\'), title) as title,navbar', 'where navbar != 0 order by navbar');
-       if($rows) for($i = 0; $i < count($rows); ++$i) {
-               list($other_id, $other_title, $other_ord) = $rows[$i];
-               if($other_id != $id) { # don't display ourselves
-                       $navbar_options[] = array($i + 1, "After \"$other_title\"");
-               }
-       }
-       pulldown('navbar', $navbar_options, PULLDOWN_2D);
-
-       if(isset($_POST['title'])) {
-               $data = admin_pages_get_fields();
-
-               # We'll save anything (no required fields)
-
-               $data['navbar'] = db_reposition('cms_pages', $id, $data['navbar'], 'navbar', 'page');
-
-               if($data['navbar'] && $data['filename'] == '') {
-                       message('This page was removed from the navigation column because it does not have a filename. (Pages without filenames are visible only to admins.)');
-                       $data['navbar'] = 0;
-               }
-
-               # save
-               if($id) {
-                       db_update_assoc('cms_pages', $data, 'where id=%i', $id);
-                       message('Page updated.');
-               } else {
-                       db_insert_assoc('cms_pages', $data);
-                       $id = db_auto_id();
-                       message('Page saved.');
-               }
-
-               # save to version history
-               $data['id'] = $id;
-               $data['history_when'] = time();
-               $s = session_auth();
-               $data['history_user_id'] = $s['id'];
-               db_insert_assoc('history_cms_pages', $data);
-
-               # redirect
-               if ($data['filename'] === 'index') {
-                       return './';
-               } elseif($data['filename'] !== '') {
-                       return "./{$data['filename']}";
-               } else {
-                       return "./admin_pages?id=$id";
-               }
-       } elseif($id) {
-               # we've recieved an edit id, but no data. So we grab the values to be edited from the database
-               if ($history_id) {
-                       $data = $history_data;
-               } else {
-                       $data = db_get_assoc('cms_pages', ADMIN_PAGES_DB_FIELDS, 'where id=%i', $id);
-               }
-               if($data['navbar']) {
-                       $data['navbar'] = db_count('cms_pages', 'where navbar!=0 && navbar<%i', $data['navbar']);
-               } else {
-                       $data['navbar'] = 'ignored';
-               }
-       } else {
-               # form not submitted, set default values:
-               $data = array('filename' => format_cms_filename($_REQUEST['new_filename']));
-       }
-
-       if (!isset($data['layout']) || $data['layout'] === '' || $data['layout'] === '0') {
-               $data['sidebar_editor_display'] = 'none';
-       } else {
-               $data['sidebar_editor_display'] = 'block';
-       }
-
-       tem_set('wfpl_images_json', json_encode(admin_pages_get_images()));
-       tem_set('wfpl_image_width_full', WFPL_IMAGE_WIDTH_FULL);
-       tem_set('wfpl_image_width_small', WFPL_IMAGE_WIDTH_SMALL);
-       tem_set('wfpl_image_width_thumb', WFPL_IMAGE_WIDTH_THUMB);
-       tem_set('form', $data);
-       tem_set('$head'); # wysiwyg init goes in <head>
+    if ($history_id) {
+        message('The fields below have been filled with an archived version of this page. To publish this version (revert the page) click "save" button at the bottom. Feel free to make changes before saving.');
+        $history_data = db_get_assoc('history_cms_pages', 'id,'.ADMIN_PAGES_DB_FIELDS, 'where history_id=%i', $history_id);
+        if (!$history_data) {
+            message("Error 3938 please inform developer");
+            return './admin_pages';
+        }
+        $id = $history_data['id'];
+    } elseif ($id) {
+        if (db_count('history_cms_pages', 'where id=%i', $id) > 1) {
+            tem_set('archived_versions');
+        }
+    }
+    if($id) {
+        tem_set('id', $id);
+    }
+
+    tem_set('$basename', 'admin_pages');
+
+    pulldown('layout', [
+        ['0', "Full (no sidebar)"],
+        ['1', "With Plain Sidebar"],
+        ['2', "With Bordered Sidebar"]
+    ]);
+
+    $navbar_options = array(array('ignored', 'Not at all'), array('0', 'First'));
+    $rows = db_get_rows('cms_pages', 'id,coalesce(nullif(nav_title,\'\'), title) as title,navbar', 'where navbar != 0 order by navbar');
+    if($rows) for($i = 0; $i < count($rows); ++$i) {
+        list($other_id, $other_title, $other_ord) = $rows[$i];
+        if($other_id != $id) { # don't display ourselves
+            $navbar_options[] = array($i + 1, "After \"$other_title\"");
+        }
+    }
+    pulldown('navbar', $navbar_options, PULLDOWN_2D);
+
+    if(isset($_POST['title'])) {
+        $data = admin_pages_get_fields();
+
+        # We'll save anything (no required fields)
+
+        $data['navbar'] = db_reposition('cms_pages', $id, $data['navbar'], 'navbar', 'page');
+
+        if($data['navbar'] && $data['filename'] == '') {
+            message('This page was removed from the navigation column because it does not have a filename. (Pages without filenames are visible only to admins.)');
+            $data['navbar'] = 0;
+        }
+
+        # save
+        if($id) {
+            db_update_assoc('cms_pages', $data, 'where id=%i', $id);
+            message('Page updated.');
+        } else {
+            db_insert_assoc('cms_pages', $data);
+            $id = db_auto_id();
+            message('Page saved.');
+        }
+
+        # save to version history
+        $data['id'] = $id;
+        $data['history_when'] = time();
+        $s = session_auth();
+        $data['history_user_id'] = $s['id'];
+        db_insert_assoc('history_cms_pages', $data);
+
+        # redirect
+        if ($data['filename'] === 'index') {
+            return './';
+        } elseif($data['filename'] !== '') {
+            return "./{$data['filename']}";
+        } else {
+            return "./admin_pages?id=$id";
+        }
+    } elseif($id) {
+        # we've recieved an edit id, but no data. So we grab the values to be edited from the database
+        if ($history_id) {
+            $data = $history_data;
+        } else {
+            $data = db_get_assoc('cms_pages', ADMIN_PAGES_DB_FIELDS, 'where id=%i', $id);
+        }
+        if($data['navbar']) {
+            $data['navbar'] = db_count('cms_pages', 'where navbar!=0 && navbar<%i', $data['navbar']);
+        } else {
+            $data['navbar'] = 'ignored';
+        }
+    } else {
+        # form not submitted, set default values:
+        $data = array('filename' => format_cms_filename($_REQUEST['new_filename']));
+    }
+
+    if (!isset($data['layout']) || $data['layout'] === '' || $data['layout'] === '0') {
+        $data['sidebar_editor_display'] = 'none';
+    } else {
+        $data['sidebar_editor_display'] = 'block';
+    }
+
+    tem_set('wfpl_images_json', json_encode(admin_pages_get_images()));
+    tem_set('wfpl_image_width_full', WFPL_IMAGE_WIDTH_FULL);
+    tem_set('wfpl_image_width_small', WFPL_IMAGE_WIDTH_SMALL);
+    tem_set('wfpl_image_width_thumb', WFPL_IMAGE_WIDTH_THUMB);
+    tem_set('form', $data);
+    tem_set('$head'); # wysiwyg init goes in <head>
 }