Advertisement
rcain

wordpress Rbox theme options fix patch file Rbox_functions

Aug 27th, 2012
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.07 KB | None | 0 0
  1. <?php
  2. //mod jrc 270912: this file (/wp-content/themes/Rbox/panel/Rbox_functions.php) heavily modded from original to fix plugin conflicts and security exposures - see my mod marks throughout.
  3.  
  4. //initialize
  5.  
  6. add_action('admin_init', 'Rbox_init');
  7. add_action('admin_menu', 'Rbox_add_admin');
  8. ?>
  9. <?php
  10. //core functions
  11.  
  12. function Rbox_add_admin() {
  13.  
  14.                 //mod jrc 270812 - moved code to function Rbox_admin - where it belongs!!              
  15.                 //orig: global $themename, $shortname, $options;
  16.                 //orig: etc
  17.                 global $themename;
  18.                 //end mod jrc 270812 - moved code to function Rbox_admin - where it belongs!!              
  19.                
  20.                 add_menu_page($themename, $themename, 'administrator', basename(__FILE__), 'Rbox_admin');
  21.  
  22. } //end func
  23.  
  24. function Rbox_init() {
  25.  
  26.                 wp_enqueue_style("tzen", get_template_directory_uri()."/panel/css/admin.css", false, "1.0", "all");
  27.                 wp_enqueue_script("tzen", get_template_directory_uri()."/panel/js/admin.js", false, "1.0");
  28.  
  29. }
  30. function Rbox_admin() {
  31.  
  32. //mod jrc 270812 - check you should even be here!
  33. if (!current_user_can('edit_theme_options')) die;
  34. //end mod jrc 270812 - check you should even be here!
  35.                
  36.                 global $themename, $shortname, $options;
  37.                
  38. //mod jrc 270812 - use nonce key! and check!
  39. $scl_wp_rbox_nonce_key = 'scl_wp_rbox_admin_nonce';
  40. //end mod jrc 270812 - add nonce key! and check!
  41.  
  42.                 //mod jrc 270812: moved from function Rbox_add_admin above - where it did not belong!!
  43.  
  44. //mod jrc 270812 - use nonce key! and check!               
  45. //orig:             if ( isset($_GET['page'])== basename(__FILE__) ) {
  46.                 if ( !empty($_POST[$scl_wp_rbox_nonce_key]) && wp_verify_nonce( $_POST[$scl_wp_rbox_nonce_key], basename(__FILE__) )  && (isset($_GET['page'])== basename(__FILE__)) ) {
  47. //end mod jrc 270812 - use nonce key! and check!                               
  48.  
  49.                                 if ( 'save' == $_REQUEST['action'] ) {
  50.                                                
  51.                                 //mod jrc 270812 - remove redundant loop
  52.                                 /*orig:                 foreach ($options as $value) {
  53.                                                        
  54.                                                                 update_option($value['id'], $_REQUEST[ $value['id'] ] )  ;
  55.                                                        
  56.                                                 }*/
  57.                                 //end mod jrc 270812 - remove redundant loop
  58.                                
  59.                                                 foreach ($options as $value) {
  60.                                                                 //mod jrc 270812: fix bug - woudlnt save 0 - todo: make this smarter/better
  61.                                                                 //orig: if(  $_REQUEST[ $value['id'] ]  ) {
  62.                                                                 if(  !empty($_REQUEST[ $value['id'] ])  ) {
  63.                                                                 //mod jrc 270812: fix bug - woudlnt save 0                                             
  64.                                                                                 update_option( $value['id'], $_REQUEST[ $value['id'] ] ) ;
  65.                                                
  66.                                                                 } else {
  67.                                                                    
  68.                                                                                 delete_option( $value['id'] );
  69.                                                
  70.                                                                 }
  71.                                                 } //end foreach
  72.                                                  
  73.                                                 //mod jrc 270812:
  74.                                                 //orig:                 header("Location: admin.php?page=Rbox_functions.php&saved=true");
  75.                                                 //orig:             die;
  76.                                                 $_REQUEST['saved'] = 'true';
  77.                                                 //end mod jrc 270812:
  78.                                                
  79.                                 } else if( 'reset' == $_REQUEST['action'] ) {
  80.                                
  81.                                                 foreach ($options as $value) {
  82.                                                
  83.                                                                 delete_option( $value['id'] );
  84.                                                    
  85.                                                 }
  86.                                
  87.                                                 //mod jrc 270812:
  88.                                                 //orig:                 header("Location: admin.php?page=Rbox_functions.php&reset=true");
  89.                                                 //orig:             die;
  90.                                                 $_REQUEST['reset'] = 'true';
  91.                                                 //end mod jrc 270812:
  92.                                
  93.                                                                    
  94.                                 } //end if else
  95.                
  96.                 } //end outer if basename
  97. //end mod jrc 270812: moved from function Rbox_add_admin above - where it did not belong!!
  98.                
  99. $i=0;
  100.                  
  101. if ( isset( $_REQUEST['saved'] )) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings saved.</strong></p></div>';
  102. if ( isset($_REQUEST['reset'] )) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings reset.</strong></p></div>';
  103.  
  104. ?>
  105. <!-- mod jrc 270812 - orig: div class="option_wrapper" -->
  106. <div class="option_wrapper">
  107.  
  108. <div class="logo_tz"><a href="http://www.themeszen.com">logo</a></div>
  109. <div id="go_pro"><h2>Thanks for purchasing the Rbox theme.</h2>In case of any problem, post in the <a href="http://www.themeszen.com/forums-support">Forum here</a></div>
  110. <div class="tz_opts">
  111. <form method="post">
  112. <?php /*mod jrc 270812 - add nonce key! and check!*/
  113. wp_nonce_field( basename(__FILE__), $scl_wp_rbox_nonce_key );
  114. /*end mod jrc 270812 - add nonce key! and check!*/
  115. ?>
  116.  
  117. <?php foreach ($options as $value) {
  118.                
  119. switch ( $value['type'] ) {
  120.  
  121. case "open":
  122. ?>
  123.  
  124. <?php break;
  125.  
  126. case "close":
  127. ?>
  128.  
  129. </div>
  130. </div>
  131. <br />
  132.  
  133.  
  134. <?php break;
  135.  
  136. case "title":
  137. ?>
  138. <h2><?php echo $themename; ?> Options Panel</h2>
  139.  
  140.  
  141. <?php break;
  142.  
  143. case 'text':
  144. ?>
  145.  
  146. <div class="tz_base tz_input">
  147.     <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
  148.     <input name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php if ( get_option( $value['id'] ) != "") { echo stripslashes(get_option( $value['id'])  ); } else { echo $value['std']; } ?>" />
  149.  <small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
  150.  
  151.  </div>
  152. <?php
  153. break;
  154.  
  155. case 'savebutton':
  156. ?>
  157.         <div class="tz_base submit">
  158.             <input type="hidden" name="action" value="save" />
  159.             <input name="save<?php echo $i; ?>" type="submit" value="Save changes" />
  160.         </div>
  161.  
  162.  
  163. <?php
  164. break;
  165.  
  166. case 'textarea':
  167. ?>
  168.  
  169. <div class="tz_base tz_input">
  170.     <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
  171.     <textarea name="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" cols="" rows=""><?php if ( get_option( $value['id'] ) != "") { echo stripslashes(get_option( $value['id']) ); } else { echo $value['std']; } ?></textarea>
  172.  <small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
  173.  
  174.  </div>
  175.  
  176. <?php
  177. break;
  178.  
  179. case 'select':
  180. ?>
  181.  
  182. <div class="tz_base tz_select">
  183.     <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
  184.    
  185. <select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
  186. <?php foreach ($value['options'] as $option) { ?>
  187.         <option <?php if (get_option( $value['id'] ) == $option) { echo 'selected="selected"'; } ?>><?php echo $option; ?></option><?php } ?>
  188. </select>
  189.  
  190.     <small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
  191. </div>
  192.  
  193. <?php break;
  194. case "multicheckbox":
  195. ?>
  196.  
  197. <div class="tz_base">
  198.     <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
  199.  
  200.     <div class="box-option">
  201.         <?php foreach ($value['options'] as $keys =>$values) {
  202.         $checked = "";
  203.             if (get_option( $value['id'])) {
  204.                 if (@in_array($keys, get_option($value['id'] ))) $checked = "checked=\"checked\"";
  205.             }
  206.         else {
  207.         }
  208.         ?> 
  209.    
  210.         <label class="button">
  211.         <input type="checkbox" name="<?php echo $value['id']; ?>[]" id="<?php echo $keys; ?>" value="<?php echo $keys; ?>" <?php echo $checked; ?> />
  212.         <?php echo $values; ?>
  213.         </label>
  214.         <?php } ?>     
  215.     </div>
  216.  
  217. <small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
  218.  
  219. </div>
  220.  
  221.  
  222. <?php
  223. break;
  224.  
  225. case "checkbox":
  226. ?>
  227.  
  228. <div class="tz_base tz_checkbox">
  229.     <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
  230.    
  231. <?php if(get_option($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = "";} ?>
  232. <input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />
  233.  
  234.  
  235.     <small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
  236.  </div>
  237.  
  238. <?php break;
  239. case "radio":
  240. ?>
  241.  
  242. <div class="tz_base">
  243.     <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
  244.  
  245.     <div class="box-option">
  246.             <?php
  247.                         foreach ($value['options'] as $key=>$option) {
  248.                             if(get_option($value['id'])){
  249.                                 if ($key == get_option($value['id']) ) {
  250.                                     $checked = " checked=\"checked\"";
  251.                                 } else {
  252.                                     $checked = "";
  253.                                 }
  254.                             } else {
  255.                                 if($key == $value['std']) {
  256.                                     $checked = " checked=\"checked\"";
  257.                                 } else {
  258.                                     $checked = "";
  259.                                 }
  260.                             } ?>
  261.                              
  262.           <label class="button"><input type="radio" name="<?php echo $value['id']; ?>" value="<?php echo $key; ?>"<?php echo $checked; ?> /><?php echo '&nbsp;'.$option; ?></label>
  263.                             <?php } ?>
  264.     </div>
  265.  
  266. <small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
  267.  
  268. </div>
  269.  
  270. <?php break;
  271. case "section":
  272.  
  273. $i++;
  274.  
  275. ?>
  276.  
  277. <div class="tz_section">
  278. <div class="tz_title"><h3><img src="<?php echo get_template_directory_uri(); ?>/panel/images/trans.png" class="inactive" alt="" /><?php echo $value['name']; ?></h3><div class="clearfix"></div></div>
  279. <div class="tz_options">
  280.  
  281.  
  282. <?php break;
  283.  
  284. }
  285. }
  286. ?>
  287. <span class="submit"><input name="save<?php echo $i; ?>" type="submit" value="Save all changes" />
  288. </span>
  289. <input type="hidden" name="action" value="save" />
  290. </form>
  291. <form method="post">
  292. <p class="submit">
  293. <input name="reset" type="submit" value="Reset" />
  294. <input type="hidden" name="action" value="reset" />
  295. </p>
  296. </form>
  297.  </div>
  298.  
  299.  
  300. <?php
  301. }
  302. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement