BuddyPress 2.1

BuddyPress was updated to version 2.1, from version 2.0.2. Changelog:

2.0.3

  • Fixed security vulnerability related to unserialization of user-generated input during the group creation process.

2.1

  • New @mentions interface – type a @ when leaving a status update or commenting on an activity item or blog post, and the new suggestions panel will open.
  • Set better passwords with the password strength meter on the registration and user settings pages.
  • New “URL” XProfile field type.
  • Continued performance enhancements, particularly on the Members and Groups directories.
  • Higher quality translations (automatically fetched by WordPress), courtesy of our translation volunteers.
  • When attempting to @-mention someone, open a suggestions panel allowing the user to select the user to mention.
  • Add search support in AJAX “Load More” and “Load Newest” activity actions.
  • Ensure that the ‘Comments’ dropdown filter on the activity directory includes new- and old-style comment activity.
  • Disable calculating the total activity count when fetching activity items by default. The count is not necessary for the majority of use-cases and adds an overall, performance benefit.
  • Overhaul caching for user last_activity values.
  • Disable activity reply threading if WP comment threading is disabled.
  • Specify logged-in user when getting first name for “What’s new?” activity prompt.
  • Activity dropdown filters are now dynamically generated instead of hardcoded into templates. See new function – bp_activity_show_filters().
  • Members admin: Introduce “Extended Profile” tab on a user’s profile. This allows admins to edit various BuddyPress information about a user including XProfile fields, the user’s avatar and their user status in the Dashboard.
  • Members admin: Allow admins to edit other admin profiles.
  • Groups admin: Add a Permalink row and a “Visit Group” button.
  • Groups admin: Improve logic for adding a user to a group in the Dashboard.
  • Groups admin: Various minor UX improvements.
  • Do not interfere with WordPress sign-up process when the user is created from the blog or the network administration (#5789)
  • Better slug collision detection when registering a site on a multisite subdirectory install and the root profiles feature is enabled.
  • Updating a blog post will now properly create an excerpt for the activity item instead of using the entire post’s content.
  • Formally deprecate the BuddyBar.
  • Improved image size detection for uploaded avatar images.
  • Rename “Avatar” to “Profile Photo”.
  • For BP buttons, the block_self parameter should not block buttons when inside a members loop on one’s own profile.
  • Remove relational “prev” and “next” links when on a BuddyPress page.
  • Performance enhancements when querying friendship status in a member loop.
  • On multisite, do not register the Friends widget for non-root blogs.
  • Correctly generate pagination links when using AJAX and search terms have been set.
  • Overhaul access and visibility control for group tabs.
  • Performance enhancements when querying whether a user is banned from a group during a groups loop.
  • Improve private group message for non-members.
  • For the Groups widget, allow max number of groups to work when greater than 20.
  • Disable group avatars if WordPress’ “Show Avatars” setting is disabled.
  • Rename the frontend group’s “Admin” navigation menu to “Manage” to disambiguate the string.
  • Add password strength meter to registration page.
  • Add username to activation email.
  • Do not render non-existent registration sub-pages.
  • Do not add “new_member” activities if xProfile component is disabled.
  • For private message notifications, check that thread ID exists before attempting to link to it. Fixes debug notices and incorrect links when a message thread is deleted before notifications are marked as read.
  • For private message notifications, add singular form for “You have x new private messages”.
  • Don’t make links in message excerpts clickable.
  • Allow users to private message themselves.
  • Introduce new “URL” profile field type.
  • Only show the xprofile field group tabs in edit mode if there is more than one field group.
  • Fix redirect when an admin uploads an avatar to another user’s profile.
  • Fix profile fields not rendering if their value is “0”.
  • When a user attempts to change their email address, the new address requires email verification before the change is applied.
  • Add password strength meter to a user’s settings page.
  • Better compatibility with themes that load their template content in advanced ways, like Stargazer.
  • Abort duplicate AJAX requests if “Activity > Load More” button is clicked multiple times in succession.
  • Fix bug where activity comments were not being shown to anonymous users.
  • Fix notice when replying to private group activity updates via AJAX.
  • Add ability to query activity items by date.
  • In bp_has_activities(), show default to show_hidden=true for members of a group.
  • In bp_get_activity_user_link(), check user properties before attempting to use the function.
  • In bp-legacy, fix oEmbeds not being rendered when the “Read more” item is clicked in the activity stream.
  • Purge activity comment cache when an activity comment is deleted.
  • Clear activity comment cache when adding an activity comment with bp_activity_add().
  • Introduce bp_activity_delete_url() function.
  • Introduce bp_activity_member_display_name() function.
  • Improvements to bp_activity_user_can_delete() function.
  • In bp_get_activity_comment_permalink(), check that activity comment exists, and fallback on the regular activity permalink if it doesn’t.
  • In bp_activity_user_can_delete() check if user_id is set before comparing current user ID.
  • In bp_activity_can_comment_reply(), check for and allow an empty $comment parameter, and set to bp_activity_current_comment().
  • User signups: Allow plugins to add a custom column to the “User > Manage Signups” page.
  • Activity admin: Organize activity action filters by component.
  • XProfile admin: Generate list of xprofile field types that support options for Field Admin, rather than hardcoding.
  • XProfile admin: Add action hooks for plugin developers.
  • XProfile admin: Pass the proper user_id when setting up xprofile meta boxes on the Community Profile Dashboard panel.
  • Groups admin: Use bp_moderate capability to determine whether a group can be deleted.
  • Members admin: Audit admin/bp-members-classes.php.
  • Members admin: Fix notice in `BP_Members_Admin::remove_signups_from_user_query()` method.
  • Set default search terms before function params are parsed in bp_has_blogs().
  • Improvements to bp_blogs_record_existing_blogs().
  • Improvements to bp_blogs_total_blogs_for_user().
  • Introduce ‘active_format’ parameter for bp_get_blog_last_active().
  • Introduce ‘latest_format’ parameter for bp_get_blog_latest_post().
  • Pass parsed parameters to ‘bp_has_blogs’ filter.
  • Pass parsed parameters to ‘bp_blogs_record_activity_content’ filter.
  • Add activity meta when recording a blog post or blog comment.
  • Introduce bp_blogs_get_allowed_roles() and bp_get_current_blog_roles().
  • Use bp_get_total_blog_count_for_user() when setting up blog nav.
  • Fix notice when activating a member with no role on a multisite configuration.
  • Fix warning when updating “Close Comments Days Old” option.
  • Introduce Suggestions API. This replaces the inline solutions previously used in the Private Messages component and in the Groups admin dashboard and also powers the new activity at-mentions interface.
  • Untangle some load order and mutual dependency issues between component loaders.
  • Introduce ‘no_access_url’ parameter to bp_core_new_subnav_item().
  • Allow bp_register_template_stack() / bp_deregister_template_stack()to be called from class methods.
  • Add new search_wildcard parameter to BP_User_Query.
  • Make sure BP_User_Query returns correct results when search term contains the ampersand character.
  • Refactor all uses of like_escape() to use bp_esc_like(). like_escape() is deprecated in WordPress 4.0.
  • Fix bug where wp_signups table would not get created on single-site installations when the DO_NOT_UPGRADE_GLOBAL_TABLES define is set.
  • Fix bp_is_current_component_core() to reference BP core components.
  • Fix issues with bp_core_time_since().
  • Change the default value of bp_disable_profile_sync() to false.
  • Don’t attempt to overload add_root property in bp_core_add_root_component().
  • When creating directory page mappings, check for and use pages that already exist with a matching slug.
  • More conservative page_template checks in bp_is_current_component().
  • Add return values for bp_update_option() and bp_delete_option().
  • Fix issues with redirect link for login / logout links on subdirectory installs.
  • In bp_is_group(), make sure the Groups component is active before trying to get current group.
  • Fix notices when the root profiles feature is enabled.
  • In bp_core_load_template(), only use locate_template for older bp-default themes.
  • Separate out registering and enqueuing of WP Toolbar styling.
  • Add parent and child menu CSS classes to BuddyPress navigation menus.
  • In BP_Component::includes(), ensure dynamic action fires even when $includes array is empty.
  • Fix ability to query for users by letter and also exclude certain users.
  • Prevent debug notices in bp_get_avatar_to_crop_src() when there is no uploaded avatar to crop yet.
  • Officially deprecate bp_avatar_upload_form(). This function has not been used for several years and calls a function that no longer exists.
  • Update BuddyPress’ development trunk (buddypress.svn.wordpress.org/trunk) to a Grunt-powered build system.
  • During unit test bootstrap, rework the way the WP tests directory is inferred to support WP_DEVELOP_DIR.
  • For those running BuddyPress’ development trunk, support symlinking the main buddypress directory.
  • Improved Travis CI performance.
  • Remove translation POT file from development trunk.
  • Add .editorconfig file, see http://editorconfig.org/.
  • i18n: Improvements to strings across all components.
  • Various phpDoc improvements.
  • Various WordPress coding standards.
  • Introduce ‘group_activity’ sort order for group member queries.
  • Add support for disabling pagination in BP_Groups_Group::get() by passing per_page=-1.
  • BP_Group_Extension should automatically handle redirects after the ‘edit’ screen save routine.
  • Introduce bp_group_is_invited() function.
  • Introduce ‘bp_groups_get_orderby’ and ‘bp_groups_get_orderby_converted_by_term’ filters to allow group order to be customized in a groups loop.
  • Clean up parsed meta query in BP_Groups_Group::get_meta_query_sql().
  • Cache results for `BP_Groups_Member::get_group_administrator_ids()`. This leads to performance enhancements when viewing a group loop and the logged-in user is a member of each group.
  • Allow empty string to be passed to the ‘search_terms’ parameter in the bp_group_has_members() loop.
  • Allow group member avatar functions to pass an array of arguments.
  • Fix bug related to the use of the ‘compare’ operator when querying groups by meta query.
  • Refactor BuddyPress user ID functions to use WordPress’s get_user_by() function instead of direct database queries.
  • Standardize placement of ‘bp_get_activity_latest_update_excerpt’ filter.
  • Use raw member count, not formatted number, when localizing via _n() in bp_get_members_pagination_count().
  • Move blog subdomain base functions to the Members component to ensure site registration will work even if the Blogs component is inactive.
  • Properly deprecate original notifications functions out of members component and back into core.
  • Fix incorrect filter name in bp_get_member_registered().
  • Allow a custom string to be passed into the ‘active_format’ parameter in bp_get_member_last_active().
  • Introduce bp_get_the_thread_message_css_class() template function.
  • Introduce bp_the_thread_message_sender_id().
  • Introduce bp_the_thread_message_date_sent().
  • Introduce bp_message_thread_last_post_date_raw().
  • Pass userdata variable to message content filters when sending notifications.
  • Fix notices in messages_format_notifications().
  • Allow bp_has_notifications() loop to support all available parameters.
  • Fix inability to limit the maximum number of visible notifications.
  • Introduce bp_the_notification_delete_url() and bp_get_the_notification_delete_url().
  • Introduce bp_the_notification_mark_read_url() and bp_the_notification_mark_unread_url().
  • Introduce bp_notifications_get_all_notifications_for_user().
  • Introduce BP_XProfile_Field_Type::display_filter() and implement in BP_XProfile_Field_Type_Datebox class.
  • Introduce BP_XProfile_Field_Type::pre_validate_filter() and implement in URL field type.
  • Introduce bp_the_profile_field_ids().
  • Fix issue when passing multiple group IDs to the exclude_groups parameter in BP_XProfile_Group::get().
  • Purge profile group cache when profile groups are reordered.
  • Allow plugin devs to set the option_order parameter in xprofile_insert_field().
  • Don’t skip filter in BP_XProfile_Field::get_children() when no children are found.
  • When a user’s profile is updated, correctly pass the fields’ previous values to the xprofile_updated_profile action.
  • Add extra arguments to the xprofile_data_value_before_save and xprofile_filtered_data_value_before_save filters.
  • Introduce bp_xprofile_get_groups() procedural wrapper for BP_XProfile_Group::get().
  • Add state CSS classes to xprofile field visibility elements.
  • Add field-specific CSS classes to xprofile field divs in register.php.
  • Add CSS class to xprofile fields indicating whether they are required.
  • In bp_get_the_profile_field_ids(), make sure field group has fields before attempting to pluck ID’s from it.
  • Remove inline jQuery ScrollTo, Cookie and Querystring scripts and properly enqueue them.
  • Fix invalid HTML markup on step 2 of the “Create Group” form.
  • Fix CSS for form label widths.
  • Remove extraneous colon from registration template.
  • Wrap ‘Everything’ text in em dashes to more appropriately match other default select options.
  • Remove text-zoom override from default responsive theme-compat styling.