Allow activity filter dropdown to be wider.

This prevents the filter text from breaking to a second line in themes with
slightly larger default font sizes, such as Twenty Fifteen.

Props colorful tones.
Fixes #6075.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9252 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Core: Introduce new class - `BP_Recursive_Query`.

`BP_Recursive_Query` is a new abstract class based off of work done in
WordPress 4.1 to support the creation of advanced SQL clauses (nested
clauses and multiple operators).  See:
https://core.trac.wordpress.org/ticket/29642#comment:6

The `BP_XProfile_Query` class already uses a version of this class.  The
goal is for `BP_XProfile_Query` to extend `BP_Recursive_Query` in a future
commit (see https://buddypress.trac.wordpress.org/ticket/5839#comment:9).
Also, the activity component will be the next to use the class to support
advanced filtering (#4988).

Props boonebgorges.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9253 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Activity: Improve PHPDoc formatting for BP_Activity_Activity::get().

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9254 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Activity: Improve PHPDoc formatting for bp_has_activities().

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9255 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Activity: Introduce new class - `BP_Activity_Query`.

`BP_Activity_Query` is a helper class, which extends the
`BP_Recursive_Query` class, for generating complex queries against data in
the activity database table.

A `'filter_query'` argument has been introduced to the `bp_has_activities()`
stack to support the use of `BP_Activity_Query` across the majority of
activity fetching functions.

See #4988.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9256 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Activity: Support multiple scopes in `bp_has_activities()`.

This commit:
* Allows the `'scope'` parameter to support multiple scopes.  For example, `scope=friends,mentions`.  This can be a comma-delimited string or an array.
* Makes the `'scope'` parameter available across the `bp_has_activities()` stack.  Previously, `'scope'` was only available for use in the `bp_has_activities()` loop.
* Parses scopes using the `BP_Activity_Query` class to handle complex conditions.
* Allows components to declare their own custom activity scopes.  Components can also override existing activity arguments by setting the `'override'` key in their scope callback.  For an example, see how the friends component declares the `'friends'` scope in `bp_friends_filter_activity_scope()`.  Previously, it was not possible for components or third-party plugins to declare their own scopes without doing a fair bit of workarounds.

See #4988.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9257 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add unit tests for `'scope'` and `'filter_query'` arguments for `bp_has_activities()`.

See #4988.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9258 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add missing @since tag for activity_loop_start.

See #5938.


git-svn-id: https://buddypress.svn.wordpress.org/trunk@9259 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Make sure paginate links are correctly set in case javascript is disabled

Adding extra query arguments to the 'base' parameter of the {{{paginate_links()}}} function when javascript is disabled is preventing the loops to be correctly paginated. In this particular case, the pagination is 'stuck' on the second page. To be sure the pagination is correctly set, we need to pass extra query arguments using the 'add_args' parameter of the {{{paginate_links()}}} function.

Fixes #5967

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9260 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Core: adjust `bp_modify_page_title()` so that it can be used safely after the `wp_head` action.

The function is used to set the value for the page's `<title>` element, but it currently throws a PHP Notice if it's used after the `wp_head` action is triggered.
This is because `bp_core_sort_subnav_items()` (hooked to `wp_head`) re-keys the global `$bp->bp_options_nav` array; the keys are changed from strings to integers representing the desired order of the menu items.

Fixes #6077

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9261 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Travis: use Travis-CI's container-based infrastructure.

This may help to improve performance (how quickly it takes for the entire suite of tests to complete).
See http://docs.travis-ci.com/user/workers/container-based-infrastructure/.

Fixes #6078, props tw2113 and netweb.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9262 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add a PHP-agnostic version of `array_replace_recursive()` in `BP_Activity_Activity`

r9257 implemented the ability to query activity items by multiple scopes.
`array_replace_recursive()` is a function that is used in the above commit
to help override certain arguments in the activity loop by scopes. However, `array_replace_recursive()` is a PHP 5.3 function and BuddyPress (and
WordPress) currently supports a minimum version of PHP 5.2.

This commit adds a PHP-agnostic version of `array_replace_recursive()` for
internal use by the `BP_Activity_Activity` class.  This helps to avoid
fatal errors for those using PHP 5.2 and to fix up our unit tests.

Anti-props r-a-y.

See #4988.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9263 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Activity: Fix wrong variable from r9257.

Ugh!

See #4988.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9264 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add hook documentation in admin/bp-memmbers-classes.php.

Props tw2113.
See #5944.


git-svn-id: https://buddypress.svn.wordpress.org/trunk@9265 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add hook documentation in bp-members-actions.php.

Props tw2113.
See #5944.


git-svn-id: https://buddypress.svn.wordpress.org/trunk@9266 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add hook documentation in bp-members-admin.php.

Props tw2113.
See #5944.


git-svn-id: https://buddypress.svn.wordpress.org/trunk@9267 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add hook documentation in bp-members-classes.php.

Props tw2113.
See #5944


git-svn-id: https://buddypress.svn.wordpress.org/trunk@9268 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add hook documentation in bp-members-filters.php.

Props tw2113.
See #5944.


git-svn-id: https://buddypress.svn.wordpress.org/trunk@9269 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add hook documentation in bp-members-functions.php.

Props tw2113.
See #5944.


git-svn-id: https://buddypress.svn.wordpress.org/trunk@9270 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Add hook documentation in bp-members-screens.php.

Props tw2113.
See #5944.


git-svn-id: https://buddypress.svn.wordpress.org/trunk@9271 cdf35c40-ae34-48e0-9cc9-0c9da1808c22