. */ class sidebar_generator { function sidebar_generator() { add_action('init', array('sidebar_generator', 'init')); add_action('admin_menu', array('sidebar_generator', 'admin_menu')); add_action('admin_enqueue_scripts', array('sidebar_generator', 'print_admin_scripts')); add_action('wp_ajax_add_sidebar', array('sidebar_generator', 'add_sidebar')); add_action('wp_ajax_remove_sidebar', array('sidebar_generator', 'remove_sidebar')); //edit posts/pages add_action('edit_form_advanced', array('sidebar_generator', 'edit_form')); add_action('edit_page_form', array('sidebar_generator', 'edit_form')); //save posts/pages add_action('edit_post', array('sidebar_generator', 'save_form')); add_action('publish_post', array('sidebar_generator', 'save_form')); add_action('save_post', array('sidebar_generator', 'save_form')); add_action('edit_page_form', array('sidebar_generator', 'save_form')); } static function init() { // Go through each sidebar and register it $sidebars = sidebar_generator::get_sidebars(); if (is_array($sidebars)) { foreach ($sidebars as $sidebar) { $sidebar_class = sidebar_generator::name_to_class($sidebar['name']); // Sidebar type = 'normal' if ($sidebar['type'] == 'normal' || $sidebar['type'] == 'normal_gray' || $sidebar['type'] == 'normal_blue') { register_sidebar(array( 'name' => $sidebar['name'], 'id' => strtolower($sidebar_class), 'class' => $sidebar_class, 'description' => ucwords($sidebar['type']), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', )); // ..else Sidebar type = 'tabbed' } elseif ($sidebar['type'] == 'tabbed') { register_sidebar(array( 'name' => $sidebar['name'], 'class' => $sidebar_class, 'description' => ucwords($sidebar['type']), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', )); } } } } static function print_admin_scripts() { wp_print_scripts(array('sack')); ?> Remove]'); //cellLeft.appendChild(textNode) var cellLeft = row.insertCell(3); removeLink = document.createElement('a'); linkText = document.createTextNode('remove'); removeLink.setAttribute('onclick', 'remove_sidebar_link(\'$name\')'); removeLink.setAttribute('href', 'javacript:void(0)'); removeLink.appendChild(linkText); cellLeft.appendChild(removeLink); "; die("$js"); } function remove_sidebar() { $sidebars = sidebar_generator::get_sidebars(); $name = str_replace(array("\n", "\r", "\t"), '', $_POST['sidebar_name']); $id = sidebar_generator::name_to_class($name); if (!isset($sidebars[$id])) { die("alert('Sidebar does not exist.')"); } $row_number = $_POST['row_number']; unset($sidebars[$id]); sidebar_generator::update_sidebars($sidebars); $js = " var tbl = document.getElementById('sbg_table'); tbl.deleteRow($row_number) "; die($js); } static function admin_menu() { add_theme_page('Manage Sidebars', 'Manage Sidebars', 'manage_options', 'multiple_sidebars', array('sidebar_generator', 'admin_page')); } static function admin_page() { ?>

Manage Sidebars


Sidebar Name Sidebar Type CSS class Remove
remove
No Sidebars defined


ID; } $selected_sidebar = get_post_meta($post_id, 'sbg_selected_sidebar', true); if (!is_array($selected_sidebar)) { $tmp = $selected_sidebar; $selected_sidebar = array(); $selected_sidebar[0] = $tmp; } $selected_sidebar_replacement = get_post_meta($post_id, 'sbg_selected_sidebar_replacement', true); if (!is_array($selected_sidebar_replacement)) { $tmp = $selected_sidebar_replacement; $selected_sidebar_replacement = array(); $selected_sidebar_replacement[0] = $tmp; } ?>

Sidebars

Please select the sidebar you would like to display on this page. Note: You must first create the sidebar under Appearance > Manage Sidebars.

get_queried_object(); $selected_sidebar = get_post_meta($post->ID, 'sbg_selected_sidebar'); $selected_sidebar_replacement = get_post_meta($post->ID, 'sbg_selected_sidebar_replacement'); $did_sidebar = false; //this page uses a generated sidebar if ($selected_sidebar != '' && $selected_sidebar != "0") { echo "\n\n\n"; if (isset($selected_sidebar_replacement[0][0]) && $selected_sidebar_replacement[0][0] == "0") { $selected_sidebar_replacement = array(array(0 => "Normal")); } if (is_array($selected_sidebar) && !empty($selected_sidebar)) { for ($i = 0; $i < sizeof($selected_sidebar_replacement[0]); $i++) { if ($selected_sidebar_replacement[0][$i] == '0') continue; $index = $selected_sidebar_replacement[0][$i]; if (is_int($index)) { $index = "sidebar-$index"; } else { $index = sanitize_title($index); $description = ''; foreach ((array) $wp_registered_sidebars as $key => $value) { if (sanitize_title($value['name']) == $index) { $index = $key; $description = strtolower($value['description']); break; } } } $sidebars_widgets = wp_get_sidebars_widgets(); if (!empty($sidebars_widgets[$index])) echo '
'; if (!empty($sidebars_widgets[$index]) && $description == 'tabbed') { echo ' '; } if (!empty($sidebars_widgets[$index])) { echo '
'; dynamic_sidebar($selected_sidebar_replacement[0][$i]); //default behavior echo '
'; $did_sidebar = true; } } } if ($did_sidebar == true) { echo "\n\n\n"; return; } echo "\n\n\n"; return; } } /** * replaces array of sidebar names */ function update_sidebars($sidebar_array) { $sidebars = update_option('sbg_sidebars', $sidebar_array); } /** * gets the generated sidebars */ static function get_sidebars() { $sidebars = get_option('sbg_sidebars'); return $sidebars; } static function name_to_class($name) { $class = str_replace(array(' ', ',', '.', '"', "'", '/', "\\", '+', '=', ')', '(', '*', '&', '^', '%', '$', '#', '@', '!', '~', '`', '<', '>', '?', '[', ']', '{', '}', '|', ':',), '', $name); return $class; } } $sbg = new sidebar_generator; function generated_dynamic_sidebar($name = '0') { sidebar_generator::get_sidebar($name); return true; } // Register our footer sidebars and widgetized areas. function vh_widgets_init() { register_sidebar(array( 'name' => __('Footer Area One', 'vh'), 'id' => 'sidebar-1', 'description' => __('', 'vh'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', )); register_sidebar(array( 'name' => __('Footer Area Two', 'vh'), 'id' => 'sidebar-2', 'description' => __('', 'vh'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', )); register_sidebar(array( 'name' => __('Footer Area Three', 'vh'), 'id' => 'sidebar-3', 'description' => __('', 'vh'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', )); register_sidebar(array( 'name' => __('Footer Area Four', 'vh'), 'id' => 'sidebar-4', 'description' => __('', 'vh'), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', )); } // add_action('widgets_init', 'vh_widgets_init'); function change_title ($params) { global $vh_is_footer; if ($params[0]['before_title'] == "

" && !$vh_is_footer) { $params[0]['before_title'] = '

'; $params[0]['after_title'] = '

'; } return $params; } add_filter('dynamic_sidebar_params', 'change_title');