[buddypress-trac] [BuddyPress] #5122: Add Login/Logout/Register links to Appearance > Menus

buddypress-trac noreply at wordpress.org
Fri Sep 6 02:01:26 UTC 2013

#5122: Add Login/Logout/Register links to Appearance > Menus
 Reporter:  ubernaut                             |       Owner:
     Type:  enhancement                          |      Status:  new
 Priority:  normal                               |   Milestone:  1.9
Component:  Core                                 |     Version:
 Severity:  normal                               |  Resolution:
 Keywords:  has-patch needs-testing 2nd-opinion  |
Changes (by boonebgorges):

 * keywords:  has-patch needs-testing => has-patch needs-testing 2nd-opinion


 imath - Bravo! This is a really outstanding piece of reverse-engineering.
 The general technique is a little bit fragile (it depends on some
 specifics of the WordPress implementation of nav menus), but it is an
 extremely ingenious way of skirting the normal nav menu requirements.
 Really great work.

 I've cleaned up your patch, in the form of 5122.04.diff. This patch mostly
 improves the documentation and brings the code in line with WP/BP coding
 standards. I also broke `bp_get_nav_item_pages()` into two functions
 (instead of passing an awkward $selection parameter) and added some
 caching so that the pages wouldn't be built more than once on a page load.

 To the other devs: What imath has done here is, in a nutshell:
 - added a BuddyPress sidebar to Dashboard > Appearance > Menus
 - populated it with checkboxes for Log In/Log Out, Register, and all the
 top-level bp_nav links (like Messages, Friends, Groups, etc)
 - written a filter that will dynamically generate the appropriate links
 for the logged-in user and add them in the appropriate place in the nav
 menu on the front end. So, 'Messages' will not appear for logged-out
 users, while for 'boone' it will point to
 http://example.com/members/boone/messages; likewise, logged-in users will
 see 'Log Out' while logged-out ones will see 'Log In'.

 I think it's overall really clever and could be really useful to lots of
 site owners.

 One small interface question, which has a tricky underlying technical
 underpinning. I think it would be much clearer for the component-specific
 checkboxes to read "My Messages", "My Groups", etc, so as to distinguish
 them from the component directories like "Groups". However, while it's
 easy to tack on "My " in English, this won't work well in other languages.
 Play around with the interface a little to see if you agree.

Ticket URL: <https://buddypress.trac.wordpress.org/ticket/5122#comment:19>
BuddyPress <http://buddypress.org/>

More information about the buddypress-trac mailing list