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

Update for sidebars and layout builder #4

Merged
merged 1 commit into from
Jul 21, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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