Members only section apply_filters fixed
authorLaury GvR <laury@gaslightmedia.com>
Fri, 8 Jul 2016 16:53:30 +0000 (12:53 -0400)
committerLaury GvR <laury@gaslightmedia.com>
Fri, 8 Jul 2016 16:53:30 +0000 (12:53 -0400)
functions.php
parts/glm-members-only-top-bar.php
parts/members-sidebar.php

index 7467c8a..0edaabb 100644 (file)
@@ -42,7 +42,6 @@ function glm_get_menu_options()
 
 register_nav_menus(array(
   'top-bar' => 'Site Navigation',
-  'members-side-menu' => 'Members Side Menu',
   //'mobile-off-canvas' => 'Mobile',
   'footer' => 'Footer'
 ));
@@ -190,26 +189,6 @@ class Mountpleasantcvb_Offcanvas_Walker extends Walker_Nav_Menu {
 }
 endif;
 
-if ( ! function_exists( 'mountpleasantcvb_members_side_menu' ) ) {
-  function mountpleasantcvb_members_side_menu() {
-      wp_nav_menu(array(
-          'container' => false,                           // remove nav container
-          'container_class' => '',                        // class of container
-          'menu' => '',                                   // menu name
-          'menu_class' => 'members-side-menu',              // adding custom nav class
-          'theme_location' => 'members-side-menu',        // 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)
-          'items_wrap' => '%3$s',
-          'walker' => new Mountpleasantcvb_Offcanvas_Walker()
-      ));
-      echo '</ul>';
-  }
-}
 /**
  * glm_page_menu
  *
@@ -320,6 +299,83 @@ function glm_site_scripts()
 
 }
 
+
+/*
+ * This function returns true when the current page is the page given by ID
+ *  or a descendent thereof.
+ */
+if (!function_exists('is_in_tree')) {
+    function is_in_tree( $pid ) {
+        global $post;
+        if ( is_page($pid) ) {
+            return true;
+        }
+        $anc = get_post_ancestors( $post->ID );
+        foreach ( $anc as $ancestor ) {
+            if( is_page() && $ancestor == $pid ) {
+                return true;
+            }
+        }
+        return false;
+    }
+}
+
+if ( ! function_exists( 'glm_members_only_menu')) {
+    function glm_members_only_menu() {
+        wp_nav_menu(array(
+            'container' => false,                           // remove nav container
+            'container_class' => 'members-only-menu',                        // class of container
+            'menu' => '',                                   // menu name
+            'menu_class' => 'members-only-menu',                             // adding custom nav class
+            'theme_location' => 'members-only-menu',             // 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' => 2,                                   // limit the depth of the nav
+            'fallback_cb' => false,                         // fallback function (see below)
+            'items_wrap' => '%3$s',
+            'walker' => new GLM_Members_Only_Walker()
+        ));
+    }
+}
+
+if ( ! class_exists( 'GLM_Members_Only_Walker' ) ) :
+class GLM_Members_Only_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;
+
 function is_post_type($type){
     global $wp_query;
     if($type == get_post_type($wp_query->post->ID)) return true;
index f9ad26c..bb67f35 100644 (file)
@@ -2,7 +2,7 @@
     <div class='glm-member-greeting'>Hello,     <?php $current_user = wp_get_current_user();echo $current_user->user_login ?>.</div>
     <a class='button glm-button' href="<?php echo wp_logout_url( home_url() ); ?>">Logout</a>
     <?php if (current_user_can("glm_members_member")) { ?>
-        <?php $glmAssociateTerms = apply_filters('glm_associate_terms');?>
+        <?php apply_filters('glm_associate_terms', $glmAssociateTerms);?>
         <a class='button glm-button' href='<?php echo get_admin_url() ?>admin.php?page=glm-members-admin-menu-member'>Enter <?php echo $glmAssociateTerms['term_member_cap']; ?> Admin Area</a>                        
     <?php } ?>
 </div>
\ No newline at end of file
index 4b56112..da2e5a7 100644 (file)
@@ -1,7 +1,9 @@
 <div id="menu-side" class="row collapse">
     <?php if (is_in_tree(get_option("glm_members_database_option_members_only_id"))) { ?>
         <h2> Members Only Area </h2>
+        <?php // glm_side_menu(); ?>
+        <?php if (current_user_can("glm_members_member")) { ?>
+            <?php glm_members_only_menu(); ?>
+        <?php } ?>
     <?php } ?>
-    <?php // glm_side_menu(); ?>
-    <?php mountpleasantcvb_members_side_menu(); ?>
 </div>
\ No newline at end of file