functions and js update
authorIan Weller <ian@gaslightmedia.com>
Mon, 19 Oct 2015 19:29:06 +0000 (15:29 -0400)
committerIan Weller <ian@gaslightmedia.com>
Mon, 19 Oct 2015 19:29:06 +0000 (15:29 -0400)
root/footer.php
root/functions.php
root/js/custom/pageSetup.js

index e4855e2..a4ca64a 100644 (file)
@@ -7,7 +7,7 @@
                             </div>
                         </footer>
                     </main><!--End of main-->
-                </div><!--End of shadow-->
+                </div><!--/.shadow-wrapper-->
                 <div id="copyright" class="small-12 text-center row columns">
                     <span>&copy; <?php echo date('Y');?> {%= title %}</span>
                     <span class="bullet"> &#8226; </span>
@@ -15,7 +15,7 @@
                     <span class="bullet"> &#8226; </span>
                     <span> Produced by <a target="_blank" href="http://www.gaslightmedia.com">Gaslight Media</a></span>
                 </div>
-            </div>
+            </div><!--/#page-wrapper-->
         <a class="exit-off-canvas"></a>
         </div><!--End of inner-wrap-->
       </div><!--End of off-canvas-->
index 8edc962..4868803 100644 (file)
@@ -78,6 +78,85 @@ function glm_page_menu($parent = 0, $class = '')
     echo '</ul><!-- end -->'."\n";
 }
 
+register_nav_menus(array(
+  'top-bar' => 'Site Navigation',
+  //'mobile-off-canvas' => 'Mobile',
+//  'footer' => 'Footer'
+));
+
+if ( ! function_exists( 'feature_top_bar' ) ) {
+  function feature_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 Feature_Top_Bar_Walker()
+      ));
+  }
+}
+if ( ! class_exists( 'Feature_Top_Bar_Walker' ) ) :
+class Feature_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 ) {
+        $item_html = '';
+        parent::start_el( $item_html, $object, $depth, $args );
+
+        // Insert style to display page's thumbnail
+        $item_style = '';
+        if ($depth == 0 && has_post_thumbnail((int)$object->object_id)) {
+            $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id((int)$object->object_id), 'bpla-drop-down');
+            //$item_style .= "<style>#menu-item-".$object->ID." > .dropdown:before { background-image: url('".$thumbnail[0]."');</style>";
+        }
+        //$output .= ( 0 == $depth ) ? '<li class="divider"></li>' : '';
+        $classes = empty( $object->classes ) ? array() : (array) $object->classes;
+        if ( in_array( 'label', $classes ) ) {
+            //$output .= '<li class="divider"></li>';
+            $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 );
+        }
+        if ($item_style) {
+            $output .= $item_style;
+        }
+        if ($depth == 0 && has_post_thumbnail((int)$object->object_id) && $object->has_children) {
+            $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id((int)$object->object_id), 'bpla-drop-down');
+            $item_html .= '<script>var img_for_menu_' . $object->ID . ' = "' . $thumbnail[0] . '";</script>';
+            //$item_html .= '<pre>' . print_r($object, true) . '</pre>';
+        }
+        $output .= $item_html;
+    }
+
+    function start_lvl( &$output, $depth = 0, $args = array() ) {
+        if ($depth == 0) {
+            $output .= "\n<ul class=\"sub-menu dropdown\">\n";
+            $output .= "\n<li class=\"image-placeholder\">";
+            $output .= "</li>\n";
+        }
+    }
+
+}
+endif;
 /**
  * Return the client info option for the given key
  *
index 741d565..dde383c 100644 (file)
@@ -8,4 +8,12 @@ $(document).ready(function () {
         $(this).toggleClass('open');
         $(this).siblings('ul').toggleClass('open');
     });
+    $('.top-bar-section').find('ul.sub-menu.dropdown').each(function (){
+        var menuImg = $(this).parent('li').prop('id');
+        var menuNum = menuImg.match(/\d+/)[0];
+        var menuImgSrc = 'img_for_menu_' + menuNum;
+        $(this).find('li.image-placeholder').html('<img src="' + eval(menuImgSrc) + '">');
+        console.log('ul = ' + menuImg);
+        console.log('menu-id = ' + menuNum);
+    });
 });