Advertisement
Guest User

generate box

a guest
Jan 14th, 2015
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.59 KB | None | 0 0
  1. <?php
  2. /*
  3. plugin functions
  4. */
  5.  
  6. /** Add Generate Box after header **/
  7. add_action( 'genesis_after_header', 'display_generate_box', 15 );
  8.  
  9. function display_generate_box() {
  10.  
  11. // set blobals
  12. global $generatebox_plugin_url;
  13.  
  14. // form starts here
  15. $generate_box = '<div id="generate_box"><div class="wrap">';
  16. $generate_box .= '<div class="widget widget_text">';
  17.  
  18. // display box title
  19. if ( genesis_get_option( 'generatebox_title', generatebox_SETTINGS_FIELD ) ) {
  20. $generate_box .= '<h4>'.genesis_get_option( 'generatebox_title', generatebox_SETTINGS_FIELD ).'</h4>';
  21. }
  22.  
  23. // display box text
  24. if ( genesis_get_option( 'generatebox_text', generatebox_SETTINGS_FIELD ) ) {
  25. $generate_box .= '<p>'.genesis_get_option( 'generatebox_text', generatebox_SETTINGS_FIELD ).'</p>';
  26. }
  27.  
  28. // display box image
  29. if ( genesis_get_option( 'generatebox_img', generatebox_SETTINGS_FIELD ) ) {
  30. $generate_box .= '<p><img src="'.esc_attr(genesis_get_option( 'generatebox_img', generatebox_SETTINGS_FIELD )).'"
  31. alt="" class="alignright" /></p>';
  32. }
  33.  
  34. // echo our form
  35. if ( genesis_get_option( 'generatebox_form', generatebox_SETTINGS_FIELD ) ) {
  36. $generate_box .= genesis_get_option( 'generatebox_form', generatebox_SETTINGS_FIELD );
  37. }
  38.  
  39. $generate_box .= '</div>';
  40. $generate_box .= '</div><!-- end .wrap --></div><!-- end #generate-box -->';
  41.  
  42. // form ends here
  43.  
  44.  
  45. /* display
  46. * the form
  47. **********/
  48.  
  49. // check if enabled everywhere
  50. if ( genesis_get_option( 'generatebox_everywhere_enable', generatebox_SETTINGS_FIELD ) ) {
  51. echo $generate_box;
  52. }
  53. else
  54. { // if not then, check other display options
  55.  
  56. // check if enabled on front page
  57. if ( genesis_get_option( 'generatebox_front_enable', generatebox_SETTINGS_FIELD ) && is_front_page() ) {
  58. echo $generate_box;
  59. }
  60.  
  61. // check if enabled on front page
  62. if ( genesis_get_option( 'generatebox_home_enable', generatebox_SETTINGS_FIELD ) && is_home() ) {
  63. echo $generate_box;
  64. }
  65.  
  66. // check if enabled on single posts
  67. if ( genesis_get_option( 'generatebox_single_enable', generatebox_SETTINGS_FIELD ) && is_single() ) {
  68. echo $generate_box;
  69. }
  70. }
  71.  
  72. }
  73.  
  74. ?>
  75.  
  76.  
  77.  
  78.  
  79.  
  80. <?php
  81.  
  82. /**
  83.  
  84. * CT Settings Theme Settings
  85.  
  86. *
  87.  
  88. * @package CT Settings
  89.  
  90. * @author Thomas Griffin <http://thomasgriffinmedia.com/>
  91.  
  92. * @copyright Copyright (c) 2011, Thomas Griffin
  93.  
  94. * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
  95.  
  96. *
  97.  
  98. */
  99.  
  100.  
  101. /* Define our constants
  102. ------------------------------------------------------------ */
  103. define( 'generatebox_SETTINGS_FIELD', 'ct-settings' );
  104.  
  105.  
  106. /* Setup default options
  107. ------------------------------------------------------------ */
  108.  
  109.  
  110. function generatebox_default_theme_options() {
  111.  
  112. $options = array(
  113. 'generatebox_color_scheme' => 'blue',
  114. 'generatebox_title' => '',
  115. 'generatebox_img' => '',
  116. 'generatebox_text' => '',
  117.  
  118. 'generatebox_form' => '',
  119.  
  120. 'generatebox_front_enable' => 0,
  121. 'generatebox_home_enable' => 0,
  122. 'generatebox_single_enable' => 0,
  123. 'generatebox_everywhere_enable' => 0
  124. );
  125.  
  126. return apply_filters( 'generatebox_default_theme_options', $options );
  127. }
  128.  
  129.  
  130. /* Sanitize any inputs
  131. ------------------------------------------------------------ */
  132. add_action( 'genesis_settings_sanitizer_init', 'generatebox_sanitize_inputs' );
  133.  
  134.  
  135. function generatebox_sanitize_inputs() {
  136.  
  137. genesis_add_option_filter( 'one_zero', generatebox_SETTINGS_FIELD, array(
  138.  
  139. 'generatebox_front_enable',
  140. 'generatebox_home_enable',
  141. 'generatebox_single_enable',
  142. 'generatebox_everywhere_enable'
  143.  
  144. ) );
  145.  
  146. genesis_add_option_filter( 'no_html', GENESIS_SEO_SETTINGS_FIELD,
  147.  
  148. array(
  149.  
  150. 'generatebox_color_scheme',
  151. 'generatebox_title',
  152. 'generatebox_img',
  153. 'generatebox_text',
  154.  
  155. ) );
  156. }
  157.  
  158.  
  159. /* Register our settings and add the options to the database
  160. ------------------------------------------------------------ */
  161.  
  162.  
  163. add_action( 'admin_init', 'generatebox_register_settings' );
  164.  
  165. function generatebox_register_settings() {
  166.  
  167. register_setting( generatebox_SETTINGS_FIELD, generatebox_SETTINGS_FIELD );
  168.  
  169. add_option( generatebox_SETTINGS_FIELD, generatebox_default_theme_options() );
  170.  
  171.  
  172.  
  173. if ( genesis_get_option( 'reset', generatebox_SETTINGS_FIELD ) ) {
  174.  
  175. update_option( generatebox_SETTINGS_FIELD, generatebox_default_theme_options() );
  176.  
  177. genesis_admin_redirect( generatebox_SETTINGS_FIELD, array( 'reset' => 'true' ) );
  178.  
  179. exit;
  180.  
  181. }
  182.  
  183. }
  184.  
  185.  
  186. /* Admin notices for when options are saved/reset
  187. ------------------------------------------------------------ */
  188.  
  189.  
  190. add_action( 'admin_notices', 'generatebox_theme_settings_notice' );
  191.  
  192.  
  193. function generatebox_theme_settings_notice() {
  194.  
  195. if ( ! isset( $_REQUEST['page'] ) || $_REQUEST['page'] != generatebox_SETTINGS_FIELD )
  196.  
  197. return;
  198.  
  199.  
  200.  
  201. if ( isset( $_REQUEST['reset'] ) && 'true' == $_REQUEST['reset'] )
  202.  
  203. echo '<div id="message" class="updated"><p><strong>' . __( 'Settings reset.', 'genesis' ) . '</strong></p></div>';
  204.  
  205. elseif ( isset( $_REQUEST['settings-updated'] ) && 'true' == $_REQUEST['settings-updated'] )
  206.  
  207. echo '<div id="message" class="updated"><p><strong>' . __( 'Settings saved.', 'genesis' ) . '</strong></p></div>';
  208.  
  209. }
  210.  
  211.  
  212.  
  213. /* Register our theme options page
  214. ------------------------------------------------------------ */
  215.  
  216. add_action( 'admin_menu', 'generatebox_theme_options' );
  217.  
  218.  
  219. function generatebox_theme_options() {
  220.  
  221. global $_generatebox_settings_pagehook;
  222.  
  223. $_generatebox_settings_pagehook = add_submenu_page( 'genesis', 'Generate Box Settings', 'Generate Box', 'edit_theme_options', generatebox_SETTINGS_FIELD, 'generatebox_theme_options_page' );
  224.  
  225. add_action( 'load-'.$_generatebox_settings_pagehook, 'generatebox_settings_scripts' );
  226. add_action( 'load-'.$_generatebox_settings_pagehook, 'generatebox_settings_boxes' );
  227. }
  228.  
  229.  
  230. /* Setup our scripts
  231. ------------------------------------------------------------ */
  232.  
  233.  
  234. function generatebox_settings_scripts() {
  235.  
  236. global $_generatebox_settings_pagehook;
  237.  
  238. wp_enqueue_script( 'common' );
  239.  
  240. wp_enqueue_script( 'wp-lists' );
  241.  
  242. wp_enqueue_script( 'postbox' );
  243.  
  244. }
  245.  
  246.  
  247. /* Setup our metaboxes
  248. ------------------------------------------------------------ */
  249.  
  250.  
  251. function generatebox_settings_boxes() {
  252.  
  253. global $_generatebox_settings_pagehook;
  254.  
  255. add_meta_box( 'generatebox-general-box', __( 'Generate Box Settings', 'genesis' ), 'generatebox_metabox', $_generatebox_settings_pagehook, 'main' );
  256.  
  257. add_meta_box( 'generatebox-email-box', __( 'Email Service Settings', 'genesis' ), 'generatebox_email_metabox', $_generatebox_settings_pagehook, 'main' );
  258.  
  259. add_meta_box( 'generatebox-display-box', __( 'Display Settings', 'genesis' ), 'generatebox_display_metabox', $_generatebox_settings_pagehook, 'main' );
  260. }
  261.  
  262.  
  263. /* Add our custom post metabox for social sharing
  264. ------------------------------------------------------------ */
  265.  
  266. /** generatebox_metabox general options function
  267. *****************************/
  268. function generatebox_metabox() { ?>
  269.  
  270. <p>
  271.  
  272. Select Color Scheme:
  273.  
  274. <select name="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_color_scheme]" id="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_color_scheme]">
  275.  
  276. <option value="red" <?php selected('red', esc_attr( genesis_get_option( 'generatebox_color_scheme', generatebox_SETTINGS_FIELD ))); ?>><?php _e("Red", 'genesis'); ?></option>
  277.  
  278. <option value="blue" <?php selected('blue', esc_attr( genesis_get_option( 'generatebox_color_scheme', generatebox_SETTINGS_FIELD ))); ?>><?php _e("Blue", 'genesis'); ?></option>
  279.  
  280. <option value="green" <?php selected('green', esc_attr( genesis_get_option( 'generatebox_color_scheme', generatebox_SETTINGS_FIELD ))); ?>><?php _e("Green", 'genesis'); ?></option>
  281.  
  282. <option value="orange" <?php selected('orange', esc_attr( genesis_get_option( 'generatebox_color_scheme', generatebox_SETTINGS_FIELD ))); ?>><?php _e("Orange", 'genesis'); ?></option>
  283.  
  284.  
  285.  
  286. </select>
  287.  
  288.  
  289. <?php echo 'You are using the <b>' . esc_attr( genesis_get_option( 'generatebox_color_scheme', generatebox_SETTINGS_FIELD ) ) . '</b> sceheme'; ?>
  290.  
  291. </p>
  292.  
  293. <p>Title:<br />
  294.  
  295. <input type="text" name="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_title]"
  296.  
  297. value="<?php echo esc_attr( genesis_get_option( 'generatebox_title', generatebox_SETTINGS_FIELD ) ); ?>" size="50" />
  298.  
  299. </p>
  300.  
  301. <p>Badge image URL:<br />
  302.  
  303. <input type="text" name="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_img]"
  304.  
  305. value="<?php echo esc_attr( genesis_get_option( 'generatebox_img', generatebox_SETTINGS_FIELD ) ); ?>" size="50" />
  306.  
  307. </p>
  308.  
  309. <p>Text:<br />
  310.  
  311. <textarea
  312.  
  313. rows="4"
  314.  
  315. cols="60"
  316.  
  317. name="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_text]"
  318.  
  319. ><?php echo esc_attr( genesis_get_option( 'generatebox_text', generatebox_SETTINGS_FIELD ) ); ?></textarea>
  320.  
  321. </p>
  322.  
  323. <?php }
  324.  
  325.  
  326.  
  327. /* email services settings
  328. ******************************/
  329. function generatebox_email_metabox() { ?>
  330.  
  331. <p>Form HTML code:<br />
  332.  
  333. <textarea
  334.  
  335. rows="4"
  336.  
  337. cols="60"
  338.  
  339. name="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_form]"
  340.  
  341. ><?php echo genesis_get_option( 'generatebox_form', generatebox_SETTINGS_FIELD ); ?></textarea>
  342.  
  343. </p>
  344.  
  345. <?php
  346. }
  347.  
  348.  
  349. /* display settings
  350. ******************************/
  351. function generatebox_display_metabox() { ?>
  352.  
  353. <p><?php _e( 'Enable and display Generate Box.', 'genesis' ); ?></p>
  354.  
  355. <p>
  356.  
  357. <input type="checkbox" name="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_front_enable]" id="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_front_enable]" value="1" <?php checked( 1, genesis_get_option( 'generatebox_front_enable', generatebox_SETTINGS_FIELD ) ); ?> /> <label for="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_front_enable]"><?php _e( 'Enable Generate Box on front page?', 'genesis' ); ?></label>
  358.  
  359. </p>
  360.  
  361. <p>
  362.  
  363. <input type="checkbox" name="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_home_enable]" id="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_home_enable]" value="1" <?php checked( 1, genesis_get_option( 'generatebox_home_enable', generatebox_SETTINGS_FIELD ) ); ?> /> <label for="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_home_enable]"><?php _e( 'Enable Generate Box on home page?', 'genesis' ); ?></label>
  364.  
  365. </p>
  366.  
  367. <p>
  368.  
  369. <input type="checkbox" name="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_single_enable]" id="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_single_enable]" value="1" <?php checked( 1, genesis_get_option( 'generatebox_single_enable', generatebox_SETTINGS_FIELD ) ); ?> /> <label for="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_single_enable]"><?php _e( 'Enable Generate Box on signle pages?', 'genesis' ); ?></label>
  370.  
  371. </p>
  372.  
  373. <p>
  374.  
  375. <input type="checkbox" name="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_everywhere_enable]" id="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_everywhere_enable]" value="1" <?php checked( 1, genesis_get_option( 'generatebox_everywhere_enable', generatebox_SETTINGS_FIELD ) ); ?> /> <label for="<?php echo generatebox_SETTINGS_FIELD; ?>[generatebox_everywhere_enable]"><?php _e( 'Enable Generate Box everywhere?', 'genesis' ); ?></label>
  376.  
  377. </p>
  378.  
  379. <?php
  380. }
  381.  
  382.  
  383. /* Set the screen layout to one column
  384. ------------------------------------------------------------ */
  385.  
  386. add_filter( 'screen_layout_columns', 'generatebox_settings_layout_columns', 10, 2 );
  387.  
  388.  
  389. function generatebox_settings_layout_columns( $columns, $screen ) {
  390.  
  391. global $_generatebox_settings_pagehook;
  392.  
  393. if ( $screen == $_generatebox_settings_pagehook ) {
  394.  
  395. $columns[$_generatebox_settings_pagehook] = 1;
  396.  
  397. }
  398.  
  399. return $columns;
  400.  
  401. }
  402.  
  403.  
  404. /* Build our theme options page
  405. ------------------------------------------------------------ */
  406.  
  407. function generatebox_theme_options_page() {
  408.  
  409. global $_generatebox_settings_pagehook, $screen_layout_columns;
  410.  
  411. $width = "width: 99%;";
  412.  
  413. $hide2 = $hide3 = " display: none;";
  414.  
  415. ?>
  416.  
  417.  
  418.  
  419. <div id="generatebox" class="wrap genesis-metaboxes">
  420.  
  421. <form method="post" action="options.php">
  422.  
  423.  
  424.  
  425. <?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
  426.  
  427. <?php wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?>
  428.  
  429. <?php settings_fields( generatebox_SETTINGS_FIELD ); ?>
  430.  
  431.  
  432.  
  433. <?php screen_icon( 'options-general' ); ?>
  434.  
  435.  
  436.  
  437. <h2><?php _e( 'Generate Box Settings', 'genesis' ); ?></h2>
  438.  
  439. <p class="top-buttons"><input type="submit" class="button button-primary" value="<?php _e( 'Save Settings', 'genesis' ) ?>" /></p>
  440.  
  441. <div class="metabox-holder">
  442.  
  443. <div class="postbox-container" style="<?php echo $width; ?>">
  444.  
  445. <?php do_meta_boxes( $_generatebox_settings_pagehook, 'main', null ); ?>
  446.  
  447. </div>
  448.  
  449. </div>
  450.  
  451.  
  452. </form>
  453.  
  454. </div>
  455.  
  456. <script type="text/javascript">
  457.  
  458. //<![CDATA[
  459.  
  460. jQuery(document).ready( function($) {
  461.  
  462. // close postboxes that should be closed
  463.  
  464. $('.if-js-closed').removeClass('if-js-closed').addClass('closed');
  465.  
  466. // postboxes setup
  467.  
  468. postboxes.add_postbox_toggles('<?php echo $_generatebox_settings_pagehook; ?>');
  469.  
  470. });
  471.  
  472. //]]>
  473.  
  474. </script>
  475.  
  476.  
  477.  
  478. <?php }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement