<?php
+require_once 'lib/menu-walker.php';
+require_once 'lib/navigation.php';
$ancestorId = null;
$includePages = array();
}
-/**
- * get_menu_options
- *
- * Grab the menu options from the theme.ini file
- */
-function glm_get_menu_options()
-{
- static $menu_options;
- $themeConfig = get_template_directory() . '/theme.ini';
-
- if (!$menu_options && is_file($themeConfig)) {
- $menu_options = parse_ini_file($themeConfig, true);
- }
- return $menu_options;
-}
-
-/**
- * glm_page_menu
- *
- * Grab the top level pages and their sub pages as the main navigation
- */
-function glm_page_menu($parent = 0, $class = '')
-{
- $menuConfig = glm_get_menu_options();
- $frontPageId = get_option('page_on_front');
- $parents = array();
- $args = array(
- 'post_type' => 'page',
- 'parent' => $parent,
- 'number' => '',
- 'exclude' => $frontPageId,
- 'post_status' => 'publish',
- 'sort_order' => 'asc',
- 'sort_column' => 'menu_order'
- );
- if ($parent == 0 && $menuConfig['menu_options']['main_level_pages']) {
- $args['include'] = $menuConfig['menu_options']['main_level_pages'];
- }
- $pages = get_pages($args);
- echo '<ul'.(($class)?' class="'.$class.'"':'').'><!-- begin -->'."\n";
- foreach ($pages as $page) {
- $childs = get_pages('child_of=' . $page->ID);
- if (count($childs) > 0) {
- echo '<li class="has-dropdown">'."\n";
- echo '<a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a>'."\n";
- echo glm_page_menu($page->ID, 'sub-menu dropdown');
- echo '</li>'."\n";
- } else {
- echo '<li><a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a></li>'."\n";
- }
- }
- echo '</ul><!-- end -->'."\n";
-}
-
-
function SearchFilter($query) {
if(isset($_GET['searchType'])) {
$searchType = $_GET['searchType'];
}
add_filter('pre_get_posts','SearchFilter');
-/**
- * glm_offcanvas_menu
- *
- * Generate the list of pages as nested ul li list
- */
-function glm_offcanvas_menu()
-{
- wp_page_menu(array(
- 'depth' => 0,
- 'sort_column' => 'menu_order',
- 'menu_class' => 'left-off-canvas-list'
- ));
-}
-
add_theme_support('post-thumbnails');
set_post_thumbnail_size(120, 100, true);
/**
</div>
<div class="row show-for-large-up">
<div class="large-12 text-center">
- <nav class="top-bar" data-topbar role="navigation">
- <section class="top-bar-section">
- <?php glm_page_menu(); ?>
- </section>
- </nav>
+ <?php get_template_part('parts/top-bar');?>
</div>
</div>
<!Off-canvas-Menu!>
</div>
-
</header>
+ <div id="head-main-divide"></div>
+ <?php get_template_part('parts/off-canvas-menu');?>
+
<nav class="tab-bar hide-for-large-up row">
<section class="left-small">
<a class="left-off-canvas-toggle menu-icon" href="#"><span>Menu</span></a>
--- /dev/null
+<?php
+/**
+ * Customize the output of menus for Foundation top bar
+ */
+if ( ! class_exists( 'Glm_Theme_Top_Bar_Walker' ) ) :
+class Glm_Theme_Top_Bar_Walker extends Walker_Nav_Menu {
+ function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
+ static $mainLevelCounter;
+ if ($depth == 0) {
+ ++$mainLevelCounter;
+ }
+ $element->has_children = ! empty( $children_elements[ $element->ID ] );
+ $element->classes[] = ( $element->current || $element->current_item_ancestor ) ? 'active' : '';
+ $element->classes[] = ( $element->has_children && 1 !== $max_depth ) ? 'has-dropdown' : '';
+ $element->classes[] = ( $element->post_parent == 0 && $mainLevelCounter < 6 ) ? '' : 'drop-left';
+ parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
+ }
+
+ function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {
+ static $saveParent = 0, $title = '';
+ $item_html = '';
+ parent::start_el( $item_html, $object, $depth, $args );
+
+ // Insert style to display page's thumbnail
+ if ( $depth == 0 ) {
+ $title = 0;
+ $saveParent = $object;
+ }
+ if ( !$title && $depth == 1 ) {
+ // get the page title from parent
+ $permalink = get_the_permalink( $saveParent->object_id );
+ $title = get_the_title( $saveParent->object_id );
+ $output .= '<li><h1><a href="' . $permalink . '">' . $title . '</a></h1></li>';
+ }
+ $classes = empty( $object->classes ) ? array() : (array) $object->classes;
+ if ( in_array( 'label', $classes ) ) {
+ $item_html = preg_replace( '/<a[^>]*>(.*)<\/a>/iU', '<label>$1</label>', $item_html );
+ }
+ if ( in_array( 'divider', $classes ) ) {
+ $item_html = preg_replace( '/<a[^>]*>( .* )<\/a>/iU', '', $item_html );
+ }
+ $output .= $item_html;
+ }
+
+ function start_lvl( &$output, $depth = 0, $args = array() ) {
+ $output .= "\n<ul class=\"sub-menu dropdown\">\n";
+ }
+}
+endif;
+if ( ! class_exists( 'Glm_Theme_Off_Canvas_Walker' ) ) :
+class Glm_Theme_Off_Canvas_Walker extends Walker_Nav_Menu {
+ function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
+ $element->has_children = ! empty( $children_elements[ $element->ID ] );
+ $element->classes[] = ( $element->current || $element->current_item_ancestor ) ? 'active' : '';
+ $element->classes[] = ( $element->has_children && 1 !== $max_depth ) ? 'page_item_has_children' : '';
+ $element->classes[] = 'page_item';
+
+ parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
+ }
+
+ function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {
+ $item_html = '';
+ parent::start_el( $item_html, $object, $depth, $args );
+
+ $classes = empty( $object->classes ) ? array() : (array) $object->classes;
+
+ if ( in_array( 'label', $classes ) ) {
+ $item_html = preg_replace( '/<a[^>]*>(.*)<\/a>/iU', '<label>$1</label>', $item_html );
+ }
+
+ $output .= $item_html;
+ }
+
+ function start_lvl( &$output, $depth = 0, $args = array() ) {
+ $output .= "\n<ul class=\"children\">\n";
+ }
+
+ function end_lvl(&$output, $depth = 0, $args = array()){
+ $output .= '</ul>';
+ }
+}
+endif;
+?>
--- /dev/null
+<?php
+
+register_nav_menus(array(
+ 'top-bar' => 'Site Navigation'
+));
+//register_nav_menus(array(
+// 'sec-nav' => 'Header Navigation'
+//));
+
+/**
+ * Top Bar
+ */
+if ( ! function_exists( 'glm_theme_top_bar' ) ) {
+ function glm_theme_top_bar() {
+ wp_nav_menu(array(
+ 'container' => false, // remove nav container
+ 'container_class' => '', // class of container
+ 'menu' => '', // menu name
+ 'menu_class' => '', // adding custom nav class
+ 'theme_location' => 'top-bar', // where it's located in the theme
+ 'before' => '', // before each link <a>
+ 'after' => '', // after each link </a>
+ 'link_before' => '', // before each link text
+ 'link_after' => '', // after each link text
+ 'depth' => 3, // limit the depth of the nav
+ 'fallback_cb' => false, // fallback function (see below)
+ 'walker' => new Glm_Theme_Top_Bar_Walker()
+ ));
+ }
+}
+
+/**
+ * Mobile off-canvas
+ */
+if ( ! function_exists( 'glm_theme_mobile_off_canvas' ) ) {
+ function glm_theme_mobile_off_canvas() {
+ echo '<div class="left-off-canvas-list">';
+ echo '<ul><li class="page_item"><a href="' . get_bloginfo('url') . '">Home</a></li>';
+ echo glm_get_mobile_nav_menu( 'top-bar' );
+ echo '</ul></div>';
+ }
+}
+
+function glm_get_mobile_nav_menu( $theme_location )
+{
+ $menu = wp_nav_menu(array(
+ 'echo' => false, // don't echo
+ 'container' => false, // remove nav container
+ 'container_class' => '', // class of container
+ 'menu' => '', // menu name
+ 'menu_class' => 'off-canvas-list', // adding custom nav class
+ 'theme_location' => $theme_location, // where it's located in the theme
+ 'before' => '', // before each link <a>
+ 'after' => '', // after each link </a>
+ 'link_before' => '', // before each link text
+ 'link_after' => '', // after each link text
+ 'depth' => 5, // limit the depth of the nav
+ 'fallback_cb' => false, // fallback function (see below)
+ 'walker' => new Glm_Theme_Off_Canvas_Walker()
+ ));
+ return preg_replace( array( '%^<ul[^>]*>%', '%</ul>$%' ), '', $menu );
+}
+
+/**
+ * Footer
+ */
+//if ( ! function_exists( 'glm_theme_header' ) ) {
+// function glm_theme_header() {
+// echo '<ul>';
+// $menu = wp_nav_menu(array(
+// 'echo' => false, // don't echo
+// 'container' => false, // remove nav container
+// 'container_class' => '', // class of container
+// 'menu' => '', // menu name
+// 'menu_class' => '', // adding custom nav class
+// 'theme_location' => 'sec-nav', // where it's located in the theme
+// 'before' => '', // before each link <a>
+// 'after' => '', // after each link </a>
+// 'link_before' => '', // before each link text
+// 'link_after' => '', // after each link text
+// 'depth' => 1, // limit the depth of the nav
+// 'fallback_cb' => false, // fallback function (see below)
+// ));
+// echo preg_replace( array( '%^<ul[^>]*>%', '%</ul>$%' ), '', $menu );
+// echo '<li><a class="social" href="https://www.facebook.com/groups/2252145488/" target="_blank"><img alt="facebook link" src="' . get_template_directory_uri() . '/assets/facebook-icon.jpg"></a></li></ul>';
+//
+// }
+//
+//}
+
+/**
+ * glm_page_menu
+ *
+ * Grab the top level pages and their sub pages as the main navigation
+ */
+function glm_page_menu($parent = 0, $class = '')
+{
+ $menuConfig = glm_get_menu_options();
+ $frontPageId = get_option('page_on_front');
+ $parents = array();
+ $args = array(
+ 'post_type' => 'page',
+ 'parent' => $parent,
+ 'number' => '',
+ 'exclude' => $frontPageId,
+ 'post_status' => 'publish',
+ 'sort_order' => 'asc',
+ 'sort_column' => 'menu_order'
+ );
+ if ($parent == 0 && $menuConfig['menu_options']['main_level_pages']) {
+ $args['include'] = $menuConfig['menu_options']['main_level_pages'];
+ }
+ $pages = get_pages($args);
+ echo '<ul'.(($class)?' class="'.$class.'"':'').'><!-- begin -->'."\n";
+ foreach ($pages as $page) {
+ $childs = get_pages('child_of=' . $page->ID);
+ if (count($childs) > 0) {
+ echo '<li class="has-dropdown">'."\n";
+ echo '<a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a>'."\n";
+ echo glm_page_menu($page->ID, 'sub-menu dropdown');
+ echo '</li>'."\n";
+ } else {
+ echo '<li><a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a></li>'."\n";
+ }
+ }
+ echo '</ul><!-- end -->'."\n";
+}
+
+/**
+ * glm_offcanvas_menu
+ *
+ * Generate the list of pages as nested ul li list
+ */
+function glm_offcanvas_menu()
+{
+ wp_page_menu(array(
+ 'depth' => 0,
+ 'sort_column' => 'menu_order',
+ 'menu_class' => 'left-off-canvas-list'
+ ));
+}
+
+/**
+ * get_menu_options
+ *
+ * Grab the menu options from the theme.ini file
+ */
+function glm_get_menu_options()
+{
+ static $menu_options;
+ $themeConfig = get_template_directory() . '/theme.ini';
+
+ if (!$menu_options && is_file($themeConfig)) {
+ $menu_options = parse_ini_file($themeConfig, true);
+ }
+ return $menu_options;
+}
+
+function glm_side_menu() {
+ global $post;
+ $parents = get_post_ancestors($post->ID);
+ $id = ($parents) ? $parents[count($parents)-1]: $post->ID;
+ $parent = get_page( $id );
+ if ($id == 0) {
+ $ID = $post->ID;
+ } else {
+ $ID = $parent->ID;
+ }
+ echo '<h1>'.get_the_title($ID).'</h1>';
+ echo '<ul class="sidebar"><!-- begin -->'."\n";
+ echo wp_list_pages( 'child_of='.$ID.'&title_li=&depth=1&echo=0');
+ echo '</ul><!-- end -->'."\n";
+}
+
--- /dev/null
+<!--
+<aside class="left-off-canvas-menu hide-for-large-up">
+ <?php glm_theme_mobile_off_canvas(); ?>
+ <?php get_template_part( 'parts/search');?>
+ <?php get_template_part( 'parts/client-info-offcanvas');?>
+</aside>
+-->
+
+<aside class="right-off-canvas-menu hide-for-large-up">
+ <?php glm_theme_mobile_off_canvas(); ?>
+ <?php get_template_part('parts/search');?>
+ <ul class="offcavas-social-list">
+ <li><a class="social" href="#" target="_blank"><img alt="facebook link" src="<?php echo esc_url( get_template_directory_uri() );?>/assets/facebook-icon.jpg"></a></li>
+ </ul>
+ <?php get_template_part('parts/client-info-offcanvas');?>
+</aside>
--- /dev/null
+<nav class="top-bar show-for-large-up" data-topbar role="navigation">
+ <section class="top-bar-section">
+ <?php glm_theme_top_bar(); ?>
+ </section>
+</nav>
+<nav class="tab-bar show-for-medium-down">
+ <section class="right-small">
+ <a class="right-off-canvas-toggle menu-icon" href="#"><span>Menu</span></a>
+ </section>
+</nav>