summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'themes/mantra/admin/admin-functions.php')
-rw-r--r--themes/mantra/admin/admin-functions.php450
1 files changed, 225 insertions, 225 deletions
diff --git a/themes/mantra/admin/admin-functions.php b/themes/mantra/admin/admin-functions.php
index 22e77a6c..a7d8b83e 100644
--- a/themes/mantra/admin/admin-functions.php
+++ b/themes/mantra/admin/admin-functions.php
@@ -1,226 +1,226 @@
-<?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;
-/*date_default_timezone_set('UTC');
-$today = date("YmdGis");
-$name = 'mantra-settings'.$today.'.txt';*/
- $name = 'mantra-settings.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;
-}
-
-// Synchronizing the tinymce width with the content width
-add_filter('tiny_mce_before_init', 'mantra_dynamic_editor_styles', 10);
-function mantra_dynamic_editor_styles($settings){
- $settings['content_css'] .= ",".admin_url('admin-ajax.php') ."/?action=dynamic_styles";
- return $settings;
-}
-
-// add wp_ajax callback
-add_action('wp_ajax_dynamic_styles', 'mantra_dynamic_styles_callback');
-function mantra_dynamic_styles_callback(){
- global $mantra_options;
- echo "html .mceContentBody , .mceContentBody img {max-width:".$mantra_options['mantra_sidewidth']."px;}";
-}
+<?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;
+/*date_default_timezone_set('UTC');
+$today = date("YmdGis");
+$name = 'mantra-settings'.$today.'.txt';*/
+ $name = 'mantra-settings.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;
+}
+
+// Synchronizing the tinymce width with the content width
+add_filter('tiny_mce_before_init', 'mantra_dynamic_editor_styles', 10);
+function mantra_dynamic_editor_styles($settings){
+ $settings['content_css'] .= ",".admin_url('admin-ajax.php') ."/?action=dynamic_styles";
+ return $settings;
+}
+
+// add wp_ajax callback
+add_action('wp_ajax_dynamic_styles', 'mantra_dynamic_styles_callback');
+function mantra_dynamic_styles_callback(){
+ global $mantra_options;
+ echo "html .mceContentBody , .mceContentBody img {max-width:".$mantra_options['mantra_sidewidth']."px;}";
+}
?> \ No newline at end of file