Advertisement
alchymyth

quote source qs-admin.php

Jan 28th, 2020
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.11 KB | None | 0 0
  1. <?php
  2. add_action('admin_menu', 'qs_config_page');
  3.  
  4. function qs_admin_init() {
  5.     global $wp_version;
  6.     if ( !function_exists('is_multisite') && version_compare( $wp_version, '3.0', '<' ) ) {
  7.         function qs_version_warning() {
  8.             echo "
  9.            <div id='qs-warning' class='updated fade'><p><strong>".sprintf(__('Quote Source %s requires WordPress 3.0 or higher.'), QUOTE_SOURCE_VERSION) ."</strong> ".sprintf(__('Please <a href="%s">upgrade WordPress</a> to a current version.'), 'http://codex.wordpress.org/Upgrading_WordPress'). "</p></div>
  10.            ";
  11.         }
  12.         add_action('admin_notices', 'qs_version_warning');
  13.         return;
  14.     }
  15. }
  16. add_action('admin_init', 'qs_admin_init');
  17.  
  18. function qs_config_page() {
  19.     if (function_exists('add_submenu_page')) {
  20.         add_submenu_page('plugins.php', __('Quote Source'), __('Quote Source'), 'manage_options', 'qs-config', 'qs_config');
  21.     }
  22. }
  23.  
  24. function qs_handle_bool($val, $default='true') {
  25.     if($val == null || $val == '') {
  26.         return '';
  27.     }
  28.     if(is_bool($val)) {
  29.         return (string)$val;
  30.     }
  31.     switch (strtolower($val)) {
  32.         case '1':
  33.         case 'on':
  34.         case 'true':
  35.             return 'true';
  36.             break;
  37.         case '0':
  38.         case 'off':
  39.         case 'false':
  40.             return 'false';
  41.             break;
  42.         default:
  43.             return $default;
  44.     }
  45. }
  46.  
  47. function qs_config() {
  48.         $options = array();
  49.         if(!get_option('qs_number_quotes')) {
  50.             add_option('qs_number_quotes', '3');
  51.             $options['qs_number_quotes'] = '3';
  52.         }
  53.  
  54.         if(!get_option('qs_mode_single_post')) {
  55.             add_option('qs_mode_single_post', 'true');
  56.             $options['qs_mode_single_post'] = 'true';
  57.         }
  58.        
  59.         if(!get_option('qs_mode_category')) {
  60.             add_option('qs_mode_category', 'false');
  61.             $options['qs_mode_category'] = 'false';
  62.         }
  63.        
  64.         if(!get_option('qs_mode_page')) {
  65.             add_option('qs_mode_page', 'false');
  66.             $options['qs_mode_page'] = 'false';
  67.         }
  68.        
  69.         if(!get_option('qs_mode_summary')) {
  70.             add_option('qs_mode_summary', 'false');
  71.             $options['qs_mode_summary'] = 'false';
  72.         }
  73.        
  74.         if(!get_option('qs_text_color')) {
  75.             add_option('qs_text_color', '000000');
  76.             $options['qs_text_color'] = '000000';
  77.         }
  78.        
  79.         if(!get_option('qs_layout')) {
  80.             add_option('qs_layout', '1');
  81.             $options['qs_layout'] = '1';
  82.         }
  83.  
  84.     if(isset($_POST['submit'])) {
  85.         if(function_exists('current_user_can') && !current_user_can('manage_options')) {
  86.             die('You have no rights to access');
  87.         }
  88.         // =========================================
  89.         $hex_color = $_POST['txt_text_color'];
  90.         if(preg_match('/^[a-f0-9]{6}$/i', $hex_color)) {
  91.             update_option('qs_text_color', $hex_color);
  92.         } else {
  93.             update_option('qs_text_color', 'FFFFFF');
  94.         }
  95.         // =========================================
  96.         $qs_layout = (int)$_POST['radio_layout'];
  97.         if($qs_layout <= 0 || $qs_layout > 3) {
  98.             $qs_layout = 1;
  99.         }
  100.         update_option('qs_layout', $qs_layout);
  101.         // =========================================
  102.         // =========================================
  103.         $qs_number_quotes = (int)$_POST['number_quotes'];
  104.         if($qs_number_quotes <= 0 || $qs_number_quotes > 20) {
  105.             $qs_number_quotes = 3;
  106.         }
  107.         update_option('qs_number_quotes', $qs_number_quotes);
  108.         // =========================================
  109.        
  110.         if( isset( $_POST['qs_mode_single_post'] ) ) $qs_mode_single_post = $_POST['qs_mode_single_post'];
  111.         if( isset( $_POST['qs_mode_category'] ) ) $qs_mode_category = $_POST['qs_mode_category'];      
  112.         if( isset( $_POST['qs_mode_page'] ) ) $qs_mode_page = $_POST['qs_mode_page'];
  113.         if( isset( $_POST['qs_mode_summary'] ) ) $qs_mode_summary = $_POST['qs_mode_summary'];
  114.        
  115.         update_option('qs_mode_single_post' , isset( $_POST['qs_mode_single_post'] )$_POST['qs_mode_single_post'] : 'false');
  116.         update_option('qs_mode_category'    , isset( $_POST['qs_mode_category'] ) ? $_POST['qs_mode_category'] : 'false');
  117.         update_option('qs_mode_page'        , isset( $_POST['qs_mode_page'] ) ? $_POST['qs_mode_page'] : 'false');
  118.         update_option('qs_mode_summary'     , isset( $_POST['qs_mode_summary'] )$_POST['qs_mode_summary'] : 'false');
  119.        
  120.         echo '<h3>Update Successful</h3>';
  121.         echo '<p>Settings are saved and applied.</p>';
  122.         echo '<p><a href="plugins.php?page=qs-config">Back to Config page</a></p>';
  123.     } else {
  124.         // option page -- START
  125.         // setup default options
  126.         if(!get_option('qs_mode_single_post')) {
  127.             add_option('qs_mode_single_post', 'true');
  128.             $options['qs_mode_single_post'] = 'true';
  129.         } else {
  130.             $options['qs_mode_single_post'] = qs_handle_bool(get_option('qs_mode_single_post'));
  131.         }
  132.        
  133.         if(!get_option('qs_mode_category')) {
  134.             add_option('qs_mode_category', 'false');
  135.             $options['qs_mode_category'] = 'false';
  136.         } else {
  137.             $options['qs_mode_category'] = qs_handle_bool(get_option('qs_mode_category'));
  138.         }
  139.        
  140.         if(!get_option('qs_mode_page')) {
  141.             add_option('qs_mode_page', 'false');
  142.             $options['qs_mode_page'] = 'false';
  143.         } else {
  144.             $options['qs_mode_page'] = qs_handle_bool(get_option('qs_mode_page'));
  145.         }
  146.        
  147.         if(!get_option('qs_mode_summary')) {
  148.             add_option('qs_mode_summary', 'false');
  149.             $options['qs_mode_summary'] = 'false';
  150.         } else {
  151.             $options['qs_mode_summary'] = qs_handle_bool(get_option('qs_mode_summary'));
  152.         }
  153.        
  154.         if(!get_option('qs_text_color')) {
  155.             add_option('qs_text_color', '000000');
  156.             $options['qs_text_color'] = '000000';
  157.         } else {
  158.             $options['qs_text_color'] = get_option('qs_text_color');
  159.         }
  160.        
  161.         if(!get_option('qs_layout')) {
  162.             add_option('qs_layout', '1');
  163.             $options['qs_layout'] = '1';
  164.         } else {
  165.             $options['qs_layout'] = get_option('qs_layout');
  166.         }
  167.        
  168.         if(!get_option('qs_number_quotes')) {
  169.             add_option('qs_number_quotes', '3');
  170.             $options['qs_number_quotes'] = '3';
  171.         } else {
  172.             $options['qs_number_quotes'] = get_option('qs_number_quotes');
  173.         }
  174.         /*
  175.         Option List
  176.         ===================================================
  177.         qs_mode_single_post : toggle display in single post (default: true)
  178.         qs_mode_category    : toggle display in categories  (default: false)
  179.         qs_mode_page        : toggle display in page        (default: false)
  180.         qs_mode_summary     : toggle display in summary     (default: false)
  181.         qs_text_color       : select text color             (default: 000000)
  182.         qs_layout           : select layout                 (default: 1)
  183.         qs_number_quotes    : select number of quotes       (default: 3)
  184.         */
  185. ?>
  186. <form action="" method="POST" id="qs-config">
  187.     <h2><?php _e('Quote Source Configuration'); ?></h2>
  188.     <table width="650" border="0" cellpadding="3" cellspacing="0">
  189.         <tr>
  190.             <td valign="top">Max number of quotes </br>(limit 20)</td>
  191.             <td><input type="number" min="1" max="20" name="number_quotes" maxlength="2" value="<?php echo $options['qs_number_quotes'] ?>" /><br />&nbsp;</td>
  192.         </tr>
  193.         <tr>
  194.             <td valign="top">Show quoted sources on:</td>
  195.             <td>
  196.                 <table width="100%" border="0" cellpadding="5" cellspacing="0">
  197.                     <tr>
  198.                         <td valign="top"><input name="qs_mode_single_post" type="checkbox" value="true" <?php if($options['qs_mode_single_post'] == 'true') { echo 'checked="checked"'; } ?> /></td>
  199.                         <td>Single Post<br /><span class="quote_source_desc">the page after user clicks the title of your post</span></td>
  200.                     </tr>
  201.                     <tr>
  202.                         <td valign="top"><input name="qs_mode_category" type="checkbox" value="true" <?php if($options['qs_mode_category'] == 'true') { echo 'checked="checked"'; } ?> /></td>
  203.                         <td>Categories<br /><span class="quote_source_desc">the page after user clicks on one of your categories</span></td>
  204.                     </tr>
  205.                     <tr>
  206.                         <td valign="top"><input name="qs_mode_page" type="checkbox" value="true" <?php if($options['qs_mode_page'] == 'true') { echo 'checked="checked"'; } ?> /></td>
  207.                         <td>Pages<br /><span class="quote_source_desc">the page after user clicks your page</span></td>
  208.                     </tr>
  209.                     <tr>
  210.                         <td valign="top"><input name="qs_mode_summary" type="checkbox" value="true" <?php if($options['qs_mode_summary'] == 'true') { echo 'checked="checked"'; } ?> /></td>
  211.                         <td>Summary, Front Page and Older Posts<br /><span class="quote_source_desc">the page which lists out the posts</span></td>
  212.                     </tr>
  213.                 </table>
  214.             </td>
  215.         </tr>
  216.         <tr>
  217.             <td colspan="2" style="border-bottom: 1px solid #999; margin-bottom: 15px"><b>Look &amp; Feel</b></td>
  218.         </tr>
  219.         <tr>
  220.             <td valign="top">Text Color</td>
  221.             <td>#<input type="text" name="txt_text_color" maxlength="6" value="<?php echo $options['qs_text_color'] ?>" /><br />&nbsp;</td>
  222.         </tr>
  223.         <tr>
  224.             <?php
  225.             $site1_url = 'http://raptor.hk';
  226.             $site1_title = 'Raptor Talks';
  227.             $site2_url = 'http://raptor.hk/plugin-quote-source/';
  228.             $site2_title = 'Quote Source Plugin in Raptor Talks';
  229.             ?>
  230.             <td valign="top">Layout</td>
  231.             <td>
  232.                 <table width="100%" border="0" cellpadding="5" cellspacing="0">
  233.                     <tr>
  234.                         <td width="30"><input type="radio" name="radio_layout" value="1" <?php if($options['qs_layout'] == '1') { echo 'checked="checked"'; } ?> /></td>
  235.                         <td>
  236.                             <fieldset style="border: 1px solid #999; padding: 10px;">
  237.                                 <legend>Type A&nbsp;</legend>
  238.                                     <a href="<?php echo $site1_url; ?>" target="_blank" title="<?php echo $site1_title; ?>"><?php echo $site1_title; ?></a></br>
  239.                                     <a href="<?php echo $site2_url; ?>" target="_blank" title="<?php echo $site2_title; ?>"><?php echo $site2_title; ?></a></br>
  240.                                 </br>
  241.                             </fieldset>
  242.                         </td>
  243.                     </tr>
  244.                     <tr>
  245.                         <td><input type="radio" name="radio_layout" value="2" <?php if($options['qs_layout'] == '2') { echo 'checked="checked"'; } ?> /></td>
  246.                         <td>
  247.                             <fieldset style="border: 1px solid #999; padding: 10px;">
  248.                                 <legend>Type B</legend>
  249.                                 <?php echo $site1_title; ?>: <a href="<?php echo $site1_url; ?>" target="_blank" title="<?php echo $site1_title; ?>"><?php echo $site1_url; ?></a><br />
  250.                                 <?php echo $site2_title; ?>: <a href="<?php echo $site2_url; ?>" target="_blank" title="<?php echo $site2_title; ?>"><?php echo $site2_url; ?></a><br />
  251.                             </fieldset>
  252.                         </td>
  253.                     </tr>
  254.                     <tr>
  255.                         <td><input type="radio" name="radio_layout" value="3" <?php if($options['qs_layout'] == '3') { echo 'checked="checked"'; } ?> /></td>
  256.                         <td>
  257.                                
  258.                             <fieldset style="border: 1px solid #999; padding: 10px;">
  259.                                 <legend>Type C</legend>
  260.                                 <ul style="list-style-type: square; list-style-position: inside;">
  261.                                     <li style="padding-left: 5px"><a href="<?php echo $site1_url; ?>" target="_blank" title="<?php echo $site1_title; ?>"><?php echo $site1_title; ?></a></li>
  262.                                     <li style="padding-left: 5px"><a href="<?php echo $site2_url; ?>" target="_blank" title="<?php echo $site2_title; ?>"><?php echo $site2_title; ?></a></li>
  263.                                 </ul>
  264.                             </fieldset>
  265.                         </td>
  266.                     </tr>
  267.                 </table>
  268.             </td>
  269.         </tr>
  270.         <tr>
  271.             <td>&nbsp;</td>
  272.             <td>&nbsp;<br /><input type="submit" name="submit" value="Apply Changes" /><br />&nbsp;</td>
  273.         </tr>
  274.         <tr>
  275.             <td colspan="2"><hr />If you like Quote Source, please consider <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=K4M78TFRBFZUC">donate US$5</a> to us. Report bugs <a href="mailto:findme@raptor.hk?subject=Quote%20Source%20Report%20Bug">here</a>.</td>
  276.         </tr>
  277.     </table>
  278. </form>
  279.  
  280. <?php
  281.         // option page -- END
  282.     }
  283. }
  284. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement