Skip to content
This repository has been archived by the owner. It is now read-only.

Commit

Permalink
Update for sidebars and layout builder
Browse files Browse the repository at this point in the history
  • Loading branch information
jmr06005 committed Jul 21, 2014
1 parent 3c2c5cd commit cc88d19
Show file tree
Hide file tree
Showing 2 changed files with 300 additions and 261 deletions.
239 changes: 139 additions & 100 deletions inc/reg-sidebars.php
Original file line number Diff line number Diff line change
@@ -1,101 +1,140 @@
<?php

/**
* Register widget area.
*
* @link http://codex.wordpress.org/Function_Reference/register_sidebar
*/

if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'name' => __( 'Sidebar', 'theme_text_domain' ),
'id' => 'sidebar',
'description' => 'Appears with Archives, Search Results, the Blog page template, and when viewing single posts.',
'class' => 'sidebar',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="widget-head"><h2 class="widget-title">',
'after_title' => '</h2></div>'
));

register_sidebar( array(
'name' => __( 'Mega Footer' ),
'id' => 'mega-footer',
'description' => 'Limited to 6 widgets. Will appear at the bottom of every page in the site.',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="widget-head"><h2 class="widget-title">',
'after_title' => '</h2></div>'
) );

for($i=0; $i<60; $i++){
register_sidebar(array(
'name' => __( 'Home '.$i, 'theme_text_domain' ),
'id' => 'home'.$i,
'class' => 'sidebar',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="widget-head"><h2 class="widget-title">',
'after_title' => '</h2></div>'
));
}
}

// if no title then add widget content wrapper to before widget
function check_sidebar_params( $params ) {
global $wp_registered_widgets;

$settings_getter = $wp_registered_widgets[ $params[0]['widget_id'] ]['callback'][0];
$settings = $settings_getter->get_settings();
$settings = $settings[ $params[1]['number'] ];

if ( $params[0][ 'after_widget' ] == '</div></aside>' && isset( $settings[ 'title' ] ) && empty( $settings[ 'title' ] ) ){
$params[0][ 'before_widget' ] .= '<div class="widget-content ccc">';
}

#Counts widgets in mega footer and adds column class accordingly
if( $params[0]['id'] == 'mega-footer' ){
$sidebars = get_option('sidebars_widgets');
$widgets = $sidebars['mega-footer'];
$count = count($widgets);
if( $count > 6 ){
$cols = 2;
} else {
$cols = floor(12 / $count);
}
$params[0]['before_widget'] = str_replace('class="', 'class="col-sm-' . $cols . ' ', $params[0]['before_widget']);
}
return $params;
}
add_filter( 'dynamic_sidebar_params', 'check_sidebar_params' );

function mf_remove_extra( $sidebars_widgets ){
$widgets = $sidebars_widgets['mega-footer'];
if( is_array($sidebars_widgets['mega-footer']) ){
foreach ($sidebars_widgets['mega-footer'] as $i => $widget) {
if( $i > 6 ){
unset($sidebars_widgets['mega-footer'][$i]);
}
}
}
return $sidebars_widgets;
}
add_filter( 'sidebars_widgets', 'mf_remove_extra' );

function custom_searchform($form){
global $search_counter;
if( !$search_counter ){
$search_counter = 0;
}
$search_counter++;

$form = '<div class="searchform"><form action="/" method="get" class="form-inline" role="form"><div class="form-group"><fieldset>';
$form .= '<label for="search-'.$search_counter.'" class="sr-only">Search in '.home_url( '/' ).'></label>';
$form .= '<input type="text" name="s" id="search-'.$search_counter.'" value="'.the_search_query().'" class="form-control" placeholder="Search... " />';
$form .= '<button type="submit" class="btn btn-default" title="Search"><i class="glyphicon glyphicon-search"></i><span class="sr-only">Search</span></button>';
$form .= '</fieldset></div></form></div>';

return $form;
}
add_filter('get_search_form', 'custom_searchform');
<?php

/**
* Register widget area.
*
* @link http://codex.wordpress.org/Function_Reference/register_sidebar
*/

