diff --git a/functions.php b/functions.php index 3fc8ca6..e149fef 100644 --- a/functions.php +++ b/functions.php @@ -1,703 +1,692 @@ -post_parent > 0){ - $parent = get_post($page->post_parent); - $private = get_post_meta($parent->ID, 'uc-private', true); - if($private == 'admins' || $private == 'users' || $private == 'list'){ - return $parent->ID; - } - else return is_parent_private($parent->ID); - } - else{ - return false; - } - } -} - -/* -Disabled until theme supports these types... (AB June 26, 2013) -add_theme_support( 'post-formats', array( 'aside', 'image', 'link', 'quote', 'status' ) ); -*/ - - -if ( function_exists('register_sidebar') ) { - register_sidebar(array( - 'name' => 'Sidebar', - 'id' => 'sidebar', - 'before_title' => '

', - 'after_title' => '

', - )); - register_sidebar(array( - 'name' => 'Home1', - 'id' => 'home1', - 'before_title' => '

', - 'after_title' => '

', - )); - register_sidebar(array( - 'name' => 'Home2', - 'id' => 'home2', - 'before_widget' => '
', - 'after_widget' => '
', - 'before_title' => '

', - 'after_title' => '

', - )); - register_sidebar(array( - 'name' => 'Home3', - 'id' => 'home3', - 'before_widget' => '
', - 'after_widget' => '
', - 'before_title' => '

', - 'after_title' => '

', - )); - register_sidebar(array( - 'name' => 'Home4', - 'id' => 'home4', - 'before_widget' => '
', - 'after_widget' => '
', - 'before_title' => '

', - 'after_title' => '

', - )); - register_sidebar(array( - 'name' => 'Home5', - 'id' => 'home5', - 'before_widget' => '
', - 'after_widget' => '
', - 'before_title' => '

', - 'after_title' => '

', - )); - register_sidebar(array( - 'name' => 'Home6', - 'id' => 'home6', - 'before_widget' => '
', - 'after_widget' => '
', - 'before_title' => '

', - 'after_title' => '

', - )); - register_sidebar(array( - 'name' => 'Home7', - 'id' => 'home7', - 'before_widget' => '
', - 'after_widget' => '
', - 'before_title' => '

', - 'after_title' => '

', - )); - - register_sidebar(array( - 'name' => __( 'Mega Footer', 'theme_text_domain' ), - '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' => '

', - 'pages' => array(), - 'children' => 'off', - 'force' => true - )); - -} - -function remove_some_widgets(){ - for( $i=8; $i<61; $i++ ){ - unregister_sidebar( 'home'.$i ); - } -} -add_action( 'widgets_init', 'remove_some_widgets', 11 ); - -// 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('aside class="', 'aside class="col-sm-' . $cols . ' span'.$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 > 5 ){ - unset($sidebars_widgets['mega-footer'][$i]); - } - } - } - return $sidebars_widgets; -} -add_filter( 'sidebars_widgets', 'mf_remove_extra' ); - -// If no Menu is created, displays a home link, and starts listing pages across the top. -function hale_page_menu_args( $args ) { - if ( ! isset( $args['show_home'] ) ) - $args['show_home'] = true; - $args['show_home'] = true; - return $args; - -} -add_filter( 'wp_page_menu_args', 'hale_page_menu_args' ); - -function hale_enqueue_scripts() { - wp_enqueue_script('bootstrap-min', network_home_url().'wp-content/global/bootstrap-2.3.1/js/bootstrap.min.js', array('jquery')); - wp_enqueue_script('uc-hale-custom', get_bloginfo('template_url').'/js/custom.js', array('jquery')); - - $outboundtracking = get_option( 'outbound_tracking',''); - if($outboundtracking == 'yes') wp_enqueue_script('uc-link-tracking', get_bloginfo('template_url').'/js/linktracking.js', array('jquery')); - - wp_enqueue_style('bootstrap-base', network_home_url().'wp-content/global/bootstrap-2.3.1/css/bootstrap.min.css'); - wp_enqueue_style('bootstrap-responsive', network_home_url().'wp-content/global/bootstrap-2.3.1/css/bootstrap-responsive.min.css', 'bootstrap-base'); - wp_enqueue_style('hale-style', get_bloginfo('stylesheet_url'), 'bootstrap-responsive'); - wp_enqueue_style('hale-print', get_bloginfo('template_url').'/uc-print.css', 'hale-main', '1', 'print' ); - - wp_register_style( 'hale-red', get_stylesheet_directory_uri() .'/red.css', 'hale-style'); - wp_register_style( 'hale-green', get_stylesheet_directory_uri() .'/green.css', 'hale-style'); - wp_register_style( 'hale-orange', get_stylesheet_directory_uri() .'/orange.css', 'hale-style'); - wp_register_style( 'hale-purple', get_stylesheet_directory_uri() .'/purple.css', 'hale-style'); - - - $themeColor = get_theme_mod( 'themeColor','blue'); - if($themeColor == 'red') { - wp_enqueue_style('hale-red'); - - } else if($themeColor == 'green') { - wp_enqueue_style('hale-green'); - - } else if($themeColor == 'orange') { - wp_enqueue_style('hale-orange'); - - } else if($themeColor == 'purple') { - wp_enqueue_style('hale-purple'); - - }; - -} -add_action('wp_enqueue_scripts', 'hale_enqueue_scripts'); - - - -function load_custom_wp_admin_style($hook) { - if( 'widgets.php' != $hook ) - return; - wp_register_style( 'css-widgets-area', get_template_directory_uri().'/widgets-area.php' ); - wp_enqueue_style( 'css-widgets-area' ); -} -add_action( 'admin_enqueue_scripts', 'load_custom_wp_admin_style' ); - - -function huskypress_customize_register( $wp_customize ) -{ - //1. Define a new section (if desired) to the Theme Customizer - $wp_customize->add_section( 'huskypress_options', - array( - 'title' => __( 'Template Options', 'mytheme' ), //Visible title of section - 'priority' => 35, //Determines what order this appears in - 'capability' => 'edit_theme_options', //Capability needed to tweak - 'description' => __('Allows you to customize header color and school, college, or division settings for Hale', 'huskypress'), //Descriptive tooltip - ) - ); - $wp_customize->add_setting( 'secondarytitle', //Give it a SERIALIZED name (so all theme settings can live under one db record) - array( - 'type' => 'option', //Is this an 'option' or a 'theme_mod'? - 'capability' => 'edit_theme_options', //Optional. Special permissions for accessing this setting. - 'transport' => 'refresh', //What triggers a refresh of the setting? 'refresh' or 'postMessage' (instant)? - ) - ); - $wp_customize->add_control('secondarytitle', array( - 'type' => 'text', - 'label' => 'School, College, Division, Department, etc.', - 'section' => 'huskypress_options' - ) - ); - $wp_customize->add_setting( 'secondarylink', //Give it a SERIALIZED name (so all theme settings can live under one db record) - array( - 'type' => 'option', //Is this an 'option' or a 'theme_mod'? - 'capability' => 'edit_theme_options', //Optional. Special permissions for accessing this setting. - 'transport' => 'refresh', //What triggers a refresh of the setting? 'refresh' or 'postMessage' (instant)? - ) - ); - $wp_customize->add_control('secondarylink', array( - 'type' => 'text', - 'label' => 'Link To School, College, Division, Department (Must be UConn.edu or UCHC.edu)', - 'section' => 'huskypress_options' - ) - ); - $wp_customize->add_setting( 'homepagelayout', //Give it a SERIALIZED name (so all theme settings can live under one db record) - array( - 'default' => '3-3', //Default setting/value to save - 'type' => 'theme_mod', //Is this an 'option' or a 'theme_mod'? - 'capability' => 'edit_theme_options', //Optional. Special permissions for accessing this setting. - 'transport' => 'refresh', //What triggers a refresh of the setting? 'refresh' or 'postMessage' (instant)? - ) - ); - - // new stuff added - $wp_customize->add_setting( 'themeColor', //Give it a SERIALIZED name (so all theme settings can live under one db record) - array( - 'default' => 'blue', //Default setting/value to save - 'type' => 'theme_mod', //Is this an 'option' or a 'theme_mod'? - 'capability' => 'edit_theme_options', //Optional. Special permissions for accessing this setting. - 'transport' => 'refresh', //What triggers a refresh of the setting? 'refresh' or 'postMessage' (instant)? - ) - ); - $wp_customize->add_control('themeColor', array( - 'type' => 'radio', - 'label' => 'Theme Color', - 'section' => 'huskypress_options', - 'choices' => array( - 'blue'=>'Dark Blue', - 'red' => 'Red', - 'orange' => 'Orange', - 'green' => 'Green', - 'purple'=>'Purple' - ) - ) - ); - $wp_customize->add_control('homepagelayout', array( - 'type' => 'radio', - 'label' => 'Homepage Layout', - 'section' => 'huskypress_options', - 'choices' => array( - '2L'=>'Large left', - '2L_sub' => 'Large left, subdivided', - '2R'=>'Large right', - '2R_sub'=>'Large right, subdivided', - '3'=>'Three even', - '3W'=>'Three columns, wide center', - '3W_sub'=>'Three columns, wide center, subdivided', - '1-2'=>'Large top, two bottom', - '1-3'=>'Large top, three bottom', - '2L-3'=>'Large top left, three bottom', - '2R-3'=>'Large top right, three bottom', - '3-3'=>'Large center top, large center bottom', - '3-4'=>'Large center top, four bottom' - ) - ) - ); -} -add_action( 'customize_register', 'huskypress_customize_register' ); - -function huskypress_navoption_register( $wp_customize ) -{ - $wp_customize->add_setting( 'navoption1', //Give it a SERIALIZED name (so all theme settings can live under one db record) - array( - 'default' => 'textnav', //Default setting/value to save - 'type' => 'theme_mod', //Is this an 'option' or a 'theme_mod'? - 'capability' => 'edit_theme_options', //Optional. Special permissions for accessing this setting. - 'transport' => 'refresh', //What triggers a refresh of the setting? 'refresh' or 'postMessage' (instant)? - ) - ); - $wp_customize->add_control('navoption1', array( - 'type' => 'select', - 'label' => 'Navigation Option 1', - 'section' => 'nav', - 'choices' => array( - 'textnav'=>'Text', - 'bar' => 'Bar', - 'stack-top'=>'Tabs' - ) - ) - ); - $wp_customize->add_setting( 'navoption2', //Give it a SERIALIZED name (so all theme settings can live under one db record) - array( - 'default' => 'with-drop', //Default setting/value to save - 'type' => 'theme_mod', //Is this an 'option' or a 'theme_mod'? - 'capability' => 'edit_theme_options', //Optional. Special permissions for accessing this setting. - 'transport' => 'refresh', //What triggers a refresh of the setting? 'refresh' or 'postMessage' (instant)? - ) - ); - $wp_customize->add_control('navoption2', array( - 'type' => 'select', - 'label' => 'Navigation Option 2', - 'section' => 'nav', - 'choices' => array( - 'with-drop'=>'Dropdowns', - 'with-left' => 'Left Nav' - ) - ) - ); -} -add_action( 'customize_register', 'huskypress_navoption_register' ); - -/*the fallback from wp_nav_menu, we want to replicate the output of wp_page_menu to be similar to wp_nav_menu -@param args, it comes from the wp_nav_menu arguments*/ -function hale_main_nav_fallback($args) { - $args['echo'] = 0; // don't echo the output yet. - $nav_menu = wp_page_menu($args); - if(!empty($nav_menu)){ - $doc = new DOMDocument(); - @$doc->loadHTML($nav_menu);//surpress the warnings - $data = $doc->getElementsByTagName('li'); - //the default behaviour of wp_page_menu is that it wraps the list items with a ul and div - //menu_class is for div in wp_page_menu, but is for the ul in wp_nav_menu - //create the container, if any - //container class and id come from wp_nav_menu arguments. Which is not used in wp_page_menu. - if($args['container'] != false) { - $attributes = (!empty($args['container_class'])?' class="'.$args['container_class'].'"':''); - $attributes .= (!empty($args['container_id'])?' id="'.$args['container_id'].'"':''); - if($args['container'] == 'nav') { - echo ''; - } else { - echo ''; - } - - } - $attributes = (!empty($args['menu_class'])?' class="'.$args['menu_class'].'"':''); - $attributes .= (!empty($args['menu_id'])?' id="'.$args['menu_id'].'"':''); - echo ''; - if($data->length > 0) { - foreach($data as $item) { - echo $item->ownerDocument->saveXML($item);//saveHTML wouldn't accept it as paramater. - } - } - echo ''; - //close the container, if any - if($args['container'] != false) { - if($args['container'] == 'nav') { - echo ''; - } else { - echo '
'; - } - - } - } - return; -} - -function search_menu_item($items, $args){ - - // Reference: http://www.wpbeginner.com/wp-themes/how-to-add-custom-items-to-specific-wordpress-menus/ - if ($args->theme_location == 'primary') { - $items = ' -
  • -
    -
    - - - -
    -
    -
  • - ' . $items; - } - return $items; -} - - -/*Nav Menu Walker*/ -if(!class_exists('Bootstrap_Nav_Walker')) { - class Bootstrap_Nav_Walker extends Walker_Nav_Menu { - /*This was taken from 320press WP-Bootstrap theme. No licensing restriction given, and it said it was free. */ - - /* Skip private pages - */ - function skip( $item ) { - $parent = is_parent_private($item->ID); - if($parent !== false) $page = $parent; - else $page = $item->ID; - $private = get_post_meta($page, 'uc-private', true); - if($private == 'admins' || $private == 'users' || $private == 'list'){ - return true; - } - else{ - return false; - } - } - - /* Start of the