Custom Front Pages for your users profiles

We’ve heard users profiles were a bit jealous about Groups custom front pages. So in BuddyPress 2.6.0, we’ve decided to give you a way to customize the home page of your members profiles directly from your theme using a specific template: the front.php template.

An example using the WordPress "Biographical Info" field

An example using the WordPress “Biographical Info” field

Simply put this template into a buddypress/members/single sub directory of your theme and “voilà”!

We also included a specific template hierarchy so that users can have different front pages according to their ID, their nicename or their member type! Read this codex page for more infos about it.

If your theme is overriding the buddypress/members/single/home.php template, you’ll need to update it (once 2.6.0 will be released!!) so that it includes the changes we’ve introduced to this template in 2.6.0.

If you are a developer and wish to know if a custom home page is displayed for a user, you can use the new conditional tag bp_is_user_front()

We hope you’ll like this new feature, you can read the full story about it on this ticket😉

#6769

BuddyPress 2.5.3 is now available:…

BuddyPress 2.5.3 is now available: https://buddypress.org/2016/05/buddypress-2-5-3/

Dev Chat Summary for May 18, 2016

BuddyPress 2.5.3

BuddyPress 2.6.0

  • Beta 1: May 25, 2016
  • Release Candidate 1 (string freeze): June 8, 2016
  • Release Date: June 15, 2016
  • There are currently 91 tickets slated for this dev cycle. (Closed: 70. Active: 21.)

Trac Tickets

Route /me/*/ to /members//*/ (#6325) @rayisme has patch and has created a new ticket (#7075) for the internationalization patch. Update: @rayisme has committed this feature to trunk.

BuddyPress Embeds for activity, user profiles, groups (#6772) @im4th noted the security concerns about the embedded embeds. @rayisme: “The right way is to dynamically replace the image with the embedded content. However, the WP model makes this hard since we start in an IFRAME to begin with.” @im4th mentioned that he was going to test the new patch. Update: @rayisme and @im4th have uploaded new patches.

Activity post form template improvements (#6680) @dcavins had posted screenshots after testing @rayisme‘s patch on the WP default and some premium themes. @boonebgorges: “It looks like the specific improvements in the ticket do break some things, so let’s not do it right now. But maybe we can revisit for the next release.” Update: Ticket punted to next dev cycle.

Administrator not able to delete user notifications (#7023) @rayisme requested dev feedback. @boonebgorges: “The change to `displayed` rather than `loggedin` seems right. It’s what we do everywhere else. If you need to add a param to all functions to make it work, so be it. Strategy seems fine.” @djpaulgibbs: “to my eyes that looks like it’s an in-progress ticket that I don’t need to pay much attention because I trust the people (Ray and David) working on it:)

Notifications: Pass the notification ID to the notification callback (#7066) @rayisme has patch but requires patch in (#7067) to resolve the issue. @boonebgorges gave the green light. Update: @rayisme has committed both to trunk.

Improved caching for group membership (#6327) @boonebgorges will look into this. In addition: “I commend @dcavins for pulling that into the milestone. Now I feel obligated to look at it. A quality of a good release lead :+1: ” Update: @boonebgorges has improvements to trunk.

Emails: real unsubscribe functionality (#6932) @djpaulgibbs wants to get this in for 2.6 and will take a look at progress early next week.

Date xprofile field enhancement (#5500) @boonebgorges and @djpaulgibbs discussed the patch and missing feedback from reporter. Update: Ticket punted to next dev cycle.

Add a “data-timestamp” attribute to all templates requiring timestamps (#5757) The discussion between @rayisme, @im4th, @boonebgorges, and @djpaulgibbs touched on the 2 new libraries introduced for this new feature – moment.js and livestamp.js – and who has the time to shepherd this for 2.6.0. Update: @rayisme has uploaded revised patch.

Blogs: Improvements to bp_blogs_record_existing_blogs() (#6270) @rayisme is ready to commit patch in ticket.

Widgets: add support for customizer selective refresh (#7030) Update: @rayisme has committed patch to trunk.

Creation of developer.buddypress.org (#6812) @tw2113 reported that he has uploaded everything he has locally to https://github.com/buddypress/developer.buddypress.org. @tw2113 and @djpaulgibbs discussed the items needed to update the theme for developer.buddypress.org.

Slack log: https://wordpress.slack.com/archives/buddypress/p1463598018002648

#dev-chat

General Summaries for May 11, 2016

This post covers the BP Template Pack meeting @ 18:00 UTC and Dev Chat @ 19:00 UTC along with the upcoming BP 2.5.3 and BP 2.6.0 releases.

BP Template Pack

Participants: @dcavins, @im4th, @hnla, and @mercime.

  • @im4th: created a new ticket for the Activity post form for the new Template Pack currently hosted on Github
  • @hnla: added some preliminary notes in the Template Pack Wiki
  • @im4th:  already using Ajax actions returning JSON replies.
  • @hnla: requested that for this new pack or new templates, “please, please, no mention of backpat as it concerns us not, it’s a dirty word and we don’t suffer it for this project.”
  • @dcavins: we should focus on the Messages screen and the Activity Post form for next week.
  • @im4th: with this new template pack, an important thing will be to check we’re accessibility-ready and include this in the roadmap.
  • @mercime: a new Template Pack Trac Ticket for good fortune when ready.
  • @dcavins proposed a weekly meeting to step up discussions. This was seconded by the other participants.

Next meeting: Wednesday, May 18, same time (18:00 UTC), same #buddypress Slack channel (Slack account is required).

Dev Chat

developer.buddypress.org (#6812) @tw2113 has set up a sample site at https://trexthepirate.com/buddypress/reference/ to get things rolling. @djpaulgibbs: “Once the theme is done and any custom plugins, Boone, John, or I will code review it, and push it out. We’ll then need to talk to meta and figure out how to run the initial import or parsing.” @djpaulgibbs created a new repository in Github at https://github.com/buddypress/developer.buddypress.org and @tw2113 has already uploaded a local copy for review.

A new API to manage single items navigation (#6534) Update: @boonebgorges has committed the awesome new nav API which replaces the old `bp_nav` and `bp_options_nav` system to trunk the day after the chat. Check out his illuminating commit message for particulars. This commit also fixes another trac ticket (#5103 Group slug and user’s subnav parent_slug trouble).

Group Types API (#6784) @boonebgorges got the consensus to ship the new Group Types API without a UI in the front end for the first release.  Update: @dcavins has uploaded the patch to add a metabox in the wp-admin Group edit screen for changing group type per discussion in chat.

BP Users front.php (#6769) @im4th followed up on feedback for his patch. @hnla said that he will be looking at this. Update: @hnla has posted feedback and @im4th has uploaded a new patch.

Emails: Passing an email address to `bp_send_mail()` does not render `{recipient.name}` token (#7044) @rayisme has patch and unit tests. @djpaulgibbs has posted feedback and mentioned during chat that this would probably go into BP 2.5.3.

Emails: Allow a custom `unsubscribe` token to be set directly in `bp_send_email()` (#7045) @rayisme noted that this ticket can be closed in favor of #6932 (Emails: real unsubscribe functionality).

BuddyPress Embeds for activity, user profiles, groups (#6772) @im4th mentioned that there are problems with iframe within iframe, i.e., when one embeds a video in the activity stream then embed this activity in a post.

Upcoming Releases

BuddyPress 2.5.3

  • There are currently 5 tickets slated. (Closed: 2. Active: 3.)
  • Release Date: TBA

BuddyPress 2.6.0

  • There are currently 95 tickets slated for this dev cycle. (Closed: 56. Active: 39.)
  • Beta 1: May 25, 2016
  • Release Candidate 1 (string freeze): June 8, 2016
  • Release Date: June 15, 2016

#dev-chat

BuddyPress Style Modules

Introducing an  initiative to provide community written styles for BuddyPress sites.

Today we are excited to launch the trial of a new project within Buddypress that sets out to provide an approach for people to develop small style snippets to enhance aspects of a BuddyPress site.

It is hoped that  development of styles under this approach will engage authors to create interesting new looks for BP components and provide users with a rich library of code snippets to enhance their site with.

Initially this is a trial to see whether we get sufficient interest in the concept to continue and develop further, perhaps enhancing the loading process with enqueueing of files based on directory scanning and loading of files as an array but run from the core theme compat class, removing the need for users to copy the loading functions to their functions file.

Provision of modules and use of them is entirely the discretion of the authors and users, while BP will run some basic checks on the module BP does not guarantee that the modules will work in all given situations or installs, or accept any liability in their use. Support for a module remains the responsibility of the author to ensure the continued effectiveness of the module with updates to themes, WP or BP.

Snippets is a loose term best thought of as styling parts of a BP screen or component without necessarily having to be concerned in managing the development of a whole theme and related styles.

An example of a style module may be found in the provided members list module that re-factors the member lists as  panel boxes in a grid layout, another could be a new look for the user profile entries, or even simpler updating certain elements in the activity list for font sizes. Importantly style modules can be as simple or complicated as one wants them or needs them to be, there is no stipulation on what constitutes a module in terms of provided styling, you do not need to be a coding guru we would encourage anyone to have a go if they have a good idea for enhancing an area of BuddyPress.

As a guide to what could be styled we could look at areas such as:

  • Activity posting form. The ‘what’s new’ form is ripe for styling and enhancing using a mixture of styles and scripting.
  • Activity Comments – new takes on presenting nested comments using styles and/or scripting.
  • Simply style an instance of the logged in user  – maybe make your own objects in lists etc less obvious using opacity, or conversely bring to prominence.
  • Style the new user types.

Authoring Modules

Anyone wishing to provide a module needs to look at the example module (the example  module may be used as it is fully functional) and study the guidance notes in the repo.

Having created your module you will open a ticket on bp trac and upload the module folder zipped along with readme.md and a screenshot, plus a basic description on the ticket of your module. A member of the core contribution team will review the module just to check some basic standards are adhered to and that the module works in respect of a standard WP theme, unless there is a clear statement that the module supports a given theme (preferably supporting a WP theme repo theme)

When the basic checks are finished the module would be included in the styles module repo on BP github and  listed on the  ‘Style Modules List‘ wiki page.

You can read more on the BP github repo and if there are any questions please use the comments in this post.

Users

Installing modules requires creating a  directory to hold them and then downloading the zip from the list link:

Modules are always located in the folder /style-modules/ so to use the members-list-module  you would need to create a folder structure that looks like this:
wp-content/my-theme/buddypress/style-modules/

You will then unzip the module into this style-modules directory.

In the modules readme file will be an example set of functions to enqueue your new modules styles and/or JS files, this is copied to a suitable point in your functions.php file.


We’re looking forward to submissions and are on standby to answer any questions that you may have regarding authoring or using style modules as they become available. Please feel free to use the comments on this post for general questions regarding this initiative or more specific questions can be raised   on the github issues tracker for the ‘style-modules’.

General Summaries for April 27 – May 4, 2016

This post covers the following meetings:
1. BP Template Pack on April 27 @ 18:00 UTC,
2. Dev Chat Summary on April 27 @ 19:00 UTC, and
3. Dev Chat Summary on May 4 @ 19:00 UTC.

BP Template Pack Meeting

Participants: @dcavins, @hnla, @im4th, and @mercime

  • @im4th: will open a new task about the activity post form to summarize what he has in mind so that we can discuss it.
  • @mercime: Google spreadsheets with screenshots of pages with current UI and how we would address each one of the component pages … then attach images of screens addressed in the next-template-pack for comparison
  • @hnla: has a draft of basic outline on bpdevel (not for publication at this time).
  • Use the Github repo Wiki pages for documentation
  • Review some wireframes made by @karmatosed in 2012 which already have feedback from the community as shown in BP Trac, bpdevel, and Github. We have to decide whether any of those can still be used or whether it would be better to make new wireframes.
  • Process: Discovery -> Design -> Development -> Launch.

Next meeting: Wednesday, May 11, same time (18:00 UTC), same #buddypress channel in Slack.

Dev Chat, April 27

A new API to manage single items navigation (#6534) @im4th has patch. Dev feedback requested. “The patch is replacing nav arrays with a new class. and make sure the nav is attached to an item ID. The user id for the displayed user nav or the group ID for the current group. Group nav and displayed user nav are separated – meaning there are no more slug collisions.” @boonebgorges and @im4th had a long discussion on the implementation in this Slack log. @im4th and @rayisme have uploaded patches after the meeting.

BP Users front.php (#6769) Kudos to @im4th from @rayisme and @boonebgorges for the mystery group avatar. @dcavins and @hnla said that they will test the patch and post feedback.

Dev Chat, May 4

A new API to manage single items navigation (#6534) @boonebgorges will be checking out the progress and at “how much we need to support old ways of reaching into the `bp_nav` and `bp_options_nav` globals and spending some time formalizing the various compatibility breaks with unit tests” Update: @boonebgorges has uploaded a new patch with unit tests.

BP Users front.php (#6769) @im4th has patch. Positive feedback during dev chat, testing welcome.

Audit all DB fetch methods to return integers where appropriate (#6977) @rayisme has patch. Work on this is about 90% done.

bp_send_email function not working with numeric string for $to argument (#7042) Will leave decision of ticket status to @djpaulgibbs.

BuddyPress Embeds for activity, user profiles, groups (#6772) @rayisme requested feedback on the display of the embeds in the template as well as the embeds template. Update: @mercime has posted feedback and @im4th has uploaded revised patch.

Screen notifications settings page (#6712) @rayisme: “I need to refresh #6712. @djpaulgibbs‘ feedback in the ticket was quite helpful for future iterations. I’m not sure if this can make 2.6 or not.”

Use WP page names for BP directory pages headings (#6765) Discussion between @hnla, @johnjamesjacoby, @im4th, and @boonebgorges resulted in the decision that this enhancement would require an migration for existing installations when they upgrade while new installations will get the shorter page names.

BuddyPress Style Modules: @hnla has provided the example one so it’s clear how they work and are formatted etc. at https://github.com/hnla/style-modules/tree/master/members-list-module. Update: A new Style Modules repo has been added to the BuddyPress account at https://github.com/buddypress/style-modules

Slack log: https://wordpress.slack.com/archives/buddypress/p1461780248000496

#dev-chat

General Summaries for April 13 – 20, 2016

This post covers the following meetings:
1. New Template Pack, April 13,
2. Dev Chat, April 13,
3. BuddyPress Work Party, April 14, and
4. Dev Chat, April 20.

New Template Pack

We held the first meeting to discuss the new template pack an hour before our regular Dev Chat as scheduled. Members of the core team shared expectations and observations about the new BuddyPress template pack based on what @im4th has accomplished so far in his next-template-pack plugin. The plugin already has an option for end users in the back end to either use bp-legacy templates or use the new template pack and it uses handlebars templating but like email tokens, you can only work with what you have in the JSON payload.

 The initial discovery phase touched on the following items:

  • modularized template pack with some theme goodies sprinkled in
  • put all the new features in next-template-pack including improved UI, compatible with latest BP/WP versions, and all the accessibility baked in.
  • modern JS and CSS, works really nicely with the idea of the CSS snippets library, too … making the whole experience more flexible and easily customizable
  • general agreement that the new template packs don’t have to be beholden to bp-legacy backward compatibility
  • core files  still have to honor the parent theme styles
  • modular CSS – BP  pattern library
  • make a list of the kinds of things we need to output, so we can work to unify styles as much as possible, see http://alistapart.com/blog/post/getting-started-with-pattern-libraries
  • planning documents: Google Docs, bpdevel, Trac tickets
  • identifying core markup to use/move
  • move next-template-pack to BuddyPress github account
  • manifesto with project scope and implementation plan
  • Shoot for the moon. “I’d say let’s not be circumspect (with anything). Let’s go for it, then throttle back what we have to,” per @dcavins

Next meeting: Wednesday, April 27,  same time (18:00 UTC), same #buddypress channel in Slack.
Update: See additional notes in the April 20 Dev Chat at the bottom of this post for the Template Pack meeting next week.

Dev Chat

BuddyPress 2.5.3

  • There are three tickets in queue with improvements to BP Email.
  • Release date: TBA

Email Subject special characters display problem with initiator.name token (#6966). This is the only ticket left open for this minor release. @dcavins, @djpaulgibbs, and @rayisme discussed about the feasibility of adding emoji support in BP Emails. Need to check which email providers and mobile clients show emojis. @rayisme has volunteered to work on this ticket.

BuddyPress 2.6.0

  • There are 115 tickets currently slated for this cycle (32 closed. 83 open)
  • Beta 1: May 25, 2016
  • Release Candidate 1 (string freeze): June 8, 2016
  • Target Release Date: June 15, 2016

Route `/me/*/` to `/members//*/` (#6325) @rayisme has patch for the redirection.

Minimum WP version bump for BP 2.6 (#7013) @dcavins reminded all re @boonebgorgespost: BP 2.6.0 will require WP 4.1 or higher.

filter for $after_member_slug in bp-core-catchuri.php (#6694) Has patches by @dcavins, @boonebgorges, and @rayisme. Needs testing/feedback.

Use “Mystery Group” avatar when group avatar not available (#6372) Has patches by @abweb and @boonebgorges. Feedback welcome.

Activity post form template improvements (#6680) Has patches by @rayisme and @mercime. @dcavins has posted before and after-patch screenshots of the Twenty-* themes and premium themes to address some backpat concerns. Comments on the ticket are welcome.

Re backward compatibility from @boonebgorges: “I think we should try to differentiate between different kinds of (potential) backward compat breaks for templates. some are minor, while others are debilitating. some will simply be a case of a custom template not receiving new features, while others will break markup so that stuff like JS no longer works.” Weigh potential gains from the break “on a case-by-case basis . If we were never willing to break compatibility, we’d never fix any bugs:)

Accessibility: Update Heading Structure in Template Files (#6871)  @mercime asked for the consensus of the team.  @boonebgorges, “My position is that if we can demonstrate that the styling changes are minimal in the Twenty themes, it’s fair evidence that it’s a change with fairly low negative impact. This also assumes that the a11y benefits are meaningful, which I’m relying on your judgment for.” @djpaulgibbs noted, “BuddyBoss and a UK agency have both told me that the heading changes that have gone into 2.6 will require them to update all their sites/themes. I am not trying to be against improvements. But it’s a fine line.  I am just saying if we are committing to making such significant changes to the main markup, we need to communicate that NOW and way better than we ever have before. Because honestly we’ve always changed stuff and broken it. It has had little to no documentation, generally. As Boone said, we need to look at the impact of each change on its own basis.”

BP Template Versioning (#6642) @djpaulgibbs and @hnla discussed  @im4th‘s work in documenting template changes in the file header in ticket as well as versioning of the template files like Woo does.

Add BP top level menu and Admin Page to Improve User Experience (#6827) @mercime will upload new patch.

Creation of developer.buddypress.org (#6812) @tw2113 would like to get this going sometime soon, “Essentially we need to get a final destination set up, run a parser scan on the latest stable version, and then comb the website for inconsistencies and things needing changed also work on any sort of triggers/automation to update the source there and re-parse.”

BuddyPress Work Party

Route `/me/*/ to /members//*/` (#6325) @rayisme has uploaded new patch. Dev feedback needed.

Comment notification NOT notified (#6057) @im4th has uploaded new patch. Dev feedback needed.

Cover Image location is incorrect for blogs other than the primary blog (#6931) @im4th has uploaded new patch. Dev feedback needed.

Extending Messages notification should be improved (#6750) @rayisme committed patch to trunk.

Profile Cover not working when we define a custom BP_XPROFILE_SLUG (#6962) @rayisme committed patch to trunk.

fatal error: bp_blogs_record_existing_blogs (#6940) @rayisme has closed the ticket in favor of #6370 below.

Blogs: Improvements to bp_blogs_record_existing_blogs() (#6370) Has new patch by @rayisme. @johnjamesjacoby has given feedback in ticket.

Add aria attributes for dashicons in Components screen (#7017) @mercime has committed patch to trunk.

Dev Chat – April 20

Notifications for activity stream comments and replies (#6057) @im4th has patch plus screenshots uploaded and would like to get this new feature in for 2.6. @boonebgorges has posted feedback in ticket. Feedback in Slack was very positive with some suggestions on inline documentation. Looks like this will be fixed soon.

BP Users front.php (#6769) @im4th has uploaded screenshots and the first patch for this new feature. @hnla and @dcavins have mentioned testing and providing feedback soon.

bp_notifications_get_notifications_for_user() bug (#7020) @rayisme has patch.  Testing and feedback welcome.

Route `/me/*/ to /members//*/` (#6325) @boonebgorges has posted feedback for @rayisme‘s patch.

filter for $after_member_slug in bp-core-catchuri.php (#6694) Fix has been committed to trunk by @boonebgorges during dev chat.

BP Template Versioning (#6642) @dcavins: “Need to settle on the format/requirements for the template versioning, we could tag all of the templates, before we come up with our super jam for how to help site owners realize their templates are no longer up to the current high standards.” @boonebgorges “The minimum that needs to be decided for the process to start is what header format we’re going to use. Questions about how we inform users, how we assemble changelogs, etc – these can wait. On the other hand, Inline changelog + summary changelog with each version may be enough.”

Allow admin to select fields to display in user “excerpts” on Groups’ user list page (#4126) @boonebgorges mentioned the UX considerations in the ticket proposed by @oc2ps require admin-level tools (which we don’t currently have) for site owners to modify the way that BP content looks on the front end. Comments/thoughts about whether it’s the kind of thing we want to do are welcome.

@booneborges noted that “if we’re going to introduce something like this into BP, it would have to be an actual interface where you could customize things and it would extend to interfaces other than member directories, in the long run. I think the answer for this ticket is that it’s not a route we can comfortably go down given our current approach to templates.”

Date xprofile field enhancement (#5500) @boonebgorges mentioned that this ticket has a new patch which “has some promise, but will need extensive rewriting to fit with BP/WP standards (not just coding standards, but architecture). I will try to take some time in the next couple weeks to pore over it, but if anyone has time in the meantime, feel free.”

Screen notifications settings page (#6712) Has patches. @rayisme requested for dev feedback.

Additional notes for next week’s Template Pack Meeting

  •  @johnjamesjacoby: “I’d like to propose that in whatever new template pack is built, that no `do_action()` calls exist in template parts, and if we find ourselves wanting them, we architect a better solution inside of the API.”
  • Use “magic hooks” from @johnjamesjacoby, “anywhere we need `before/after` actions in templates, is a place where a new template part should exist, and `bp_get_template_part()` should fire its own `before/after` actions before & after every part is successfully pulled in.”
  • On the other hand, @boonebgorges noted, “Here’s another take on this. If you are a WordPress developer, you know that if you see a `do_action()`, you can make something appear there by calling `add_action()`. If we introduce micro-APIs for every little thing, it obfuscates what is currently a fairly simple process.” @im4th added, “without overriding the full template. That’s the good part of the `do_action` i agree.”

#dev-chat