if ( function_exists('register_sidebar') ) {
$sidebars = get_option( 'uc_sidebars' );
/*unset($sidebars['mega-footer']);
unregister_sidebar('mega-footer');
unset($sidebars['sidebar']);
unregister_sidebar('sidebar');*/
if(!isset($sidebars['mega-footer'])){
$sidebars['mega-footer'] = array(
'name' => __( 'Mega Footer', 'theme_text_domain' ),
'description' => 'Limited to 6 widgets. Will appear at the bottom of every page in the site.',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="widget-head"><h2 class="widget-title">',
'after_title' => '</h2></div>',
'pages' => array(),
'children' => 'off',
'force' => true
);
update_option('uc_sidebars',$sidebars);
$sidebars['mega-footer']['id'] = 'mega-footer';
register_sidebar($sidebars['mega-footer']);
}
if(!isset($sidebars['sidebar'])){
$sidebars['sidebar'] = array(
'name' => __( 'Sidebar', 'theme_text_domain' ),
'description' => 'Appears with Archives, Search Results, the Blog page template, and when viewing single posts.',
'class' => 'sidebar',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="widget-head"><h2 class="widget-title">',
'after_title' => '</h2></div>',
'pages' => array(),
'children' => 'off',
'force' => true
);
update_option('uc_sidebars',$sidebars);
$sidebars['sidebar']['id'] = 'sidebar';
register_sidebar($sidebars['sidebar']);
}

/*register_sidebar(array(
'name' => __( 'Sidebar', 'theme_text_domain' ),
'id' => 'sidebar',
'description' => 'Appears with Archives, Search Results, the Blog page template, and when viewing single posts.',
'class' => 'sidebar',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="widget-head"><h2 class="widget-title">',
'after_title' => '</h2></div>'
));
register_sidebar( array(
'name' => __( 'Mega Footer' ),
'id' => 'mega-footer',
'description' => 'Limited to 6 widgets. Will appear at the bottom of every page in the site.',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="widget-head"><h2 class="widget-title">',
'after_title' => '</h2></div>'
) );*/

for($i=0; $i<60; $i++){
register_sidebar(array(
'name' => __( 'Home '.$i, 'theme_text_domain' ),
'id' => 'home'.$i,
'class' => 'sidebar',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="widget-head"><h2 class="widget-title">',
'after_title' => '</h2></div>'
));
}
}

// if no title then add widget content wrapper to before widget
function check_sidebar_params( $params ) {
global $wp_registered_widgets;

$settings_getter = $wp_registered_widgets[ $params[0]['widget_id'] ]['callback'][0];
$settings = $settings_getter->get_settings();
$settings = $settings[ $params[1]['number'] ];

if ( $params[0][ 'after_widget' ] == '</div></aside>' && isset( $settings[ 'title' ] ) && empty( $settings[ 'title' ] ) ){
$params[0][ 'before_widget' ] .= '<div class="widget-content ccc">';
}

#Counts widgets in mega footer and adds column class accordingly
if( $params[0]['id'] == 'mega-footer' ){
$sidebars = get_option('sidebars_widgets');
$widgets = $sidebars['mega-footer'];
$count = count($widgets);
if( $count > 6 ){
$cols = 2;
} else {
$cols = floor(12 / $count);
}
$params[0]['before_widget'] = str_replace('class="', 'class="col-sm-' . $cols . ' ', $params[0]['before_widget']);
}
return $params;
}
add_filter( 'dynamic_sidebar_params', 'check_sidebar_params' );

function mf_remove_extra( $sidebars_widgets ){
$widgets = $sidebars_widgets['mega-footer'];
if( is_array($sidebars_widgets['mega-footer']) ){
foreach ($sidebars_widgets['mega-footer'] as $i => $widget) {
if( $i > 6 ){
unset($sidebars_widgets['mega-footer'][$i]);
}
}
}
return $sidebars_widgets;
}
add_filter( 'sidebars_widgets', 'mf_remove_extra' );

function custom_searchform($form){
global $search_counter;
if( !$search_counter ){
$search_counter = 0;
}
$search_counter++;

$form = '<div class="searchform"><form action="/" method="get" class="form-inline" role="form"><div class="form-group"><fieldset>';
$form .= '<label for="search-'.$search_counter.'" class="sr-only">Search in '.home_url( '/' ).'></label>';
$form .= '<input type="text" name="s" id="search-'.$search_counter.'" value="'.the_search_query().'" class="form-control" placeholder="Search... " />';
$form .= '<button type="submit" class="btn btn-default" title="Search"><i class="glyphicon glyphicon-search"></i><span class="sr-only">Search</span></button>';
$form .= '</fieldset></div></form></div>';

return $form;
}
add_filter('get_search_form', 'custom_searchform');
?>
Loading

0 comments on commit cc88d19

Please sign in to comment.