diff options
Diffstat (limited to 'themes/mantra/admin/admin-functions.php')
-rw-r--r-- | themes/mantra/admin/admin-functions.php | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/themes/mantra/admin/admin-functions.php b/themes/mantra/admin/admin-functions.php deleted file mode 100644 index cf55c809..00000000 --- a/themes/mantra/admin/admin-functions.php +++ /dev/null @@ -1,210 +0,0 @@ -<?php - -function mantra_theme_settings_placeholder() { - if (function_exists('mantra_theme_settings_restore') ): - mantra_theme_settings_restore(); - else: -?> - <div id="mantra-settings-placeholder"> - <h3>Where are the theme settings?</h3> - <p>Following the <a href="https://make.wordpress.org/themes/2015/04/21/this-weeks-meeting-important-information-regarding-theme-options/" target="_blank">Wordpress Theme Review Guidelines</a>, starting with Mantra v2.5 we had to remove the settings page from the theme and transfer all the settings to the <a href="http://codex.wordpress.org/Appearance_Customize_Screen" target="_blank">Customizer</a> interface.</p> - <p>However, we feel that the Customizer interface does not provide the right medium (in space of terms and usability) for our existing theme options. We've created our settings with a certain layout that is not yet compatible with the Customizer interface.</p> - <p>As an alternative solution that allows us to keep updating and improving our theme we have moved the settings functionality to the separate <a href="https://wordpress.org/plugins/cryout-theme-settings/" target="_blank">Cryout Serious Theme Settings</a> plugin. To restore the theme settings page to previous functionality, all you need to do is install this free plugin with a couple of clicks.</p> - <h3>How do I restore the settings?</h3> - <p><strong>Navigate <a href="themes.php?page=mantra-extra-plugins">to this page</a> to install and activate the Cryout Serious Theme Settings plugin, then return here to find the settings page in all its past glory.</strong></p> - <p>The plugin is compatible with all our themes that are affected by this change and only needs to be installed once.</p> - <p>If you already have the plugin installed make sure you have it updated to the latest available version.</p> - </div> -<?php - endif; -} // mantra_theme_settings_placeholder() - -/** - * Export Mantra settings to file - */ - -function mantra_export_options(){ - - if (ob_get_contents()) ob_clean(); - - /* Check authorisation */ - $authorised = true; - // Check nonce - if ( ! wp_verify_nonce( $_POST['mantra-export'], 'mantra-export' ) ) { - $authorised = false; - } - // Check permissions - if ( ! current_user_can( 'edit_theme_options' ) ){ - $authorised = false; - } - - if ( $authorised) { - global $mantra_options; - $name = 'mantrasettings-'.preg_replace("/[^a-z0-9-_]/i",'',str_replace("http://","",get_option('siteurl'))).'-'.date('Ymd-His').'.txt'; - $data = $mantra_options; - $data = json_encode( $data ); - $size = strlen( $data ); - - header( 'Content-Type: text/plain' ); - header( 'Content-Disposition: attachment; filename="'.$name.'"' ); - header( "Content-Transfer-Encoding: binary" ); - header( 'Accept-Ranges: bytes' ); - - /* The three lines below basically make the download non-cacheable */ - header( "Cache-control: private" ); - header( 'Pragma: private' ); - header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); - - header( "Content-Length: " . $size); - print( $data ); -} -die(); -} - -if ( isset( $_POST['mantra_export'] ) ){ - add_action( 'init', 'mantra_export_options' ); -} - -/** - * This file manages the theme settings uploading and import operations. - * Uses the theme page to create a new form for uplaoding the settings - * Uses WP_Filesystem -*/ -function mantra_import_form(){ - - $bytes = apply_filters( 'import_upload_size_limit', wp_max_upload_size() ); - $size = size_format( $bytes ); - $upload_dir = wp_upload_dir(); - if ( ! empty( $upload_dir['error'] ) ) : - ?><div class="error"><p><?php _e('Before you can upload your import file, you will need to fix the following error:', 'mantra'); ?></p> - <p><strong><?php echo $upload_dir['error']; ?></strong></p></div><?php - else : - ?> - - <div class="wrap"> - <div style="width:400px;display:block;margin-left:30px;"> - <div id="icon-tools" class="icon32"><br></div> - <h2><?php echo __( 'Import Mantra Theme Options', 'mantra' );?></h2> - <form enctype="multipart/form-data" id="import-upload-form" method="post" action=""> - <p><?php _e('Hi! This is where you import the Mantra settings.<i> Please remember that this is still an experimental feature.</i>', 'mantra'); ?></p> - <p> - <label for="upload"><strong><?php _e('Just choose a file from your computer:', 'mantra'); ?> </strong><i>(mantra-settings.txt)</i></label> - <input type="file" id="upload" name="import" size="25" /> - <span style="font-size:10px;">(<?php printf( __( 'Maximum size: %s', 'mantra' ), $size ); ?> )</span> - <input type="hidden" name="action" value="save" /> - <input type="hidden" name="max_file_size" value="<?php echo $bytes; ?>" /> - <?php wp_nonce_field('mantra-import', 'mantra-import'); ?> - <input type="hidden" name="mantra_import_confirmed" value="true" /> - </p> - <input type="submit" class="button" value="<?php _e('And import!', 'mantra'); ?>" /> - </form> - </div> - </div> <!-- end wrap --> - <?php - endif; -} // Closes the mantra_import_form() function definition - - -/** - * This actual import of the options from the file to the settings array. -*/ -function mantra_import_file() { - global $mantra_options; - - /* Check authorisation */ - $authorised = true; - // Check nonce - if (!wp_verify_nonce($_POST['mantra-import'], 'mantra-import')) {$authorised = false;} - // Check permissions - if (!current_user_can('edit_theme_options')){ $authorised = false; } - - // If the user is authorised, import the theme's options to the database - if ($authorised) {?> - <?php - // make sure there is an import file uploaded - if ( (isset($_FILES["import"]["size"]) && ($_FILES["import"]["size"] > 0) ) ) { - - $form_fields = array('import'); - $method = ''; - - $url = wp_nonce_url('themes.php?page=mantra-page', 'mantra-import'); - - // Get file writing credentials - if (false === ($creds = request_filesystem_credentials($url, $method, false, false, $form_fields) ) ) { - return true; - } - - if ( ! WP_Filesystem($creds) ) { - // our credentials were no good, ask the user for them again - request_filesystem_credentials($url, $method, true, false, $form_fields); - return true; - } - - // Write the file if credentials are good - $upload_dir = wp_upload_dir(); - $filename = trailingslashit($upload_dir['path']).'mantra_options.txt'; - - // by this point, the $wp_filesystem global should be working, so let's use it to create a file - global $wp_filesystem; - if ( ! $wp_filesystem->move($_FILES['import']['tmp_name'], $filename, true) ) { - echo 'Error saving file!'; - return; - } - - $file = $_FILES['import']; - - if ($file['type'] == 'text/plain') { - $data = $wp_filesystem->get_contents($filename); - // try to read the file - if ($data !== FALSE){ - $settings = json_decode($data, true); - // try to read the settings array - if (isset($settings['mantra_db'])){ ?> - <div class="wrap"> - <div id="icon-tools" class="icon32"><br></div> - <h2><?php echo __( 'Import Mantra Theme Options ', 'mantra' );?></h2> <?php - $settings = array_merge($mantra_options, $settings); - update_option('ma_options', $settings); - echo '<div class="updated fade"><p>'. __('Great! The options have been imported!', 'mantra').'<br />'; - echo '<a href="themes.php?page=mantra-page">'.__('Go back to the Mantra options page and check them out!', 'mantra').'<a></p></div>'; - } - else { // else: try to read the settings array - echo '<div class="error"><p><strong>'.__('Oops, there\'s a small problem.', 'mantra').'</strong><br />'; - echo __('The uploaded file does not contain valid Mantra options. Make sure the file is exported from the Mantra Options page.', 'mantra').'</p></div>'; - mantra_import_form(); - } - } - else { // else: try to read the file - echo '<div class="error"><p><strong>'.__('Oops, there\'s a small problem.', 'mantra').'</strong><br />'; - echo __('The uploaded file could not be read.', 'mantra').'</p></div>'; - mantra_import_form(); - } - } - else { // else: make sure the file uploaded was a plain text file - echo '<div class="error"><p><strong>'.__('Oops, there\'s a small problem.', 'mantra').'</strong><br />'; - echo __('The uploaded file is not supported. Make sure the file was exported from the Mantra page and that it is a text file.', 'mantra').'</p></div>'; - mantra_import_form(); - } - - // Delete the file after we're done - $wp_filesystem->delete($filename); - - } - else { // else: make sure there is an import file uploaded - echo '<div class="error"><p>'.__( 'Oops! The file is empty or there was no file. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.', 'mantra' ).'</p></div>'; - mantra_import_form(); - } - echo '</div> <!-- end wrap -->'; - } - else { - wp_die(__('ERROR: You are not authorised to perform that operation', 'mantra')); - } -} // Closes the mantra_import_file() function definition - -// Truncate function for use in the Admin RSS feed -function mantra_truncate_words($string,$words=20, $ellipsis=' ...') { - $new = preg_replace('/((\w+\W+\'*){'.($words-1).'}(\w+))(.*)/', '${1}', $string); - return $new.$ellipsis; -} - -// FIN
\ No newline at end of file |