/** * Retrieve the theme's user settings and default settings. Individual files can access * these setting via a global variable call, so database query is only * done once. */ require get_template_directory() . '/admin/options-defaults.php'; $graphene_defaults = apply_filters('graphene_defaults', $graphene_defaults); function graphene_get_settings() { global $graphene_defaults; $graphene_settings = array_merge($graphene_defaults, (array) get_option('graphene_settings', array())); return apply_filters('graphene_settings', $graphene_settings); } global $graphene_settings; $graphene_settings = graphene_get_settings(); /* Get the WPML helper functions */ include get_template_directory() . '/admin/wpml-helper.php'; /** * Includes the files where our theme options are defined */ include GRAPHENE_ROOTDIR . '/admin/options.php'; include GRAPHENE_ROOTDIR . '/admin/faq.php'; /* Include the settings validator */ include GRAPHENE_ROOTDIR . '/admin/options-validator.php'; /* Indlude AJAX handler */ include GRAPHENE_ROOTDIR . '/admin/ajax-handler.php'; /* Include the feature pointer */ /* Disabled for now until a proper API has been implemented in WordPress core */ // include( GRAPHENE_ROOTDIR . '/admin/feature-pointers.php'); /**
/** * This function generates the theme's options page in WordPress administration. * * @package Graphene * @since Graphene 1.0 */ function graphene_options() { global $graphene_settings, $graphene_defaults; /* Checks if the form has just been submitted */ if (!isset($_REQUEST['settings-updated'])) { $_REQUEST['settings-updated'] = false; } /* Apply options preset if submitted */ if (isset($_POST['graphene_preset'])) { include GRAPHENE_ROOTDIR . '/admin/options-presets.php'; } /* Import the graphene theme options */ if (isset($_POST['graphene_import'])) { graphene_import_form(); return; } /* Import/export the colour presets */ if (isset($_GET['colour_preset'])) { if ($_GET['colour_preset'] == 'import') { graphene_import_colour_presets(); } if ($_GET['colour_preset'] == 'export') { graphene_export_colour_presets(); } return; } if (isset($_POST['graphene_import_confirmed'])) { graphene_import_file(); return; } /* Uninstall the theme if confirmed */ if (isset($_POST['graphene_uninstall_confirmed'])) { include GRAPHENE_ROOTDIR . '/admin/uninstall.php'; } /* Display a confirmation page to uninstall the theme */ if (isset($_POST['graphene_uninstall'])) { ?> <div class="wrap"> <div class="icon32" id="icon-themes"><br /></div> <h2><?php _e('Uninstall Graphene', 'graphene'); ?> </h2> <p><?php _e("Please confirm that you would like to uninstall the Graphene theme. All of the theme's options in the database will be deleted.", 'graphene'); ?> </p> <p><?php _e('This action is not reversible.', 'graphene'); ?> </p> <form action="" method="post"> <?php wp_nonce_field('graphene-uninstall', 'graphene-uninstall'); ?> <input type="hidden" name="graphene_uninstall_confirmed" value="true" /> <input type="submit" class="button graphene_uninstall" value="<?php _e('Uninstall Theme', 'graphene'); ?> " /> </form> </div> <?php return; } /* Get the updated settings before outputting the options page */ $graphene_settings = graphene_get_settings(); /* This where we start outputting the options page */ ?> <div class="wrap meta-box-sortables"> <div class="icon32" id="icon-themes"><br /></div> <h2><?php _e('Graphene Theme Options', 'graphene'); ?> </h2> <p><?php _e('These are the global settings for the theme. You may override some of the settings in individual posts and pages.', 'graphene'); ?> </p> <?php settings_errors('graphene_options'); ?> <?php /* Print the options tabs */ ?> <?php if ($_GET['page'] == 'graphene_options') { $tabs = array('general' => __('General', 'graphene'), 'display' => __('Display', 'graphene'), 'colours' => __('Colours', 'graphene'), 'advanced' => __('Advanced', 'graphene')); $current_tab = isset($_GET['tab']) ? $_GET['tab'] : 'general'; graphene_options_tabs($current_tab, $tabs); } ?> <div class="left-wrap"> <?php /* Begin the main form */ ?> <form method="post" action="options.php" class="mainform clearfix" id="graphene-options-form"> <?php /* Output wordpress hidden form fields, e.g. nonce etc. */ ?> <?php settings_fields('graphene_options'); ?> <?php /* Display the current tab */ ?> <?php graphene_options_tabs_content($current_tab); ?> <?php /* The form submit button */ ?> <p class="submit"><input type="submit" class="button-primary" id="graphene-save-options" value="<?php _e('Save Options', 'graphene'); ?> " /></p> <?php /* Close the main form */ ?> </form> <div class="graphene-ajax-response"></div> </div><!-- #left-wrap --> <div class="side-wrap"> <?php /* Help notice */ ?> <div class="postbox no-toggle"> <div> <h3 class="hndle"><?php _e('Need help?', 'graphene'); ?> </h3> </div> <div class="panel-wrap inside"> <ul> <li><a href="http://docs.graphene-theme.com/"><?php _e('Documentation Wiki', 'graphene'); ?> </a></li> <li><a href="http://www.graphene-theme.com/graphene-theme/help-and-support/"><?php _e('Support Forum', 'graphene'); ?> </a></li> </ul> <p><?php printf(__('Also, find out how you can %s.', 'graphene'), '<a href="http://docs.graphene-theme.com/Ways_to_contribute">' . __('support the Graphene theme', 'graphene') . '</a>'); ?> </p> </div> </div> <?php /* PayPal's donation button */ ?> <div class="postbox no-toggle"> <div> <h3 class="hndle"><?php _e('Support the developer', 'graphene'); ?> </h3> </div> <div class="panel-wrap inside"> <p><?php _e('Developing this awesome theme took a lot of effort and time, months and months of continuous voluntary unpaid work. If you like this theme or if you are using it for commercial websites, please consider a donation to the developer to help support future updates and development.', 'graphene'); ?> </p> <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top" style="text-align:center;"> <input type="hidden" name="cmd" value="_s-xclick"> <input type="hidden" name="hosted_button_id" value="CBWQL2T6B797J"> <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"> </form> </div> </div> <?php /* Graphene theme news RSS feed */ ?> <div class="postbox graphene-news no-toggle"> <div> <h3 class="hndle"><?php _e('Graphene Theme news', 'graphene'); ?> </h3> </div> <div class="panel-wrap inside"> <?php $graphene_news = fetch_feed(array('http://www.graphene-theme.com/feed/rss2/')); if (!is_wp_error($graphene_news)) { $maxitems = $graphene_news->get_item_quantity(3); $news_items = $graphene_news->get_items(0, $maxitems); } ?> <ol class="graphene-news-list"> <?php if ($maxitems == 0) { echo '<li>' . __('No news items.', 'graphene') . '</li>'; } else { foreach ($news_items as $news_item) { ?> <li> <a href='<?php echo esc_url($news_item->get_permalink()); ?> '><?php echo esc_html($news_item->get_title()); ?> </a><br /> <?php echo esc_html(graphene_truncate_words(strip_tags($news_item->get_description()), 20, ' [...]')); ?> <br /> <span class="news-item-date"><?php echo 'Posted on ' . $news_item->get_date('j F Y, g:i a'); ?> </span> </li> <?php } } ?> </ol> </div> </div> <?php /* Natively supported plugins */ ?> <div class="postbox no-toggle"> <div> <h3 class="hndle"><?php _e('Add-ons and plugins', 'graphene'); ?> </h3> </div> <div class="panel-wrap inside"> <h4><?php _e('Add-ons', 'graphene'); ?> </h4> <p><?php _e('Add-ons are not shipped with the theme, but can be installed separately to extend the theme\'s capability.', 'graphene'); ?> </p> <ul class="add-ons"> <li> <span class="title"><a href="http://www.graphene-theme.com/graphene-mobile-neo/features-and-functionalities/" target="_blank">Graphene Mobile Neo</a>: </span> <?php if (function_exists('gmneo_setup')) { ?> <span class="activated"><?php _e('Installed', 'graphene'); ?> </span> <?php } else { ?> <span class="not-active"><?php _e('Not installed', 'graphene'); ?> .</span><?php } ?> <br /> <span class="description"><?php _e('The new premium mobile theme that fuses elegant design with premium features. It\'s a match of pixel-perfection and code-devilry.', 'graphene'); ?> </span> </li> <li> <span class="title"><a href="http://www.graphene-theme.com/graphene-mobile/features-and-functionalities/" target="_blank">Graphene Mobile</a>: </span> <?php if (function_exists('mgraphene_options_init')) { ?> <span class="activated"><?php _e('Installed', 'graphene'); ?> </span> <?php } else { ?> <span class="not-active"><?php _e('Not installed', 'graphene'); ?> . <a href="http://www.graphene-theme.com/graphene-mobile/features-and-functionalities/"><?php _e('Learn more', 'graphene'); ?> »</a></span><?php } ?> <br /> <span class="description"><?php _e('Mobile extension developed specifically for optimised display of your site on mobile devices, such as iPhone and Android devices.', 'graphene'); ?> </span> </li> </ul> <h4><?php _e('Plugins', 'graphene'); ?> </h4> <p><?php _e('The plugins listed here are natively supported by the theme. All you need to do is install the plugins and activate them.', 'graphene'); ?> </p> <ul class="add-ons native-plugins"> <?php $plugins = array(array('name' => 'Ultimate TinyMCE', 'function' => '', 'class' => 'jwl_metabox_admin', 'url' => 'http://wordpress.org/plugins/ultimate-tinymce/'), array('name' => 'WP-PageNavi', 'function' => 'wp_pagenavi', 'class' => '', 'url' => 'http://wordpress.org/plugins/wp-pagenavi/'), array('name' => 'WP-CommentNavi', 'function' => 'wp_commentnavi', 'class' => '', 'url' => 'http://wordpress.org/plugins/wp-commentnavi/'), array('name' => 'WP-Email', 'function' => 'wp_email', 'class' => '', 'url' => 'http://wordpress.org/plugins/wp-email/'), array('name' => 'Breadcrumb NavXT', 'function' => 'bcn_display', 'class' => '', 'url' => 'http://wordpress.org/plugins/breadcrumb-navxt/')); foreach ($plugins as $plugin) { ?> <li> <span class="title"><a href="<?php echo $plugin['url']; ?> " target="_blank"><?php echo $plugin['name']; ?> </a>: </span> <?php if (function_exists($plugin['function']) || class_exists($plugin['class'])) { ?> <span class="activated"><?php _e('Activated', 'graphene'); ?> </span> <?php } else { ?> <span class="not-active"><?php _e('Not installed', 'graphene'); ?> </span><?php } ?> </li> <?php } ?> </ul> </div> </div> <?php /* Options Presets. This uses separate form than the main form */ ?> <div class="postbox preset non-essential-option"> <div class="head-wrap"> <div title="Click to toggle" class="handlediv"><br /></div> <h3 class="hndle"><?php _e('Reset settings', 'graphene'); ?> </h3> </div> <div class="panel-wrap inside"> <p><?php _e('Reset all of the theme\'s settings to their default values. Only settings accessible via Graphene Theme Options are affected, including any custom colour presets you might have. Custom Header, Custom Menus, and other WordPress settings won\'t be affected.', 'graphene'); ?> </p> <p><?php _e('<strong>WARNING:</strong> This action is not reversible.', 'graphene'); ?> </p> <form action="" method="post"> <?php wp_nonce_field('graphene-preset', 'graphene-preset'); ?> <input type="hidden" name="graphene_options_preset" value="reset" id="graphene_options_preset-reset" /> <input type="hidden" name="graphene_preset" value="true" /> <input type="submit" class="button-primary graphene_preset" value="<?php _e('Reset settings', 'graphene'); ?> " /> </form> </div> </div> <?php /* Theme import/export */ ?> <div class="postbox non-essential-option"> <div class="head-wrap"> <div title="Click to toggle" class="handlediv"><br /></div> <h3 class="hndle"><?php _e('Import/export theme options', 'graphene'); ?> </h3> </div> <div class="panel-wrap inside"> <p><strong><?php _e('Import', 'graphene'); ?> </strong></p> <form action="" method="post"> <input type="hidden" name="graphene_import" value="true" /> <input type="submit" class="button" value="<?php _e('Import Theme options', 'graphene'); ?> " /> </form> <br /> <p><strong><?php _e('Export', 'graphene'); ?> </strong></p> <form action="" method="post"> <?php wp_nonce_field('graphene-export', 'graphene-export'); ?> <input type="hidden" name="graphene_export" value="true" /> <input type="submit" class="button" value="<?php _e('Export Theme options', 'graphene'); ?> " /> </form> </div> </div> <?php /* Theme's uninstall */ ?> <div class="postbox non-essential-option"> <div class="head-wrap"> <div title="Click to toggle" class="handlediv"><br /></div> <h3 class="hndle"><?php _e('Uninstall theme', 'graphene'); ?> </h3> </div> <div class="panel-wrap inside"> <p><?php _e("<strong>Be careful!</strong> Uninstalling the theme will remove all of the theme's options from the database. Do this only if you decide not to use the theme anymore.", 'graphene'); ?> </p> <p><?php _e('If you just want to try another theme, there is no need to uninstall this theme. Simply activate the other theme in the Appearance > Themes admin page.', 'graphene'); ?> </p> <p><?php _e("Note that uninstalling this theme <strong>does not remove</strong> the theme's files. To delete the files after you have uninstalled this theme, go to Appearance > Themes and delete the theme from there.", 'graphene'); ?> </p> <form action="" method="post"> <?php wp_nonce_field('graphene-options', 'graphene-options'); ?> <input type="hidden" name="graphene_uninstall" value="true" /> <input type="submit" class="button-primary graphene_uninstall" value="<?php _e('Uninstall Theme', 'graphene'); ?> " /> </form> </div> </div> </div><!-- #side-wrap --> </div><!-- #wrap --> <?php }