adding footer menu, groups-media and communities menus to offcanvas
authorAnthony Talarico <talarico@gaslightmedia.com>
Fri, 14 Oct 2016 13:07:29 +0000 (09:07 -0400)
committerAnthony Talarico <talarico@gaslightmedia.com>
Fri, 14 Oct 2016 13:07:29 +0000 (09:07 -0400)
functions.php
lib/navigation.php
parts/off-canvas-menu.php

index 6b37282..508f4f8 100644 (file)
@@ -315,4 +315,15 @@ function hm_get_template_part( $file, $template_args = array(), $cache_args = ar
             return $data;
     echo $data;
 }
+// add the name of the appearance as the parameter to create a menu based on its subpages
+function create_offcanvas_menu($menu){
+    if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[$menu] )) {
+        $menu = wp_get_nav_menu_object( $locations[ $menu ] );
+        $menu_items = wp_get_nav_menu_items($menu->term_id);
+    } 
+    foreach ( $menu_items as $menu_item ) {
+        $page_ids[] = get_post_meta( $menu_item->ID, '_menu_item_object_id', true );
+    }
+    glm_page_menu(0, 'vertical dropdown menu',$page_ids);
+}
 ?>
index afd0497..988a463 100644 (file)
@@ -104,7 +104,39 @@ if ( ! function_exists( 'glm_theme_footer' ) ) {
  *
  * Grab the top level pages and their sub pages as the main navigation
  */
-function glm_page_menu($parent = 0, $class = '')
+//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 glm_page_menu($parent = 0, $class = '',$page_ids = [])
 {
     $menuConfig   = glm_get_menu_options();
     $frontPageId  = get_option('page_on_front');
@@ -118,17 +150,17 @@ function glm_page_menu($parent = 0, $class = '')
         'sort_order'  => 'asc',
         'sort_column' => 'menu_order'
     );
-    if ($parent == 0 && $menuConfig['menu_options']['main_level_pages']) {
-        $args['include'] = $menuConfig['menu_options']['main_level_pages'];
+   if ( !empty( $page_ids ) ){
+         $args['include'] = $page_ids;
     }
     $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 '<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children page_item_has_children page_item is-dropdown-submenu-parent opens-right">'."\n";
             echo '<a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a>'."\n";
-            echo glm_page_menu($page->ID, 'sub-menu dropdown');
+            echo glm_page_menu($page->ID, 'children sub-menu dropdown');
             echo '</li>'."\n";
         } else {
             echo '<li><a href="'.get_permalink($page->ID).'">'.$page->post_title.'</a></li>'."\n";
index 63c30df..4bb6b48 100644 (file)
@@ -1,5 +1,14 @@
 <aside class="left-off-canvas-menu hide-for-large-up">
     <?php glm_theme_mobile_off_canvas(); ?>
+<?php 
+   create_offcanvas_menu('footer');
+   create_offcanvas_menu('groups-media');
+   glm_page_menu(0,'vertical dropdown menu',155);
+?>
+        
+    
+    
+    
     <?php get_template_part('parts/search');?>
     <ul class="offcavas-social-list">