function ttw_do_admin() { /* theme admin page */ /* This generates the startup script calls, etc, for the admin page */ global $ttw_optionsList, $ttw_myoptionsList, $ttw_options, $ttw_adminOpts, $ttw_adminOptsDefault, $ttw_optionsListDefault; if (!current_user_can('edit_theme_options')) { wp_die("No permission to access that page."); } $ttw_dir = get_template_directory_uri(); /* PROCESS $_POST VALUES FROM FORM SUBMISSION FIRST */ /* First, process any actions from the buttons */ if (ttw_submitted('saveoptions')) { // These options are defined in the Main Options form, and should all set // the default value when no value is set from the form. echo '<div id="message" class="updated fade"><p><strong>' . __("Twenty Ten Weaver main options saved.", TTW_TRANS) . '</strong></p></div>'; foreach ($ttw_options as $value) { /* only reset main options so use $ttw_options */ $id = $value['id']; $type = $value['type']; if ($type == 'ctext') { if (isset($_POST[$id])) { // do the color part $v = ttw_esc_code($_POST[$id]); ttw_setopt($id, $v); } else { ttw_defaultopt($id); } $css_id = $id . '_css'; if (isset($_POST[$css_id])) { // do the CSS part $v = ttw_esc_code($_POST[$css_id]); if (strpos($v, '{') === false && strlen($v) > 0) { ttw_setopt($css_id, '{' . $v . '}'); // tricky - allows them to add multiple rules, or sub-rules } else { ttw_setopt($css_id, $v); } } else { ttw_setopt($css_id, '/* NO OPTION SET*/'); } } else { if (isset($_POST[$id])) { $v = ttw_esc_code($_POST[$id]); ttw_setopt($id, $v); } else { ttw_defaultopt($id); } } } ttw_saveopts(); } if (ttw_submitted('saveadvanced')) { echo '<div id="message" class="updated fade"><p><strong>' . __("Twenty Ten Weaver advanced options saved.", TTW_TRANS) . '</strong></p></div>'; // THEME OPTS - advanced theme opts - unlike the options from the Main Options form, // these options don't have default values, and thus use the ttw_post_xxx functions. ttw_post_opt('ttw_head_opts'); ttw_post_opt('ttw_theme_head_opts'); ttw_post_opt('ttw_footer_opts'); ttw_post_opt('ttw_header_insert'); ttw_post_opt_html('ttw_preheader_insert'); ttw_post_opt_html('ttw_prefooter_insert'); ttw_post_opt_html('ttw_postfooter_insert'); ttw_post_opt_html('ttw_postheader_insert'); ttw_post_opt_html('ttw_presidebar_insert'); ttw_post_opt_html('ttw_custom_header_insert'); ttw_post_opt('ttw_header_frontpage_only'); ttw_post_opt('ttw_hide_front_preheader'); ttw_post_opt('ttw_hide_rest_preheader'); ttw_post_opt('ttw_hide_front_postheader'); ttw_post_opt('ttw_hide_rest_postheader'); ttw_post_opt('ttw_hide_front_prefooter'); ttw_post_opt('ttw_hide_rest_prefooter'); ttw_post_opt('ttw_hide_front_postfooter'); ttw_post_opt('ttw_hide_rest_postfooter'); ttw_post_opt('ttw_hide_front_presidebar'); ttw_post_opt('ttw_hide_rest_presidebar'); ttw_post_opt('ttw_hide_custom_header_template_menus'); ttw_post_opt('ttw_hide_custom_header_template_siteinfo'); ttw_post_opt('ttw_hide_blank_header'); ttw_post_opt('ttw_hide_blank_footer'); // ADMIN OPTS - per site tags - not theme related ttw_post_adminopt('ttw_hide_preview'); ttw_post_adminopt('ttw_hide_theme_thumbs'); ttw_post_adminopt('ttw_hide_auto_css_rules'); ttw_post_adminopt('ttw_hide_metainfo'); ttw_post_adminopt('ttw_metainfo'); ttw_post_adminopt('ttw_end_opts'); ttw_post_adminopt('ttw_copyright'); ttw_post_adminopt('ttw_hide_poweredby'); ttw_post_adminopt('ttw_force_inline_css'); ttw_post_adminopt('ttw_hide_IE_warning_css'); // NOW, save everything ttw_saveopts(); } if (ttw_submitted('setsubtheme') || ttw_submitted('setsubtheme2')) { /* seems like Mozilla doesn't like 2 sets of select inputs on same page, so we make up 2 ids/names to use */ if (isset($_POST['setsubtheme'])) { $pID = 'ttw_subtheme'; } else { $pID = 'ttw_subtheme2'; } $cur_subtheme = ttw_esc_code($_POST[$pID]); /* must have been set to get here */ if ($cur_subtheme == '') { $cur_subtheme = TTW_DEFAULT_THEME; } /* but just in case */ /* now, i set all values for theme */ st_set_subtheme($cur_subtheme); $t = ttw_getopt('ttw_subtheme'); if ($t == '') { $t = TTW_DEFAULT_THEME; } /* did we save a theme? */ echo '<div id="message" class="updated fade"><p><strong>' . __("Twenty Ten Weaver options reset to sub-theme: ", TTW_TRANS) . $t . '.</strong></p></div>'; } if (ttw_submitted('changethemename')) { if (isset($_POST['newthemename'])) { $new_name = sanitize_user($_POST['newthemename']); ttw_setopt('ttw_themename', $new_name); echo '<div id="message" class="updated fade"><p><strong>Theme name changed to ' . $new_name . '</strong></p></div>'; } } if (ttw_submitted('savemytheme')) { ttw_savemytheme(); echo '<div id="message" class="updated fade"><p><strong>' . __('All current main and advanced options saved in <em>My Saved Theme</em>.', TTW_TRANS) . '</strong></p></div>'; } if (ttw_submitted('reset_weaver')) { // delete everything! echo '<div id="message" class="updated fade"><p><strong>All Weaver settings have been reset to the default.</strong></p></div>'; delete_option('ttw_options'); delete_option('ttw_myoptions'); delete_option('ttw_adminoptions'); $ttw_optionsList = $ttw_optionsListDefault; foreach ($ttw_options as $value) { ttw_defaultopt($value['id']); } $ttw_myoptionsList = $ttw_optionsList; $ttw_adminOpts = $ttw_adminOptsDefault; ttw_saveopts(); st_set_subtheme(TTW_START_THEME); } if (ttw_submitted('filesavetheme')) { $base = strtolower(sanitize_file_name($_POST['savethemename'])); $temp_url = ttw_write_current_theme($base); if ($temp_url == '') { echo '<div id="message" class="updated fade"><p><strong>Invalid name supplied to save theme to file.</strong></p></div>'; } else { echo '<div id="message" class="updated fade"><p><strong>' . __("All current main and advanced options saved in {$temp_url}.", TTW_TRANS) . '</strong></p></div>'; } } if (ttw_submitted('uploadtheme') && isset($_POST['uploadit']) && $_POST['uploadit'] == 'yes') { ttw_uploadit(); } if (ttw_submitted('uploadthemeurl')) { // url method $filename = esc_url($_POST['ttw_uploadname']); if (ttw_upload_theme($filename)) { $t = ttw_getopt('ttw_subtheme'); if ($t == '') { $t = TTW_DEFAULT_THEME; } /* did we save a theme? */ echo '<div id="message" class="updated fade"><p><strong>' . __("Twenty Ten Weaver theme options reset to uploaded theme, saved as: ", TTW_TRANS) . $t . '.</strong></p></div>'; } else { echo '<div id="message" class="updated fade"><p><strong><em style="color:red;">' . __('INVALID THEME URL PROVIDED - Try Again', TTW_TRANS) . '</em></strong></p></div>'; } } if (ttw_submitted('restoretheme')) { $wpdir = wp_upload_dir(); $base = $_POST['ttw_restorename']; $valid = validate_file($base); // make sure an ok file name $fn = $wpdir['basedir'] . '/weaver-subthemes/' . $base; if ($valid < 1 && ttw_upload_theme($fn)) { $t = ttw_getopt('ttw_subtheme'); if ($t == '') { $t = TTW_DEFAULT_THEME; } /* did we save a theme? */ echo '<div id="message" class="updated fade"><p><strong>' . __("Twenty Ten Weaver theme restored from file, saved as: ", TTW_TRANS) . $t . '.</strong></p></div>'; } else { echo '<div id="message" class="updated fade"><p><strong><em style="color:red;">' . __('INVALID FILE NAME PROVIDED - Try Again', TTW_TRANS) . '</em></strong></p></div>'; } } if (ttw_submitted('deletetheme')) { $myFile = $_POST['selectName']; $valid = validate_file($myFile); if ($valid < 1 && $myFile != "None") { $wpdir = wp_upload_dir(); unlink($wpdir['basedir'] . '/weaver-subthemes/' . $myFile); echo '<div style="background-color: rgb(255, 251, 204);" id="message" class="updated fade"><p>File: <strong>' . $myFile . '</strong> has been deleted.</p></div>'; } else { echo '<div style="background-color: rgb(255, 251, 204);" id="message" class="updated fade"><p>File: <strong>' . $myFile . '</strong> invalid file name, not deleted.</p></div>'; } } if (ttw_submitted('ttw_save_extension')) { /* for theme extensions */ do_action('ttwx_save_extension'); } ?> <div style="float:left;"><h3><?php echo TTW_THEMEVERSION; ?> Options</h3><a name="top_main" id="top_main"></a></div> <div style="float:right;padding-right:30px;"><small><strong>Like Weaver? Please</strong></small> <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_s-xclick"> <input type="hidden" name="hosted_button_id" value="JUNTAHFM7YGYQ"> <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> </form> </div><div style="clear:both;"> <div id="tabwrap"> <div id="tab-container-1" class='yetii'> <ul id="tab-container-1-nav" class='yetii'> <li><a href="#tab0"><?php echo __('Weaver Themes', TTW_TRANS); ?> </a></li> <li><a href="#tab1"><?php echo __('Main Options', TTW_TRANS); ?> </a></li> <?php if (ttw_allow_multisite()) { ?> <li><a href="#tab2"><?php echo __('Advanced Options', TTW_TRANS); ?> </a></li> <li><a href="#tab3"><?php echo __('Save/Restore Themes', TTW_TRANS); ?> </a></li> <li><a href="#tab4"><?php echo __('Snippets', TTW_TRANS); ?> </a></li> <?php } ?> <li><a href="#tab7"><?php echo __('CSS Help', TTW_TRANS); ?> </a></li> <li><a href="#tab5"><?php echo __('Help', TTW_TRANS); ?> </a></li> <?php do_action('ttwx_add_extended_tab_title', '<li><a href="#tab6">', '</a></li>'); ?> </ul> <div id="tab0" class="tab" > <?php ttw_themes_admin(); ?> </div> <div id="tab1" class="tab" > <?php ttw_options_admin(); ?> </div> <?php if (ttw_allow_multisite()) { ?> <div id="tab2" class="tab"> <?php ttw_advanced_admin(); ?> </div> <div id="tab3" class="tab"> <?php ttw_saverestore_admin(); ?> </div> <div id="tab4" class="tab"> <?php ttw_snippets_admin(); ?> </div> <?php } ?> <div id="tab7" class="tab"> <?php ttw_csshelp_admin(); ?> </div> <div id="tab5" class="tab"> <?php ttw_help_admin(); ?> </div> <?php do_action('ttwx_add_extended_tab', '<div id="tab6" class="tab" >', '</div>'); /* extended option admin tab */ ?> </div> <?php if (!ttw_getadminopt('ttw_hide_preview')) { ?> <h3>Preview of site. Displays current look <em>after</em> you save options or select sub-theme.</h3> <iframe id="preview" name="preview" src="<?php echo get_option('siteurl'); ?> ?temppreview=true" style="width:100%;height:400px;border:1px solid #ccc"></iframe> <?php } else { echo "<h3>Site Preview Disabled</h3>\n"; } ?> </div> <script type="text/javascript"> var tabber1 = new Yetii({ id: 'tab-container-1', persist: true }); </script> <?php }
function ttw_saverestore_admin() { /* admin tab for saving and restoring theme */ $wpdir = wp_upload_dir(); $ttw_theme_dir = $wpdir['baseurl'] . '/weaver-subthemes/'; $upload_link = ttw_write_current_theme('current_ttw_subtheme'); // make a temp copy ?> <h2>Save/Restore Themes</h2> <h4>You can save all the settings from the current theme by:</h4> <ol style="font-size: 85%"> <li>"Save in My Saved Theme" - Saves a copy in server's database. Survives Weaver Theme updates. -or-</li> <li>Download current theme settings to a file on your own computer. -or-</li> <li>Save settings to a file on your Site's file system (in <?php echo $ttw_theme_dir; ?> .</li></ol> <h4>You can restore a saved theme by:</h4> <ol style="font-size: 85%"> <li>Picking "My Saved Theme" from the standard themes list. -or-</li> <li>Restoring a theme that you saved in a file on your site (to "My Saved Theme"). -or-</li> <li>Uploading a theme from a file saved on your own computer (to "My Saved Theme"). -or-</li> <li>Uploading a theme from a web based URL (to "My Saved Theme").</li></ol> <hr /> <h3><span style="color:blue;">Use "My Saved Theme"</span></h3> <?php st_show_subtheme_form(); /* add the picker for subthemes */ ?> <hr /> <h3><span style="color:blue;">Save Current Theme to File or Download to your computer</span></h3> <small><strong>Save</strong> <u>all</u> currently saved options (both Main and Advanced) either by downloading to <strong>your computer</strong> or saving a <strong>file</strong> on your Wordpress Site's <em><?php echo $ttw_theme_dir; ?> </em> directory. You will be able to restore this theme later using the <strong>Restore Theme</strong> button. Please note: be sure to click <em>Save Current Settings</em> first to save any changes you might have made.</small><br /><br /> <strong>Save as file on this website's server</strong> <p>Please provide a name for your file, then click the "Save File" button. <b>Warning:</b> Duplicate names will automatically overwrite existing file without notification.</p> <form enctype="multipart/form-data" name='savetheme' method='post'><table cellspacing='10' cellpadding='5'> <table> <td>Name for saved theme: <input type="text" name="savethemename" size="30" /> <small>(Please use a meaningful name - do not provide file extension. Name might be altered to standard form.)</small></td></tr> <tr> <td><span class='submit'><input name='filesavetheme' type='submit' value='Save File'/></span> <small><strong>Save Theme in File</strong> - Theme will be saved in <em><?php echo $ttw_theme_dir; ?> </em> directory on your site server.</small></td> </tr> </table> <?php ttw_nonce_field('filesavetheme'); ?> </form><br /> <strong>Download to your computer</strong> <p>Please <em>right</em>-click <a href="<?php echo "{$upload_link}"; ?> "><strong>[* here *]</strong></a> to download the saved theme to your computer. </p> <hr /> <h3><span style="color:blue;">Restore Saved Theme from file or URL</span></h3> <small>You can restore a previously saved theme file, directly from your Wordpress Site's <em><?php echo $ttw_theme_dir; ?> </em> directory, from a file saved on your computer, or by providing an "http" URL address of the file (this might be from another site with Weaver themes). Note: after you restore a saved theme, it will be loaded into "My Saved Theme". If you've uploaded the theme from your computer or a URL, you might want to also then save a local copy on your website server.</small><br /><br /> <form enctype="multipart/form-data" name='localrestoretheme' method='post'><table cellspacing='10' cellpadding='5'> <table> <tr><td><strong>Restore from file saved on this website's server</strong></td></tr> <tr> <td>Select theme file name: <?php ttw_subtheme_list('ttw_restorename'); ?> (Restores to "My Saved Theme")</td></tr> <tr> <td><span class='submit'><input name='restoretheme' type='submit' value='Restore Theme'/></span> <small><strong>Restore</strong> a theme you've previously uploaded to your site's <em><?php echo $ttw_theme_dir; ?> </em> directory. Will become current "My Saved Theme".</small></td> </tr> <tr><td> </td></tr> </table> <?php ttw_nonce_field('restoretheme'); ?> </form> <form enctype="multipart/form-data" action="<?php echo $_SERVER["REQUEST_URI"]; ?> " method="POST"> <table> <tr><td><strong>Upload file saved on your computer</strong></td></tr> <tr valign="top"> <td>Select theme file to upload: <input name="uploaded" type="file" /> <input type="hidden" name="uploadit" value="yes" /> (Restores to "My Saved Theme") </td> </tr> <tr><td><span class='submit'><input name="uploadtheme" type="submit" value="Upload theme" /></span> <small><strong>Upload and Restore</strong> a theme from file on your computer. Will become current "My Saved Theme".</small></td></tr> <tr><td> </td></tr> </table> <?php ttw_nonce_field('uploadtheme'); ?> </form> <form enctype="multipart/form-data" name='upload-theme' method='post'><table cellspacing='10' cellpadding='5'> <table> <tr><td><strong>Restore from a URL</strong></td></tr> <tr><td>Enter theme file URL: <input type="text" name="ttw_uploadname" size="60" /> (Restores to "My Saved Theme")</td></tr> <tr><td><span class='submit'><input name='uploadthemeurl' type='submit' value='Upload Theme from URL'/></span></td></tr> <tr><td><small><strong>Upload and Restore</strong> a theme from a web URL address. Will become current "My Saved Theme".</small></td></tr> </table> <?php ttw_nonce_field('uploadthemeurl'); ?> </form> <hr /> <form enctype="multipart/form-data" name='maintaintheme' method='post'> <h3><span style="color:green;">Sub-theme Maintenance</span></h3> <?php ttw_subtheme_list('selectName'); ?> <span class='submit'><input name='deletetheme' type='submit' value='Delete Sub-Theme File'/></span> <strong>Warning!</strong>This action can't be undone, so be sure you mean to delete a file! <?php ttw_nonce_field('deletetheme'); ?> </form> <hr /> <?php }