Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $settings = get_current_theme().'-options'; // do not change!
- $defaults = array( // define our defaults
- 'slide_1_title' => '',
- 'slide_1_desc' =>'',
- 'slide_1_link' => '',
- 'slide_2_title' => '',
- 'slide_2_desc' =>'',
- 'slide_2_link' => '',
- 'slide_3_title' => '',
- 'slide_3_desc' =>'',
- 'slide_3_link' => '',
- 'slider_interval' => 6000,
- 'tracking' => '<!--tracking code goes here-->' // <-- no comma after the last option
- );
- // push the defaults to the options database,
- // if options don't yet exist there.
- add_option($settings, $defaults, '', 'yes');
- // this function registers our settings in the db
- add_action('admin_init', 'register_theme_settings');
- function register_theme_settings() {
- global $settings;
- register_setting($settings, $settings, 'validate_options_cb');
- }
- // this function adds the settings page to the menu
- add_action('admin_menu', 'add_theme_options_menu');
- function add_theme_options_menu() {
- add_menu_page("Options", "Options", 'edit_themes', 'custom-option-main-settings', 'theme_settings_admin', get_template_directory_uri().'/favicon.png');
- }
- function theme_settings_admin() { ?>
- <?php theme_options_css_js(); ?>
- <div class="wrap">
- <?php
- // display the proper notification if Saved/Reset
- global $settings, $defaults;
- // display icon next to page title
- screen_icon('options-general');
- ?>
- <h2><?php echo get_current_theme() . ' '; _e('Theme Options'); ?></h2>
- <form method="post" action="options.php">
- <?php settings_fields($settings); // important! ?>
- <!--left column-->
- <div class="metabox-holder mbleft">
- <div class="postbox">
- <h3><?php _e("Homepage Slider", 'custom-option'); ?></h3>
- <div class="inside">
- <p><strong>Slide 1:</strong></p>
- <p>Title:<br />
- <input type="text" name="<?php echo $settings; ?>[slide_1_title]" value="<?php echo custom_option('slide_1_title'); ?>" size="60" /></p>
- <p>description:<br />
- <textarea name="<?php echo $settings; ?>[slide_1_desc]" value="<?php echo custom_option('slide_1_desc'); ?>" cols=60 rows=5></textarea></p>
- <p>link:<br />
- <input type="text" name="<?php echo $settings; ?>[slide_1_link]" value="<?php echo custom_option('slide_1_link'); ?>" size="60" /></p>
- <p><strong>Slide 2:</strong></p>
- <p>Title:<br />
- <input type="text" name="<?php echo $settings; ?>[slide_2_title]" value="<?php echo custom_option('slide_2_title'); ?>" size="60" /></p>
- <p>description:<br />
- <textarea name="<?php echo $settings; ?>[slide_2_desc]" value="<?php echo custom_option('slide_2_desc'); ?>" cols=60 rows=5></textarea></p>
- <p>link:<br />
- <input type="text" name="<?php echo $settings; ?>[slide_2_link]" value="<?php echo custom_option('slide_2_link'); ?>" size="60" /></p>
- <p><strong>Slide 3:</strong></p>
- <p>Title:<br />
- <input type="text" name="<?php echo $settings; ?>[slide_3_title]" value="<?php echo custom_option('slide_3_title'); ?>" size="60" /></p>
- <p>description:<br />
- <textarea name="<?php echo $settings; ?>[slide_3_desc]" value="<?php echo custom_option('slide_3_desc'); ?>" cols=60 rows=5></textarea></p>
- <p>link:<br />
- <input type="text" name="<?php echo $settings; ?>[slide_3_link]" value="<?php echo custom_option('slide_3_link'); ?>" size="60" /></p>
- <p><?php _e("Select the interval for slide transistions (in seconds)", 'custom-option'); ?><br />
- <select name="<?php echo $settings; ?>[slider_interval]">
- <option style="padding-right:10px;" value="1000" <?php selected('1000', custom_option('slider_interval')); ?>><?php _e("1", 'custom-option'); ?></option>
- <option style="padding-right:10px;" value="2000" <?php selected('2000', custom_option('slider_interval')); ?>><?php _e("2", 'custom-option'); ?></option>
- <option style="padding-right:10px;" value="3000" <?php selected('3000', custom_option('slider_interval')); ?>><?php _e("3", 'custom-option'); ?></option>
- <option style="padding-right:10px;" value="4000" <?php selected('4000', custom_option('slider_interval')); ?>><?php _e("4", 'custom-option'); ?></option>
- <option style="padding-right:10px;" value="5000" <?php selected('5000', custom_option('slider_interval')); ?>><?php _e("5", 'custom-option'); ?></option>
- <option style="padding-right:10px;" value="6000" <?php selected('6000', custom_option('slider_interval')); ?>><?php _e("6", 'custom-option'); ?></option>
- <option style="padding-right:10px;" value="7000" <?php selected('7000', custom_option('slider_interval')); ?>><?php _e("7", 'custom-option'); ?></option>
- <option style="padding-right:10px;" value="8000" <?php selected('8000', custom_option('slider_interval')); ?>><?php _e("8", 'custom-option'); ?></option>
- <option style="padding-right:10px;" value="9000" <?php selected('9000', custom_option('slider_interval')); ?>><?php _e("9", 'custom-option'); ?></option>
- <option style="padding-right:10px;" value="10000" <?php selected('10000', custom_option('slider_interval')); ?>><?php _e("10", 'custom-option'); ?></option>
- </select></p>
- </div>
- </div>
- <p class="submit">
- <input type="submit" name="save-settings" class="button-primary" value="<?php _e('Save Settings', 'custom-option') ?>" />
- <!--<input type="submit" class="button-highlighted" name="<?php echo $settings; ?>[reset]" value="<?php _e('Reset Settings', 'custom-option'); ?>" />-->
- </p>
- </div>
- <!--end first column-->
- <!--right column-->
- <div class="metabox-holder mbright">
- <div class="postbox">
- <h3><?php _e("Analytics Code", 'custom-option'); ?></h3>
- <div class="inside">
- <p>If you use a service such as <a href="http://www.google.com/analytics/">Google Analytics</a> to track analytics on your site, paste the code below (it will be inserted into the footer):</p>
- <p>
- <textarea name="<?php echo $settings; ?>[tracking]" cols=30 rows=5><?php echo stripslashes(custom_option('tracking')); ?></textarea>
- </p>
- </div>
- </div>
- <div class="postbox">
- <h3><?php _e("RSS Email Subscription", 'custom-option'); ?></h3>
- <div class="inside">
- <p><?php _e("Enter your FeedBurner ID:", 'custom-option'); ?><br />
- <input type="text" name="<?php echo $settings; ?>[feedburner]" value="<?php echo custom_option('feedburner'); ?>" size="30" /></p>
- </div>
- </div>
- </div>
- <!--end second column-->
- </form>
- </div><!--end .wrap-->
- <?php }
- // Pull theme options from database
- function custom_option($key) {
- global $settings;
- $option = get_option($settings);
- if(isset($option[$key])) return $option[$key];
- else return FALSE;
- }
- // validating the options
- function validate_options_cb($input){
- //do regular validation stuff
- //...
- //...
- //get all options
- $options = get_option(get_current_theme().'-options');
- //update only the neede options
- foreach ($input as $key => $value){
- $options[$key] = $value;
- }
- //return all options
- return $options;
- }
- // add CSS and JS if necessary
- function theme_options_css_js() {
- ?>
- <style type="text/css">
- .metabox-holder {
- float: left;
- margin: 0; padding: 0 10px 0 0;
- }
- .metabox-holder {
- float: left;
- margin: 0; padding: 0 10px 0 0;
- }
- .metabox-holder .postbox .inside {
- padding: 0 10px;
- }
- .mbleft {
- width: 480px;
- }
- .mbright {
- width: 300px;
- }
- .catchecklist,
- .pagechecklist {
- list-style-type: none;
- margin: 0; padding: 0 0 10px 0;
- }
- .catchecklist li,
- .pagechecklist li {
- margin: 0; padding: 0;
- }
- .catchecklist ul {
- margin: 0; padding: 0 0 0 15px;
- }
- select {
- margin-top: 5px;
- }
- input {
- margin-top: 5px;
- }
- input[type="checkbox"], input[type="radio"] {
- margin-top: 1px;
- }
- </style>
- <?php }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement