From cc88d19ebcc1b8224a04af111cbcffab857232e7 Mon Sep 17 00:00:00 2001 From: Joshua Roy Date: Mon, 21 Jul 2014 18:07:11 -0400 Subject: [PATCH] Update for sidebars and layout builder --- inc/reg-sidebars.php | 239 ++++++++++++++++++-------------- js/layoutbuilder.js | 322 +++++++++++++++++++++---------------------- 2 files changed, 300 insertions(+), 261 deletions(-) diff --git a/inc/reg-sidebars.php b/inc/reg-sidebars.php index 639182a..b51f9be 100644 --- a/inc/reg-sidebars.php +++ b/inc/reg-sidebars.php @@ -1,101 +1,140 @@ - __( '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' => '', - 'before_title' => '

', - 'after_title' => '

' - )); - - 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' => '', - 'before_title' => '

', - 'after_title' => '

' - ) ); - - for($i=0; $i<60; $i++){ - register_sidebar(array( - 'name' => __( 'Home '.$i, 'theme_text_domain' ), - 'id' => 'home'.$i, - 'class' => 'sidebar', - 'before_widget' => '', - 'before_title' => '

', - 'after_title' => '

' - )); - } -} - -// 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' ] == '' && isset( $settings[ 'title' ] ) && empty( $settings[ 'title' ] ) ){ - $params[0][ 'before_widget' ] .= '
'; - } - - #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 = '
'; - $form .= ''; - $form .= ''; - $form .= ''; - $form .= '
'; - - return $form; -} -add_filter('get_search_form', 'custom_searchform'); + __( 'Mega Footer', 'theme_text_domain' ), + 'description' => 'Limited to 6 widgets. Will appear at the bottom of every page in the site.', + 'before_widget' => '', + 'before_title' => '

', + 'after_title' => '

', + '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' => '', + 'before_title' => '

', + 'after_title' => '

', + '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' => '', + 'before_title' => '

', + 'after_title' => '

' + )); + + 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' => '', + 'before_title' => '

', + 'after_title' => '

' + ) );*/ + + for($i=0; $i<60; $i++){ + register_sidebar(array( + 'name' => __( 'Home '.$i, 'theme_text_domain' ), + 'id' => 'home'.$i, + 'class' => 'sidebar', + 'before_widget' => '', + 'before_title' => '

', + 'after_title' => '

' + )); + } +} + +// 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' ] == '
' && isset( $settings[ 'title' ] ) && empty( $settings[ 'title' ] ) ){ + $params[0][ 'before_widget' ] .= '
'; + } + + #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 = '
'; + $form .= ''; + $form .= ''; + $form .= ''; + $form .= '
'; + + return $form; +} +add_filter('get_search_form', 'custom_searchform'); ?> \ No newline at end of file diff --git a/js/layoutbuilder.js b/js/layoutbuilder.js index 6e310ba..6dc923d 100644 --- a/js/layoutbuilder.js +++ b/js/layoutbuilder.js @@ -1,162 +1,162 @@ -jQuery(document).ready(function($) { - - //Slider - $(function() { - - var currentHandle = -1; - var canDelete = -1; - var rows = 0; - wp.customize('homepagerows', function(obj) { - - rows = obj.get(); - - } ); - var addRow = function(i){ - $('.sliders').append('
'); - $('#addColumn'+i).click(function(){ - addColumnButton(this); - }); - var myarr = []; - var widths = []; - wp.customize('homepage_'+i, function(obj) { - - widths = new String(obj.get()); - - } ); - widths = widths.split(','); - for(var j in widths){ - if(myarr.length == 0){ - myarr[myarr.length] = parseInt(widths[j]); - } - else{ - myarr[myarr.length] = parseInt(widths[j])+myarr[myarr.length-1]; - } - - } - if(myarr.length == 0) myarr[0] = 12; - $( "#slider"+i ).slider({ - min: 0, - max: 12, - step: 1, - values: myarr, - change: function(event, ui){onSliderChange(event, ui, i);} - }); - $( "#slider"+i ).children().last().css('display','none'); - } - - var addColumnButton = function(button){ - var row = $(button).attr('id').substr(-1); - var myarr = $( "#slider"+row ).slider( "option", "values" ); - if(myarr.length == 11) return; - myarr[myarr.length] = 12; - myarr.sort(function(a,b){return a - b}); - $( "#slider"+row ).slider( "destroy" ); - $( "#slider"+row ).slider({ - min: 0, - max: 12, - step: 1, - values: myarr, - change: function(event, ui){onSliderChange(event, ui, row);} - }); - $( "#slider"+row ).children().last().css('display','none'); - } - - var deleteColumn = function(){ - if(!currentHandle) return; - var row = canDelete; - //if(!$(':focus').hasClass('ui-slider-handle')) return; - var count = 0; - var widths = 0; - var values = $.unique($('#slider'+row).slider( "values" )); - if(values.indexOf(currentHandle) == -1) return; - values.splice(values.indexOf(currentHandle),1); - values.sort(function(a,b){return a - b}); - $( "#slider"+row ).slider( "destroy" ); - $( "#slider"+row ).slider({ - min: 0, - max: 12, - step: 1, - values: values, - change: function(event, ui){onSliderChange(event, ui, row);} - }); - $( "#slider"+row ).children().last().css('display','none'); - for(var j in values){ - if(values[j] != 0){ - if(widths == 0) widths = values[j]; - else { - var dif = parseInt(values[j])-parseInt(values[j-1]); - widths = widths+','+dif - } - } - } - wp.customize('homepage_'+row, function(obj) { - - obj.set(widths); - - } ); - $('.sliderDeleteColumn').addClass('disabled'); - } - - var onSliderChange = function(event, ui, row){ - var widths = 0; - var values = $.unique(ui.values); - values.sort(function(a,b){return a - b}); - for(var j in values){ - if(values[j] != 0){ - if(widths == 0) widths = values[j]; - else { - var dif = parseInt(values[j])-parseInt(values[j-1]); - widths = widths+','+dif - } - } - } - wp.customize('homepage_'+row, function(obj) { - - obj.set(widths); - - } ); - currentHandle = parseInt($(':focus').css('left').split('px')[0])/20; - canDelete = row; - $('.sliderDeleteColumn').removeClass('disabled'); - } - - - for(var i=0; i
'); + $('#addColumn'+i).click(function(){ + addColumnButton(this); + }); + var myarr = []; + var widths = []; + wp.customize('homepage_'+i, function(obj) { + + widths = new String(obj.get()); + + } ); + widths = widths.split(','); + for(var j in widths){ + if(myarr.length == 0){ + myarr[myarr.length] = parseInt(widths[j]); + } + else{ + myarr[myarr.length] = parseInt(widths[j])+myarr[myarr.length-1]; + } + + } + if(myarr.length == 0) myarr[0] = 12; + $( "#slider"+i ).slider({ + min: 0, + max: 12, + step: 1, + values: myarr, + change: function(event, ui){onSliderChange(event, ui, i);} + }); + $( "#slider"+i ).children().last().css('display','none'); + } + + var addColumnButton = function(button){ + var row = $(button).attr('id').substr(-1); + var myarr = $( "#slider"+row ).slider( "option", "values" ); + if(myarr.length == 11) return; + myarr[myarr.length] = 12; + myarr.sort(function(a,b){return a - b}); + $( "#slider"+row ).slider( "destroy" ); + $( "#slider"+row ).slider({ + min: 0, + max: 12, + step: 1, + values: myarr, + change: function(event, ui){onSliderChange(event, ui, row);} + }); + $( "#slider"+row ).children().last().css('display','none'); + } + + var deleteColumn = function(){ + if(!currentHandle) return; + var row = canDelete; + //if(!$(':focus').hasClass('ui-slider-handle')) return; + var count = 0; + var widths = 0; + var values = $.unique($('#slider'+row).slider( "values" )); + if(values.indexOf(currentHandle) == -1) return; + values.splice(values.indexOf(currentHandle),1); + values.sort(function(a,b){return a - b}); + $( "#slider"+row ).slider( "destroy" ); + $( "#slider"+row ).slider({ + min: 0, + max: 12, + step: 1, + values: values, + change: function(event, ui){onSliderChange(event, ui, row);} + }); + $( "#slider"+row ).children().last().css('display','none'); + for(var j in values){ + if(values[j] != 0){ + if(widths == 0) widths = values[j]; + else { + var dif = parseInt(values[j])-parseInt(values[j-1]); + widths = widths+','+dif + } + } + } + wp.customize('homepage_'+row, function(obj) { + + obj.set(widths); + + } ); + $('.sliderDeleteColumn').addClass('disabled'); + } + + var onSliderChange = function(event, ui, row){ + var widths = 0; + var values = $.unique(ui.values); + values.sort(function(a,b){return a - b}); + for(var j in values){ + if(values[j] != 0){ + if(widths == 0) widths = values[j]; + else { + var dif = parseInt(values[j])-parseInt(values[j-1]); + widths = widths+','+dif + } + } + } + wp.customize('homepage_'+row, function(obj) { + + obj.set(widths); + + } ); + currentHandle = Math.round(parseInt($(':focus').css('left').split('px')[0])/16.25); + canDelete = row; + $('.sliderDeleteColumn').removeClass('disabled'); + } + + + for(var i=0; i