',
'container_widgets_pieces',
'widget_corner widget_top_left',
'widget_token_left',
'widget_topbottom widget_top_center',
'widget_corner widget_top_right',
'widget_token_right',
'widget_sides widget_middle_left',
'widget_center widget_content',
'widget_sides widget_middle_right',
'widget_corner widget_bottom_left',
'widget_topbottom widget_bottom_center',
'widget_corner widget_bottom_right',
'widget_token_bottom'
);
$new_classes=array('
',
'container_widgets_pieces '.$reset_boxes,
'widget_corner widget_top_left '.$reset_boxes,
'widget_token_left '.$reset_boxes,
'widget_topbottom widget_top_center '.$reset_boxes,
'widget_corner widget_top_right '.$reset_boxes,
'widget_token_right '.$reset_boxes,
'widget_sides widget_middle_left '.$reset_boxes,
'widget_center widget_content '.$reset_boxes,
'widget_sides widget_middle_right '.$reset_boxes,
'widget_corner widget_bottom_left '.$reset_boxes,
'widget_topbottom widget_bottom_center '.$reset_boxes,
'widget_corner widget_bottom_right '.$reset_boxes,
'widget_token_bottom '.$reset_boxes
);
ob_start();
dynamic_sidebar($position);
$sidebar_contents = ob_get_clean();
echo str_replace($class_originals,$new_classes,$sidebar_contents);
}
/**
* [BillyDroid_get_pages get all pages for the systme of layout in this case id 0 corresnpond to blog & single]
*/
function BillyDroid_get_pages (){
global $wpdb;
$wts_find = $wpdb->get_col("SELECT ID FROM $wpdb->posts WHERE post_name LIKE '%-wts'", 0);
$wts_page = implode(',',$wts_find);
$blog_layout[] = (object) array( 'ID' => 0, 'post_title' => 'blog and single');
$wtsp = array( 'exclude' => $wts_page );
$pages = get_pages();
return array_merge( $blog_layout, $pages );
}
function update_layout(){
$layout_pack=array();
//get all curent pages to sidebar
$get_pages = BillyDroid_get_pages();
//get the position assign sidebar
$sidebar_info = get_theme_mod( 'BillyDroid_sidebar' );
$style_default = 'boxcss_default';
foreach( $get_pages as $index => $page ) {
// asign slider for the single post, search, archive & category
if ($page->ID===0) {
$layout_pack[ $page->ID ][ 'slider_blog' ] = true;
$layout_pack[ $page->ID ][ 'slider_single' ] = true;
$layout_pack[ $page->ID ][ 'slider_search' ] = false;
$layout_pack[ $page->ID ][ 'slider_archive' ] = false;
$layout_pack[ $page->ID ][ 'slider_category' ] = false;
$layout_pack[ 'themeshock_default_widget_boxes' ] = true;
} else {
/// asign slider only into pages
$layout_pack[ $page->ID ][ 'slider_page' ] = true;
}
//asign widget style for widgets into footer sidebar
$layout_pack[ $page->ID ][ 'footer_widget_style' ] = $style_default;
//Determine styles and position for per page
foreach( $sidebar_info as $position_widgets=> $description ) {
//define layout by default right_1 is open
$layout_pack[ $page->ID ][ $position_widgets ][ 'active' ] = ( $position_widgets === 'right_1' )?true:false;
$layout_pack[ $page->ID ][ $position_widgets ][ 'style' ] = $style_default;
}
}
set_theme_mod( 'BillyDroid_layout_options', $layout_pack );//regitrar layout en los didebar
return $layout_pack;//carga todas las posiciones de los layouts;
}
/**
* [update_sidebar update courrent cposiition sidebars]
* @return [array] [info about the position of sidebars]
*/
function update_sidebar(){
/* register settings the sidebars */
$sidebars=array();
$sidebar_positions = BillyDroid_sidebar_schemes();
$sidebar_args = BillyDroid_get_template_sidebar();
foreach( $sidebar_positions as $position_widgets ){
$sidebars[ $position_widgets ] = $sidebar_args;
$sidebars[ $position_widgets ][ 'name' ] = $position_widgets;
}
//save sibebar positions
set_theme_mod( 'BillyDroid_sidebar', $sidebars );
return $sidebars;
}
function layout_update(){
$pages = BillyDroid_get_pages();
$layout_info = get_theme_mod ( 'BillyDroid_layout_options' );
$style_default = 'boxcss_default';
$sidebar_info = get_theme_mod( 'BillyDroid_sidebar' );
foreach ( $pages as $page){
if ( !isset( $layout_info[ $page->ID ] ) ){
//asign widget style for widgets into footer sidebar
$layout_info[ $page->ID ][ 'slider_page' ] = true;
//asign widget style for widgets into footer sidebar
$layout_info[ $page->ID ][ 'footer_widget_style' ] = $style_default;
//Determine styles and position for this page if not exists
foreach( $sidebar_info as $position_widgets => $description ){
//define layout by default right_1 is open
$layout_info[$page->ID][$position_widgets]['active']=($position_widgets==='right_1')?true:false;
$layout_info[$page->ID][$position_widgets]['style']=$style_default;
}
}
}
set_theme_mod( 'BillyDroid_layout_options', $layout_info );
}
//update pages sidebar automatically. If not exists
function get_current_sidebar (){
$layout_info = get_theme_settings ( 'layout_info' );
$id = ( is_page() )?get_the_ID():0;
$sidebar = 'fullwidth';
$comp = array_walk( $layout_info[$id], function ( &$value, $key){
static $matches=0;
switch ( $key ) {
case 'left_1':
case 'left_2':
case 'right_1':
case 'right_2':
if ( true == $value['active'] )
$matches++;
break;
}
$value = $matches;
});
if ( $comp ){
$matches = end( $layout_info[$id] );
if ( $matches >0 )
$sidebar = 'sidebar_'.$matches;
}
return $sidebar;
}
?>