true)); return; } # make sure there's something clickable foreach($rows as &$row) { if($row['filename'] == '') { $row['filename'] = '-- offline --'; } if($row['title'] == '') { $row['title'] = '-- untitled --'; } } tem_set('listings', array( 'populated_listing' => true, 'rows' => $rows)); return true; } function admin_pages_main() { if(!logged_in_as_admin()) { $_REQUEST['url'] = this_url(); return 'admin_login'; } tem_set('this_host', this_host()); if(isset($_REQUEST['admin_pages_id'])) { return admin_pages_display_main(); } else { return admin_pages_edit_main(); } } # admin-only access to view pages with no filename function admin_pages_display_main() { $id = format_int($_REQUEST['admin_pages_id']); unset($_REQUEST['admin_pages_id']); if(!$id) { message('Error: Broken link'); return './admin_pages'; } cms_display_content($GLOBALS['wfpl_main_template'], 'where id=%i', $id); } function admin_pages_edit_main() { $edit_id = format_int($_REQUEST['admin_pages_edit_id']); unset($_REQUEST['admin_pages_edit_id']); if($edit_id) { # add hidden field for database id of row we're editing tem_set('admin_pages_edit_id', $edit_id); tem_set('editing', 'show'); tem_set('edit_msg', 'show'); } $delete_id = format_int($_REQUEST['admin_pages_delete_id']); unset($_REQUEST['admin_pages_delete_id']); if($delete_id) { db_delete('cms_pages', 'where id=%i', $delete_id); message('Page deleted.'); return './admin_pages'; } if(!$edit_id) { if(!isset($_REQUEST['admin_pages_new']) && !isset($_REQUEST['title'])) { admin_pages_display_listing(); return; } tem_set('new_msg', 'show'); } $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 != $edit_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', $edit_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; } if($edit_id) { db_update_assoc('cms_pages', $data, 'where id=%i', $edit_id); $id = $edit_id; message('Page updated.'); } else { db_insert_assoc('cms_pages', $data); $id = db_auto_id(); message('Page saved.'); } if($data['filename']) { return "./$data[filename]"; } else { return "./admin_pages?admin_pages_id=$id"; } } elseif($edit_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_pages', ADMIN_PAGES_DB_FIELDS, 'where id=%i', $edit_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, you can set default values like so: #$data = array('title' => 'Yes'); $data = array('filename' => format_cms_filename($_REQUEST['new_filename'])); } tem_set('form', $data); tem_set('extra_headers', 'show'); }