/** * Display messages on the widgets page. * * @since 1.1.0 */ public static function widgets_page_messages() { $sidebars = simple_page_sidebars_get_names(); // Display an error message if a default sidebar hasn't been selected on the Reading settings screen. if (!get_option('simple_page_sidebars_default_sidebar') && !empty($sidebars)) { echo '<div class="error"><p>' . self::get_empty_default_sidebar_error() . '</p></div>'; } // Display any custom update messages. if (isset($_REQUEST['simple-page-sidebars-message']) && !empty($_REQUEST['simple-page-sidebars-message'])) { ?> <div id="message" class="updated"> <p> <?php $messages = array(1 => __('The sidebar you were editing is no longer assigned to any pages and has been removed. Any widgets it contained should be in an "Inactive Widgets" area below.', 'simple-page-sidebars')); $message_id = $_REQUEST['simple-page-sidebars-message']; if (isset($messages[$message_id])) { echo $messages[$message_id]; } ?> </p> </div> <?php } }
/** * Add custom widget areas and automatically register page sidebars. * * @todo Try to insert a link into the description of custom sidebars so * they can be edited. It'd be useful for when the Sidebar column is * disabled, since there isn't any other way to access the Edit * Sidebar screen. * * @since 0.2.0 */ public static function register_sidebars() { $widget_areas = array(); // Add widget areas using this filter. $widget_areas = apply_filters('simple_page_sidebars_widget_areas', $widget_areas); // Verify id's exist, otherwise create them. // Help ensure widgets don't get mixed up if widget areas are added or removed. if (!empty($widget_areas) && is_array($widget_areas)) { foreach ($widget_areas as $key => $area) { if (is_numeric($key)) { $widget_areas['widget-area-' . sanitize_key($area['name'])] = $area; unset($widget_areas[$key]); } } } // Override the default widget properties. $widget_area_defaults = array('before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h4 class="title">', 'after_title' => '</h4>'); $widget_area_defaults = apply_filters('simple_page_sidebars_widget_defaults', $widget_area_defaults); // If any custom sidebars have been assigned to pages, merge them with already defined widget areas. $sidebars = simple_page_sidebars_get_names(); if (!empty($sidebars)) { foreach ($sidebars as $sidebar) { $page_sidebars['page-sidebar-' . sanitize_key($sidebar)] = array('name' => $sidebar, 'description' => ''); } ksort($page_sidebars); $widget_areas = array_merge_recursive($widget_areas, $page_sidebars); } if (!empty($widget_areas) && is_array($widget_areas)) { // Register the widget areas. foreach ($widget_areas as $key => $area) { register_sidebar(array('id' => $key, 'name' => $area['name'], 'description' => $area['description'], 'before_widget' => isset($area['before_widget']) ? $area['before_widget'] : $widget_area_defaults['before_widget'], 'after_widget' => isset($area['after_widget']) ? $area['after_widget'] : $widget_area_defaults['after_widget'], 'before_title' => isset($area['before_title']) ? $area['before_title'] : $widget_area_defaults['before_title'], 'after_title' => isset($area['after_title']) ? $area['after_title'] : $widget_area_defaults['after_title'])); } } }