Advertisement
Guest User

Kathy

a guest
Jun 23rd, 2010
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.27 KB | None | 0 0
  1. add_action('admin_menu', 'test_add_theme_page');
  2.  
  3. function test_add_theme_page() {
  4.     if ( isset( $_GET['page'] ) && $_GET['page'] == basename(__FILE__) ) {
  5.  
  6.         add_action('admin_head', 'test_theme_page_head');
  7.     }
  8.     add_theme_page(__('Test Admin'), __('Test Admin'), 'edit_themes', basename(__FILE__), 'test_theme_page');
  9. }
  10.  
  11.  
  12. function test_theme_page_head() {
  13. ?>
  14.  
  15.     <script type="text/javascript">
  16.     jQuery(document).ready(function($) {
  17.  
  18.       jQuery('form#test_form').submit(function() {
  19.           var data = jQuery(this).serialize();
  20.           jQuery.post(ajaxurl, data, function(response) {
  21.           //alert for debugging
  22.           alert(data);
  23.               if(response == 1) {
  24.                   show_message(1);
  25.                   t = setTimeout('fade_message()', 2000);
  26.               } else {
  27.                   show_message(2);
  28.                   t = setTimeout('fade_message()', 2000);
  29.               }
  30.           });
  31.           return false;
  32.       });
  33.  
  34.     });
  35.  
  36.     function show_message(n) {
  37.         if(n == 1) {
  38.             jQuery('#saved').html('<div id="message" class="updated fade"><p><strong><?php _e('Options saved.'); ?></strong></p></div>').show();
  39.         } else {
  40.             jQuery('#saved').html('<div id="message" class="error fade"><p><strong><?php _e('Options could not be saved.'); ?></strong></p></div>').show();
  41.         }
  42.     }
  43.  
  44.     function fade_message() {
  45.         jQuery('#saved').fadeOut(1000);
  46.         clearTimeout(t);
  47.     }
  48.     </script>
  49.  
  50. <?php
  51. }
  52.  
  53. function test_theme_page() {
  54. ?>
  55.  
  56. <div class="wrap">
  57.     <h2><?php _e('Test Admin'); ?></h2>
  58.  
  59.     <div id="saved"></div>
  60.  
  61.     <form action="/" name="test_form" id="test_form">
  62.         <input type="text" name="test_text" /><br />
  63.         <input type="checkbox" name="test_check" /><br />
  64.         <input type="hidden" name="action" value="test_theme_data_save" />
  65.         <input type="hidden" name="security" value="<?php echo wp_create_nonce('test-theme-data'); ?>" />
  66.         <input type="submit" value="Submit" />
  67.     </form>
  68.  
  69. </div>
  70.  
  71. <?php
  72. }
  73.  
  74. add_action('wp_ajax_test_theme_data_save', 'test_theme_save_ajax');
  75.  
  76. function test_theme_save_ajax() {
  77.  
  78.     check_ajax_referer('test-theme-data', 'security');
  79.  
  80.     $data = $_POST;
  81.     unset($data['security'], $data['action']);
  82.  
  83.     $diff = array_diff(get_option('test_theme'), $data);
  84.  
  85.     if(!empty($diff)) {
  86.         if(update_option('test_theme', $data)) {
  87.             die('1');
  88.         } else {
  89.             die('0');
  90.         }
  91.     } else {
  92.         die('1');
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement