Hi!
Please join our development meeting today (February 17) at 19:30 UTC. It will happen in #BuddyPress. Here are the points we will discuss about during 30 minutes :
- 7.2.0 Maintenance release,
- 8.0.0 Progress.
See you there 😉
Hi!
Please join our development meeting today (February 17) at 19:30 UTC. It will happen in #BuddyPress. Here are the points we will discuss about during 30 minutes :
See you there 😉
Hello!
BuddyPress 7.0.0 “Filippi” has just been delivered, enjoy it 🍕 ! Thanks again to all contributors who helped us to build it and translate it 😍, here’s the official announcement post:
We started the dev chat chacking our progress about our next major release tasks.
Tasks | Owner | Progress |
---|---|---|
BP REST API documentation updates | @im4th | 100% |
BP Survey results | @im4th | 100% |
7.0.0 Release note | @vapvarun | 100% |
7.0.0 Credits update: – BuddyPress Trac – BP REST GitHub repository – Translators | @dcavins @im4th @im4th | 100% 100% 100% |
7.0.0 Pizza Restaurant name | @dcavins | 🤫 |
7.0.0 Announcement post | @im4th | 20% |
The main goal of this release candidate is to beta test improvements brought to the BP Nouveau’s compatibility with the WordPress 5.6 new default theme “Twenty Twenty-One” (see #8395). @im4th insisted on the fact it was important to make sure text was readable in both modes : dark and light and as the 7.0.0 final release will happen one or two days after WordPress 5.6, it’s important BuddyPress looks nice in Twenty Twenty-One. The initial patch attached to the ticket is using the companion stylesheet feature so that styles are only loaded for this theme or this theme’s child themes.
@vapvarun said he would test the patch asap and that he would probably improve it. That’s what he did a few days after the development meeting.
The RC2 was released very soon after.
We still need to finish the announcement post of the release, so we couldn’t have it packaged to the scheduled date 😞. As soon as it is ready, we will package it. Thanks in advance for your comprehension.
Topics we’ve been talking about:
It will happen on December 16 at 19:00 UTC and of course in #BuddyPress. If you have ideas or questions, feel free (and we are strongly encouraging you) to comment this summary to share them!
This is our last chance to test 7.0.0 before it’s officially released! Let’s do it 🕺🏻
Thanks in advance for your contributions 🥰
Hi BuddyPress contributors!
Please join the #BuddyPress developer meeting that will happen on December 2 at 19:00 UTC (tomorrow), here’s our agenda:
Thanks in advance for your contributions 🤝.
BuddyPress 6.4.0 has been released yesterday, as we’ve been discussing during the development meeting, it includes fixes to PHP 8.0 deprecated notices for BP Core & BP REST. It also includes a security fix. Read more about this release.
Tasks | Owner | Progress |
BP REST API documentation updates | @im4th | 100% |
BP Survey results | @im4th | 0% |
7.0.0 Release note | @vapvarun | 40% |
7.0.0 Credits update: – BuddyPress Trac – BP REST GitHub repository – Translators | @dcavins @im4th @im4th | 100% 100% 0% |
7.0.0 Pizza Restaurant name | @dcavins | 🤫 |
7.0.0 Announcement post | @im4th | 20% |
@vapvarun has been working on the release note, the remaining things to write is the changelog. @johnjamesjacoby removed the link to the BP Survey on our official site, @im4th needs to write a post about the results and publish it on BuddyPress.org asap.
We’ve spent the rest of the meeting working on getting the 7.0.0-RC1release ready:
7.0.0-RC1 has been released 2 days late (November 20) according to the initial schedule. It’s an important step, BuddyPress plugin/theme authors should really test their piece of work against it so that our users can fully enjoy 7.0.0. If you find a bug, please open a ticket to report it on our Trac environment or use this support topic.
RC1 also marks the string freeze point of the 7.0.0 release schedule. So we will not add/edit or delete i18n strings until 7.0.0 is released. Just like what we did for 6.0.0, we will credit people who contributed to translating BuddyPress into as many languages as possible. Don’t hesitate to join the effort!
Here’s 7.0.0 (development column on GlotPress) translation tops so far:
Locale | Progress |
English 🇬🇧 | 100% |
Romanian 🇷🇴 | 100% |
French 🇫🇷 | 100% |
Chinese 🇨🇳 | 99% |
Czech 🇨🇿 | 98% |
It will happen on December 4 at 19:00 UTC and of course in #BuddyPress. If you have ideas or questions, feel free (and we are strongly encouraging you) to comment this summary to share them!
The first release candidate of BuddyPress 7.0.0 is ready for your testing!
Thanks in advance for your contributions 😍
Hi BuddyPress contributors!
Please join the #BuddyPress developers meeting that will happen on November 18 at 19:00 UTC (tomorrow), we’ll have 1 hour to talk about:
Thanks in advance for your time 😍.
First of all, the Developer documentation has been updated according to the latest improvements we’ve brought to the BuddyPress REST API!
If the Friends component is active and you’re wondering what’s the answer to this question, then you can get a clue thanks to a new property we’ve added to the Members item schema: friendship_status_slug
.
Here’s an example of use of this new property:
/**
* Showing the `friendship_status_slug` Members Endpoint's schema property.
*/
function test_bp_rest_api() {
wp_enqueue_script( 'bp-api-request' );
wp_add_inline_script(
'bp-api-request',
'bp.apiRequest( {
path: \'buddypress/v1/members\',
type: \'GET\',
data: {
context: \'view\',
type: \'active\',
exclude: [2]
}
} ).done( function( data ) {
data.forEach( function( member ) {
console.log( member.name + \' => \' + member.friendship_status_slug );
} );
} ).fail( function( error ) {
return error;
} );'
);
}
add_action( 'bp_enqueue_scripts', 'test_bp_rest_api' );
As you can see in the above browser’s inspector, the logged in user is :
friendship_status_slug: 'not_friends'
),friendship_status_slug: 'pending'
),friendship_status_slug: 'awaiting_response'
),friendship_status_slug
: 'is_friend'
).There’s now a new request argument you can use to know these information : populate_extras
. You simply need to set it to true
to do so. The response will include these extra properties:
last_activity
object which contains 2 properties: date
: the date the user was last active,timediff
: a human diff string, eg: “20 minutes ago”.latest_update
object which contains 3 properties:id
: the ID of the activity,raw
: the content of the activity as it exists into the database.rendered
: the content of the activity ready for output.total_friend_count
variable which contains the number of friends of the user (integer)Here’s an example of use of this new request argument:
/**
* Showing the `populate_extras` Members/:user_id request argument.
*/
function test_bp_rest_api() {
wp_enqueue_script( 'bp-api-request' );
wp_add_inline_script(
'bp-api-request',
'bp.apiRequest( {
path: \'buddypress/v1/members/2\',
type: \'GET\',
data: {
context: \'view\',
populate_extras: true
}
} ).done( function( member ) {
console.log( \'Last activity:\' );
console.log( member.last_activity );
console.log( \'Latest activity update:\' );
console.log( member.latest_update );
console.log( \'Total number of friends:\' );
console.log( member.total_friend_count );
} ).fail( function( error ) {
return error;
} );'
);
}
add_action( 'bp_enqueue_scripts', 'test_bp_rest_api' );
Yes you can! You simply need to use a comma separated list of Member Types into the member_type
request arggument when updating/creating the user.
Here’s an example for the first case:
/**
* Showing the `member_type` request argument for the members/:user_id endpoint.
*/
function test_bp_rest_api() {
wp_enqueue_script( 'bp-api-request' );
wp_add_inline_script(
'bp-api-request',
'bp.apiRequest( {
path: \'buddypress/v1/members/2\',
type: \'PUT\',
data: {
context: \'edit\',
member_type: \'leads,developers\'
}
} ).done( function( member ) {
console.log( \'Member Types\' );
console.log( member.member_types );
} ).fail( function( error ) {
return error;
} );'
);
}
add_action( 'bp_enqueue_scripts', 'test_bp_rest_api' );
Yes, it’s /buddypress/v1/groups/me
. Querying it you’ll get a list of these groups for the current user.
Here’s an example about how to use it:
/**
* Showing the groups/me endpoint.
*/
function test_bp_rest_api() {
wp_enqueue_script( 'bp-api-request' );
wp_add_inline_script(
'bp-api-request',
'bp.apiRequest( {
path: \'buddypress/v1/groups/me\',
type: \'GET\',
data: {
context: \'view\'
}
} ).done( function( groups ) {
console.log( \'My Groups\' );
groups.forEach( function( group ) {
console.log( group.name );
} );
} ).fail( function( error ) {
return error;
} );'
);
}
add_action( 'bp_enqueue_scripts', 'test_bp_rest_api' );
Juste like for the Members Endpoints (GET Members & GET Member), there’s now a new request argument you can use to know these information : populate_extras
. You simply need to set it to true to do so. The response will include these extra properties:
total_member_count
: the count of all Group members,last_activity
: the date the Group was last active,last_activity_diff
: the human diff time the Group was last active.Here’s an example about how to use it:
/**
* Showing the `populate_extras` Groups/:group_id request argument.
*/
function test_bp_rest_api() {
wp_enqueue_script( 'bp-api-request' );
wp_add_inline_script(
'bp-api-request',
'bp.apiRequest( {
path: \'buddypress/v1/groups/1\',
type: \'GET\',
data: {
context: \'view\',
populate_extras: true
}
} ).done( function( groups ) {
groups.forEach( function( group ) {
console.log( \'Last activity date:\' );
console.log( group.last_activity );
console.log( \'Last activity time diff:\' );
console.log( group.last_activity_diff );
console.log( \'Total number of group members:\' );
console.log( group.total_member_count );
} );
} ).fail( function( error ) {
return error;
} );'
);
}
add_action( 'bp_enqueue_scripts', 'test_bp_rest_api' );
The PUT verb of the Groups/:group_id endpoint now supports 2 new request arguments to achieve this:
append_types
: a string containing the Group Type name to append to existing group’s Group Types. To append more than one Group Type, use a comma separated list of Group Type names.remove_types
: a string containing the Group Type name to remove to existing group’s Group Types. To remove more than one Group Type, use a comma separated list of Group Type names.Here’s an exemple of appending Group Types to the one that is already assigned to the group:
/**
* Showing the groups/:group_id update method new request arguments.
*/
function test_bp_rest_api() {
wp_enqueue_script( 'bp-api-request' );
wp_add_inline_script(
'bp-api-request',
'bp.apiRequest( {
path: \'buddypress/v1/groups/1\',
type: \'PUT\',
data: {
context: \'view\',
append_types: \'team,pizzalovers\'
}
} ).done( function( groups ) {
console.log( \'The initial + appended group types:\' );
groups.forEach( function( group ) {
console.log( group.types );
} );
} ).fail( function( error ) {
return error;
} );'
);
}
add_action( 'bp_enqueue_scripts', 'test_bp_rest_api' );
Yes, to filter the fetched activities (GET Activities) on one action/type, you need to set the type collection parameter to an array containing the corresponding action/type. For more than one action/type, include all the needed actions/types into the array used as the type collection parameter.
Here’s an example of how to achieve this:
/**
* Showing the activity streams filtered on 2 actions/types.
*/
function test_bp_rest_api() {
wp_enqueue_script( 'bp-api-request' );
wp_add_inline_script(
'bp-api-request',
'bp.apiRequest( {
path: \'buddypress/v1/activity\',
type: \'GET\',
data: {
context: \'view\',
type: [\'activity_update\', \'friendship_created\', \'friendship_accepted\']
}
} ).done( function( activities ) {
console.log( \'Updates and created friendships:\' );
activities.forEach( function( activity ) {
console.log( activity.id + \' => \' + activity.type );
} );
} ).fail( function( error ) {
return error;
} );'
);
}
add_action( 'bp_enqueue_scripts', 'test_bp_rest_api' );
groups
when fetching group activities about a specified group_id
request argument?No! From now on the group_id is enough, of course you can still alternatively use a request (GET Activities) having the primary_id
argument set to the ID of the group and the component argument set to groups
.
Here’s an example about how you can use this request argument:
/**
* Showing the activity streams filtered on a specific group.
*/
function test_bp_rest_api() {
wp_enqueue_script( 'bp-api-request' );
wp_add_inline_script(
'bp-api-request',
'bp.apiRequest( {
path: \'buddypress/v1/activity\',
type: \'GET\',
data: {
context: \'view\',
group_id: 1
}
} ).done( function( activities ) {
console.log( \'Group Activities:\' );
activities.forEach( function( activity ) {
console.log( activity.id + \' => \' + activity.component );
} );
} ).fail( function( error ) {
return error;
} );'
);
}
add_action( 'bp_enqueue_scripts', 'test_bp_rest_api' );
And last but not least, we’ve added a new route to let users create a blog (POST Blog) when the Network option is allowing it, read more about it from our freshly updated Developers documentation.
PS: if you want to get all examples at once, here’s a Gist.
Hi everyone!
BuddyPress 7.0.0-beta2 is ready for your testing, thanks in advance for your help 🍕 😍