Advertisement
jegtheme

init-widget.php

Aug 18th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.73 KB | None | 0 0
  1. <?php
  2.  
  3. function jeg_get_all_widget_list_plugin()
  4. {
  5.     $widgetlist = get_option(JEG_WIDGET_NAME) ? get_option(JEG_WIDGET_NAME) : array() ;
  6.     $defaultwidget = array(
  7.         JEG_SIDEBAR_WIDGET,
  8.         JEG_FOOTER_WIDGET_1,
  9.         JEG_FOOTER_WIDGET_2,
  10.         JEG_FOOTER_WIDGET_3
  11.     );
  12.     return array_merge($defaultwidget, $widgetlist);
  13. }
  14.  
  15. /*** Additional Widget **/
  16. function jeg_is_widget_page() {
  17.     return in_array($GLOBALS['pagenow'], array('widgets.php'));
  18. }
  19.  
  20. function jeg_load_widget_script() {
  21.     if(jeg_is_widget_page()) {
  22.         wp_enqueue_script('jquery');
  23.         wp_enqueue_script('jeg-widget-js', get_template_directory_uri() . '/admin/assets/js/widget.js', null, null);
  24.         wp_enqueue_style ('jeg-fontawesome', get_template_directory_uri() . '/css/fontawesome/css/font-awesome.min.css', null, null);
  25.         wp_enqueue_style ('jeg-widget-css', get_template_directory_uri() . '/admin/assets/css/widget.css', null, null);
  26.     }
  27. }
  28.  
  29. function jeg_additional_widget_button() {
  30.     if(jeg_is_widget_page()) {
  31.         echo "<a class='sidebarwidget add-new-h2'>" . 'Add or remove widget area' . "</a><div class='clearfix'></div>";
  32.     }
  33. }
  34.  
  35. function jeg_save_widgetlist() {
  36.     if(jeg_is_widget_page()) {
  37.         if(isset($_POST['modifwidget'])) {
  38.             if(isset($_POST['widgetlist'])) {
  39.                 update_option(JEG_WIDGET_NAME, $_POST['widgetlist'] );
  40.             } else {
  41.                 delete_option(JEG_WIDGET_NAME);
  42.             }
  43.         }
  44.     }
  45. }
  46.  
  47. function jeg_populate_widget () {
  48.     $widgetlist = get_option(JEG_WIDGET_NAME);
  49.     $html = '';
  50.     if( $widgetlist) {
  51.         foreach($widgetlist as $widget) {
  52.             $html .= "<li><span>" . $widget . "</span><input type='hidden' name='widgetlist[]' value='" . $widget . "'><div class='remove fa fa-ban'></div></li>";
  53.         }
  54.         return $html;
  55.     }
  56. }
  57.  
  58. function jeg_widget_admin_page() {
  59.     if(jeg_is_widget_page()) {
  60.         echo
  61.             "<div class='widget-overlay'>
  62.                <form method='POST'>
  63.                    <div class='widget-overlay-wrapper'>
  64.                        <h3>" . 'Edit widget Area'. "</h3>
  65.                    <div class='close fa fa-times'></div>
  66.                    <div class='widget-content-list'>
  67.                        <div class='widget-content-wrapper'>
  68.                            <h4>Widget Area List</h4>
  69.                            <ul> " . jeg_populate_widget() .  "</ul>
  70.                        </div>
  71.                        <div class='widget-confirm'>
  72.                            <input type='button' class='addwidget' value='" .  'Create Widget Area' . "'>
  73.                            <input type='submit' class='savewidget' style='background-color: #5CB85C;' value='" .  'Save Widget'  . "'>
  74.                        </div>
  75.                    </div>
  76.                    <div class='widget-adding-content'>
  77.                        <div class='widget-additional'>
  78.                            <h4>" .  'Create Widget Area' . "</h4>
  79.                            <input type='text' class='textwidgetconfirm' placeholder='" .  'Enter name of widget'  . "'>
  80.                        </div>
  81.                        <div class='widget-confirm'>
  82.                            <input type='button' class='addwidgetconfirm' value='" .  'Add Widget'  . "'>
  83.                        </div>
  84.                    </div>
  85.                </div>
  86.                <input type='hidden' name='modifwidget' value='1'/>
  87.                " . wp_nonce_field( 'edit-widgetlist' ) . "
  88.            </form>
  89.        </div>";
  90.     }
  91. }
  92.  
  93. /** register sidebar **/
  94. if(!function_exists('jeg_theme_register_widget')) {
  95.     function jeg_theme_register_widget($sidebars) {
  96.         if($sidebars) {
  97.             foreach($sidebars as $sidebar) {
  98.                 if ( $sidebar == JEG_FOOTER_WIDGET_1 ||  $sidebar == JEG_FOOTER_WIDGET_2 || $sidebar == JEG_FOOTER_WIDGET_3) {
  99.                     // footer widget
  100.                     register_sidebar(array(
  101.                         'name'          => $sidebar,
  102.                         'id'            => sanitize_title($sidebar),
  103.                         'before_widget' => '<div class="footerwidget %2$s" id="%1$s">',
  104.                         'before_title'  => '<h3 class="footerwidget-title"><span>',
  105.                         'after_title'   => '</span></h3>',
  106.                         'after_widget'  => '</div>',
  107.                     ));
  108.                 } else {
  109.                     // normal blog sidebar
  110.                     register_sidebar(array(
  111.                         'name'          => $sidebar,
  112.                         'id'            => sanitize_title($sidebar),
  113.                         'before_widget' => '<aside class="widget %2$s" id="%1$s">',
  114.                         'before_title'  => '<h3 class="widget-title"><span>',
  115.                         'after_title'   => '</span></h3>',
  116.                         'after_widget'  => '</aside>',
  117.                     ));
  118.                 }
  119.             }
  120.         }
  121.     }
  122. }
  123.  
  124. function jeg_get_all_widget_list()
  125. {
  126.     $widgetlist = get_option(JEG_WIDGET_NAME) ? get_option(JEG_WIDGET_NAME) : array() ;
  127.     $defaultwidget = array(
  128.         JEG_SIDEBAR_WIDGET,
  129.         JEG_FOOTER_WIDGET_1,
  130.         JEG_FOOTER_WIDGET_2,
  131.         JEG_FOOTER_WIDGET_3
  132.     );
  133.     return array_merge($defaultwidget, $widgetlist);
  134. }
  135.  
  136. function jeg_register_widget_list()
  137. {
  138.     $widgetlist = jeg_get_all_widget_list();
  139.     jeg_theme_register_widget($widgetlist);
  140. }
  141.  
  142. add_action('widgets_init', 'jeg_register_widget_list');
  143. add_action('widgets_admin_page', 'jeg_additional_widget_button');
  144. add_action('sidebar_admin_page', 'jeg_widget_admin_page');
  145. add_action('after_setup_theme', 'jeg_save_widgetlist');
  146. add_action('admin_enqueue_scripts', 'jeg_load_widget_script');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement