'Sidebar #1','description'=>'The leftmost Sidebar.' , 'name'=>'sidebar','pos'=>'left','num'=>1), array('thename'=>'Sidebar #2','description'=>'The Second Left Sidebar.' , 'name'=>'sidebar','pos'=>'left','num'=>2), array('thename'=>'Inner Top','description'=>'Widget area that only appear in front page at the top of the content.' , 'name'=>'innertop'), array('thename'=>'Inner Bottom','description'=>'Widget area that only appear in front page at the bottom of the content.' , 'name'=>'innerbottom'), array('thename'=>'Sidebar #1','description'=>'The right sidebar.' , 'name'=>'sidebar','pos'=>'right','num'=>1), array('thename'=>'Sidebar #2','description'=>'The rightmost Sidebar.' , 'name'=>'sidebar','pos'=>'right','num'=>2), array('thename'=>'Footer','description'=>'Widget Area in Footer Section.' , 'name'=>'footer','title_class'=>'','body_class'=>''), ); switch (itx_get_option('layout','column')){ case 1: $ars=array(6,2,3);break; case 21: $ars=array(4,2,3,6);break; case 22: $ars=array(4,5,2,3,6);break; case 23: $ars=array(0,2,3,6);break; case 24: $ars=array(0,1,2,3,6);break; case 3: $ars=array(0,5,2,3,6);break; } $default=array('title_class'=>$widget_area['title_class'],'body_class'=>$widget_area['body_class']); foreach ($ars as $v){ $bars[]=wp_parse_args($bar[$v],$default); } return $bars; } /** * Function to get sidebar according to the arguments given * * @param string|array Arguments of the sidebar * @return array Sidebars settings to be fetched */ function itx_get_sidebar($args){ $bars=itx_all_sidebar(); $pos=$names=$poss=''; extract($args); if ($name){ foreach ($bars as $k=>$named){ if ($named['name']==$name){$names[$k]=$named;} } $bars=$names; if($pos&&$names){ foreach ($names as $k=>$posed){ if ($posed['pos']==$pos){$poss[$k]=$posed;} } $bars=$poss; } } return $bars; } if ( function_exists('register_sidebar') ){itx_reg_sidebar();} /** * Function to register sidebar * */ function itx_reg_sidebar(){ foreach (itx_all_sidebar() as $k=>$args){ $pos=''; extract($args); register_sidebar(array( 'id'=> 'sidebar-'.($k+1), 'name'=> "$thename Widget Area", 'description'=> $description, 'before_widget' => '
  • ', 'after_widget' => '
  • ', 'before_title' => '

    ', 'after_title' => '

    ', )); } } /** * Function fetch sidebar according to the arguments given * * @param string|array Arguments of the sidebar */ function itx_sidebar($args){ $args=wp_parse_args($args); $bars=itx_get_sidebar($args); if ($bars){ $pos=''; extract($args); if ($pos)$pos='-'.$pos; echo '
    '; foreach ( $bars as $k=>$v){ $num=''; extract($v); echo"
    "; if (itx_active_sidebar($k+1)) { echo '
    '; } else {itx_default_sidebar($num,$args);} echo '
    '; } echo '
    '; }; } /** * Function fetch default sidebar if no active widget * * @param string|array Arguments of the sidebar */ function itx_default_sidebar($thenum,$args){ $bars=itx_get_sidebar($args); foreach ( $bars as $k=>$v){ extract($v); if($thenum==1&&$num==$thenum){ if (function_exists('the_widget')){ the_widget('itx_tabbed_sidebar'); } echo''; } elseif($thenum==2&&$num==$thenum){ echo '
    '; } } } /** * Function to know wether a sidebar is in use. Added for supporting pre WP 2.8 * * @param bool $id_base Name of the widget * @return bool Widget is active */ function itx_active_sidebar( $index ) { if (function_exists('is_active_sidebar')) return is_active_sidebar($index); $index = ( is_int($index) ) ? "sidebar-$index" : sanitize_title($index); $sidebars_widgets = wp_get_sidebars_widgets(); if ( !empty($sidebars_widgets[$index]) ) return true; return false; } /** * Function get the active widget excluding widgets in innertop and innerbottom area. * * @param bool $id_base Name of the widget * @return bool Widget is active */ function itx_active_widget($id_base = false) { global $wp_registered_widgets; //excluding innertop & innerbottom; foreach (itx_all_sidebar() as $k=>$args){ if ($args['name']=='innertop'||$args['name']=='innerbottom') $ex[]=$k+1; } $sidebars_widgets = wp_get_sidebars_widgets(); if ( is_array($sidebars_widgets) ) { foreach ( $sidebars_widgets as $sidebar => $widgets ) { if ('wp_inactive_widgets'==$sidebar||"sidebar-$ex[0]" ==$sidebar || "sidebar-$ex[1]" ==$sidebar) continue; if (is_array($widgets)) { foreach ( $widgets as $widget ) { if ( $id_base && _get_widget_id_base($widget) == $id_base ) return true; } } } } return false; } /** * Function fetch the styles for layout. * */ function itx_layout_styles(){ extract(itx_get_option('layout')); if($wrapping=='fixed'){ if(!is_numeric($wrap)) $wrap=300; $wrapper=$wrap.'px'; $wmargin='auto'; } else { $wrapper='100%'; $wmargin='0'; } $side1=$side2=0; $lsidebar=$rsidebar=$sidebarswidth=$content=''; $cfloat='left'; if ($sidebarunit=='px') { $sidebar1=$sidebar1+15; $sidebar2=$sidebar2+15; if ($wrapping=='fixed'){ $main='#mainwrap{margin:0}'; if ($column==21||$column==22){ $main="#sidebar-right{left:-15px;}"; }elseif ($column==23||$column==24){ $cfloat="right"; }elseif ($column==3){ $cpos=$wrap-$sidebar1; $main="#mainwrap{margin:0;right:{$cpos}px;position:relative;}#content{left:100%}#sidebar-right{left:".($cpos-15)."px;}#sidebar-left{left:{$sidebar2}px}"; } } elseif ($column!=1){ if ($column==21){ $mainmargin=-$sidebar1-15; $pad=$sidebar1+30; $main="#sidebar-right{left:".($sidebar1-15)."px}"; }elseif($column==22){ $mainmargin=-$sidebar2-$sidebar1-15; $pad=$sidebar1+$sidebar2+30; $main="#sidebar-right{left:".($sidebar1+$sidebar2-15)."px}"; }elseif ($column==23){ $mainmargin=-15; $pad=$sidebar1+30; $main="#sidebar-left{left:30px}"; }elseif($column==24){ $mainmargin=-15; $pad=$sidebar1+$sidebar2+30; $main="#sidebar-left{left:30px}"; } else{ $mainmargin=-$sidebar2-15; $pad=$sidebar1+$sidebar2+30; $main="#sidebar-right{left:".($sidebar2-15)."px}#sidebar-left{left:".($sidebar2+30)."px}\n"; } $main.="#mainwrap{width:200%;right:100%;float:left;position:relative;margin-left:{$mainmargin}px;}\n"; $main.="#contentpad{margin-left:".($pad)."px;}\n"; $content="50%;left:50%"; } } else { if ($column==3){ $content=96-$sidebar1-$sidebar2.'%'; $side1=100; $side2=100; $main="#mainwrap{margin:0;right:".(98-$sidebar1)."%;position:relative;}#content{left:100%}#sidebar-right{left:".(96-$sidebar1)."%;}#sidebar-left{left:".($sidebar2+4)."%}#sidebar-left .widget,#sidebar-right .widget{margin-left:0}"; }elseif ($column==21){ $content=100-$sidebar1.'%'; $side1=100; $main="#sidebar-right{left:-15px}"; }elseif ($column==22) { $content=100-$sidebar1-$sidebar2.'%'; $wide=$sidebar1+$sidebar2; $side1=$sidebar1*100/$wide; $side2=$sidebar2*100/$wide; $main="#sidebar-right{left:-15px;}"; }elseif ($column==23) { $content=100-$sidebar1.'%'; $side1=100; $cfloat="right"; }elseif ($column==24) { $content=100-$sidebar1-$sidebar2.'%'; $wide=$sidebar1+$sidebar2; $side1=$sidebar1*100/$wide; $side2=$sidebar2*100/$wide; $cfloat="right"; } } if (!$side1) $side1=$sidebar1; if (!$side2) $side2=$sidebar2; if ($column==1){ $main="#mainwrap{margin:0 15px;}"; $content='100%'; }elseif ($column==21){ $rsidebar=$sidebar1; $sidebarswidth=".sidebar-1{width:$side1$sidebarunit;}"; if (!$content)$content=($wrap-$sidebar1).'px'; }elseif ($column==22){ $rsidebar=$sidebar1+$sidebar2; $sidebarswidth=".sidebar-1{width:$side1$sidebarunit;}.sidebar-2{width:$side2$sidebarunit;}"; if (!$content)$content=($wrap-$sidebar1-$sidebar2).'px'; }elseif ($column==23){ $lsidebar=$sidebar1; $sidebarswidth=".sidebar-1{width:$side1$sidebarunit;}"; if (!$content)$content=($wrap-$sidebar1).'px'; }elseif ($column==24){ $lsidebar=$sidebar1+$sidebar2; $sidebarswidth=".sidebar-1{width:$side1$sidebarunit;}.sidebar-2{width:$side2$sidebarunit;}"; if (!$content)$content=($wrap-$sidebar1-$sidebar2).'px'; } elseif ($column==3){ $lsidebar=$sidebar1; $rsidebar=$sidebar2; $sidebarswidth=".sidebar-1{width:$side1$sidebarunit;}.sidebar-2{width:$side2$sidebarunit;}"; if (!$content)$content=($wrap-$sidebar1-$sidebar2).'px'; } if ($lsidebar) $sidebarswidth.="#sidebar-left{width:$lsidebar$sidebarunit}"; if ($rsidebar) $sidebarswidth.="#sidebar-right{width:$rsidebar$sidebarunit}"; $itop=100/$innertop; $ibottom=100/$innerbottom; $footer=100/$footer; echo " .wrap{width:$wrapper;margin:$wmargin;} $main#content{width:$content;float:$cfloat;position:relative;overflow:hidden;} #sidebar-left,#sidebar-right{position:relative;} $sidebarswidth #innertop .widget{width:$itop%;} #innerbottom .widget{width:$ibottom%;} #footer .widget{width:$footer%;} "; } ?>