[6094]
|
johnjamesjacoby
|
Format `bbp_get_reply_title()` like `bbp_get_topic_title()`.
|
[6087]
|
johnjamesjacoby
|
Moderation: Skip moderator query if per-forum moderation is not enabled.
Props jmdodd. Fixes #2988.
|
[6068]
|
johnjamesjacoby
|
Use `length-zero-no-unit` over `number-zero-length-no-unit` in `.stylelintrc`.
Deprecated in 7.0 of stylelint.
|
[6067]
|
johnjamesjacoby
|
Bump stable tag to 2.5.10.
|
[6066]
|
johnjamesjacoby
|
Tag bbPress 2.5.10.
|
[6065]
|
johnjamesjacoby
|
Bump `bbpress.pot` in 2.5 branch.
|
[6064]
|
johnjamesjacoby
|
Bump bbPress 2.5 branch version to 2.5.10.
|
[6063]
|
johnjamesjacoby
|
Escape `display_name` field usages in `bbp_get_author_link()`. (2.5 branch)
|
[6062]
|
johnjamesjacoby
|
Escape `display_name` field usages in `bbp_get_author_link()`.
|
[6058]
|
johnjamesjacoby
|
Core: Revert accidental removal of r6054 from r6056.
|
[6057]
|
johnjamesjacoby
|
Users: Revert accidental removal of r6051, r6052, from r6056.
|
[6056]
|
johnjamesjacoby
|
Moderators: Refactor per-forum moderators to use meta-data instead of mocked taxonomy terms.
If the future of Forums is a taxonomy (vs. a custom post-type) then a per-forum Moderator taxonomy for a Forum taxonomy won't work very well, for a few reasons:
* Scalability
* Taxonomies for taxonomies is a bit more inception than should be required for this simple feature
* Forum moderators do not require much of what taxonomy objects provide (permalinks, visibility, metadata, etc...)
* User taxonomy terms matching nicenames works okay for something like Automattic's P2 theme, but bbPress requires a user ID based solution to avoid data synchronization issues between nicenames & term slugs
So... the future of per-forum per-user capability mappings is in meta-data using `map_meta_cap`.
This commit:
* Removes the `forum_mod` taxonomy and surrounding code additions introduced in the first pass in r5834
* Renames `forum_mod` functions to `forum_moderator` to be more explicit
* Adds CRUD wrapper functions for per-forum moderator meta data
* Adds administrative interfaces for assigning moderators to forums for `wp-admin` and forum `edit` pages
* Adds helper functions for getting user nicenames & IDs
Note that this feature has now been refactored to no longer be forum specific (I.E. object agnostic) -- it's possible for any user access to be mapped based on the object type using any meta-data key. While this is currently useful for per-forum moderators, it may be user for per-topic blocking, per-topic-tag moderation, etc...
See #459.
|
[6039]
|
johnjamesjacoby
|
Core: pass the original text into `bbp_make_clickable` filter.
|
[6033]
|
johnjamesjacoby
|
`WP_Screen::post_type` is always set since WordPress 3.3.0, so remove superfluous checks in `bail()` methods.
|
[6032]
|
johnjamesjacoby
|
Moderators: pass current forum/topic/reply ID into `moderate` capability checks, providing additional context about what's being moderated so more targeted decisions can be made.
See #459.
|
[6027]
|
johnjamesjacoby
|
Statuses, Types, Visibilities: `bbp_get_topic_types()` usages were missed in r6026.
See #2954.
|
[6026]
|
johnjamesjacoby
|
Statuses, Types, Visibilities: Pass the forum, topic, or reply ID into helper functions.
These ID's pass additional context into respective filters, useful for fine-grained control over UI elements.
This commit normalizes the way these functions work across all of bbPress where applicable, by ensuring all similar functions accept an ID and assume `0` by default. Note that there are currently 2 locations where no ID exists to pass context into, which is by design.
Fixes #2954.
|
[6024]
|
johnjamesjacoby
|
Forums: Updates to `bbp_list_forums()`:
* Always run filter, even over empty output
* Only wrap output if not empty
* Ensure that `$count` related variables are accurately reset during each loop iteration
* Surrounding code clean-up
Fixes #2951.
|
[6023]
|
johnjamesjacoby
|
Tag bbPress 2.5.9.
|
[6019]
|
johnjamesjacoby
|
Update `bbpress.pot` for 2.5 branch.
|
[6018]
|
johnjamesjacoby
|
Bump 2.5 branch to 2.5.9.
|
[6017]
|
johnjamesjacoby
|
Bump stable tag in `trunk` to 2.5.9.
|
[6016]
|
johnjamesjacoby
|
Common: Use `bbp_make_clickable()` in `bbp_make_clickable()`.
In r6014, changes to support faster, better @-mentions mistakenly continued to use `make_clickable()`. This fixes that regression, and allows for smaller chunks of large topics & replies to continue to use bbPress's internally optimized clickable API.
|
[6015]
|
johnjamesjacoby
|
Mentions: Refactor the way user mentions are discovered and linked.
This is a port of r6014 (without unit tests) for the 2.5 branch.
* Adds a filter to bbp_make_clickable
* Adds filters for for previously hard-coded clickables
* Adds new filter for at-mention clickable
* Deprecates previous functions for finding & linking at-mentions
For 2.5.9 (2.5 branch). Hat-tip to Daniel Cid.
|
[6014]
|
johnjamesjacoby
|
Mentions: Refactor the way user mentions are discovered and linked.
* Adds a filter to `bbp_make_clickable`
* Adds filters for for previously hard-coded clickables
* Adds new filter for at-mention clickable
* Deprecates previous functions for finding & linking at-mentions
For 2.6 (trunk). Hat-tip to Daniel Cid.
|
[6013]
|
johnjamesjacoby
|
Common group.
|
[6012]
|
johnjamesjacoby
|
Nonce functions are part of the `common` component.
|
[5935]
|
johnjamesjacoby
|
Add Composer support. Fixes #2712.
|
[5933]
|
johnjamesjacoby
|
Akismet: include title with content. Props cfinke. Fixes #2858.
|
[5932]
|
johnjamesjacoby
|
Admin: Swap `%d` for `%s` in `bbp_filter_dashboard_glance_items()`.
This changeset fixes a bug causing numbers to be truncated at the first non-numeric character.
Fixes #2857.
|
[5930]
|
johnjamesjacoby
|
Topics: sanity check `$_REQUEST` and introduce list-table methods for reply table-navigation.
This changeset fixes a potential debug notice introduced in r5886, and removes unused functionality inherited from `WP_List_Table`.
Fixes #2842. See #2587.
|
[5926]
|
johnjamesjacoby
|
Favorites: Purge cache when adding/removing a favorite.
This changeset fixes a bug where cache was not busted, causing incorrect results to be returned & displayed.
Props thebrandonallen. See #2855.
|
[5909]
|
johnjamesjacoby
|
Add `@package` and `@subpackage` to file headers where missing; rename if inconsistent; move to bottom of PHPDoc blocks where appropriate. See #WP27262.
|
[5908]
|
johnjamesjacoby
|
Sniffer: Whitespace around variables in arrays.
|
[5907]
|
johnjamesjacoby
|
Common: bring `bbp_verify_nonce_request()` up to speed with improvments in BuddyPress.
See #buddypress6528. Props r-a-y.
|
[5906]
|
johnjamesjacoby
|
BuddyPress: Remove `@todo`s that are todone or todon'ts.
|
[5905]
|
johnjamesjacoby
|
BuddyPress: Introduce `BBP_Forums_Group_Extension::update_group_forum_visibility()` to keep group forum visibility in alignment with BuddyPress Group visibility.
This changeset ensures that when a BuddyPress Group's visibility changes, it's bbPress forum visibility changes along with it. This avoids a UX issue where Group visibility and Forum visibility could become misaligned when updating a Group.
Props boonebgorges. Fixes #2599.
|
[5904]
|
johnjamesjacoby
|
Admin: Register color schemes based on bbPress plugin path vs. WordPress source. Fixes #2847.
|
[5903]
|
johnjamesjacoby
|
Admin: Do not register color schemes when running from source.
This changeset prevents the color picker UI from appearing (and not working) when running WordPress from it's `/src` directory.
See #2847.
|
[5902]
|
johnjamesjacoby
|
Users: Add tests for user permalink functions. Props thebrandonallen. See #2831.
|
[5901]
|
johnjamesjacoby
|
Topics: Add `edit_reply` capability check to "Edit" row-action link. See #2842.
|
[5900]
|
johnjamesjacoby
|
Users: Remove superfluous `home_url()` calls introduced in r5815. Also fixed:
* Replaced `bbp_get_user_profile_url()` with `bbp_get_user_profile_edit_url()` in `bbp_user_profile_edit_link()`
* Fixed `bbp_favorites_permalink()` by using `bbp_get_user_favorites_slug()` instead of `bbp_get_user_favorites_rewrite_id()`
Props thebrandonallen. See #2831.
|
[5899]
|
johnjamesjacoby
|
Tools: Use `_admin_search_query()`. See #2841.
|
[5892]
|
johnjamesjacoby
|
Tools: Add `id` attribute to "Run" link. Props tharsheblows. See #2841.
|
[5886]
|
johnjamesjacoby
|
Topics: First pass at metabox for replies in single-topic edit
* Includes `topic-replies` list-table class
* Includes helper functions for hooking things in
* Todo: cap checks or row-actions, maybe bulk-actions, formatting clean-up
See #2842.
|
[5885]
|
johnjamesjacoby
|
Tools: Update "Repair Tools" to use a list-table UI:
* Includes helper functions for: search, filtering, and bulk actions
* Improves tool registration by including strings and feedback into an array stored in `bbpress()->admin->tools`
* Introduces "Overhead" property for alerting Key Masters to the performance impact running each tool
* Introduces "Components" properties for identifying which counts what tools are intersecting
* Todo: use a `WP_List_Table` subclass (which bbPress has avoided needing until now)
See #2841.
|
[5884]
|
johnjamesjacoby
|
Admin: Update `h2` to `h1` and remove `icon32` compatibility.
This changeset improves accessibility and brings bbPress's admin area headers up to par with WordPress 4.3.
Fixes #2840. See #WP31650.
|
[5868]
|
johnjamesjacoby
|
Strings: prefer `—` over parenthesis when wrapping "No" style results.
This changeset normalizes the strings used to pick the parent of a forum, topic, and reply. The `—` may be changed later to improve localization, but for now this provides a good balance of visual separation and familiar UX.
|
[5867]
|
johnjamesjacoby
|
Strings: Switch from "Freshness" to "Last Post" in the `default` theme-compatibility templates.
This changeset updates the column header text used to describe the last activity of a forum/category or topic in bbPress's `default` theme-compatibility (which includes details beyond just the timestamp) making "Last Post" more contextually accurate compared to "Freshness" which still makes sense within the dashboard (which currently only shows the timestamp.)
Fixes #2031.
|
[5866]
|
johnjamesjacoby
|
Prefer `current_filter()` over `current_action()` to maintain compatibility with WordPress versions older than 3.9. Fixes #2529.
|
[5860]
|
johnjamesjacoby
|
Topics: fallback on `post_parent` in `bbp_update_topic_walker()`.
This changeset fixes a bug where forum topic counts were not updated when topics were permanently deleted, causing hidden topic counts to be wildly inaccurate.
Props thebrandonallen. Fixes #2529.
|
[5859]
|
johnjamesjacoby
|
Replies: fallback on `post_parent` in `bbp_update_reply_walker()`.
This changeset fixes a bug where topic reply counts were not updated when replies were permanently deleted, causing hidden reply counts to be wildly inaccurate.
Props thebrandonallen. Fixes #2529.
|
[5858]
|
johnjamesjacoby
|
Queries: Clean up post status concatenation in 2 queries.
This changeset moves array of "hidden" type post-statuses into their own variable to better match existing usages.
Fixes #2826.
|
[5857]
|
johnjamesjacoby
|
BuddyPress: Check for missing activity component when looking for an activity stream item.
This changeset fixes a bug that would result in duplicate activity stream items when editing a topic or reply.
Props r-a-y. Fixes #2690.
|
[5856]
|
johnjamesjacoby
|
Forums: Introduce `bbp_update_forum_visibility` action in `bbp_save_forum_extras()`
This changeset provides custom visibilites with an execution point to perform their own actions.
Fixes #2740.
|
[5855]
|
johnjamesjacoby
|
Forums: Fix copy-pasta filter names.
This changeset corrects filters used in 2 `apply_filters()` calls to properly match their function names.
Props netweb. Fixes #2688.
|
[5854]
|
johnjamesjacoby
|
Templates: Add before & after hooks to user templates parts.
This changeset makes it easier to add custom text & HTML before & after user details.
Props netweb. Fixes #2537.
|
[5853]
|
johnjamesjacoby
|
Moderation: reduce moderation restriction from `keep-gate` to `moderate` in `bbp_check_for_moderation()`.
This changeset ensures that moderators are able to bypass the forum moderation, seeing as how they can self-approve topics & replies anyways.
Props netweb. Fixes #2726.
|
[5852]
|
johnjamesjacoby
|
Capabilities: add `delete_posts` mappings to `delete` topic & reply checks.
This changeset ensures that capable users can delete their own topics & replies, when these capabilities are explicitly allowed already.
Props netweb, gusrb84. Fixes #2685.
|
[5851]
|
johnjamesjacoby
|
Admin: Check that the user can view the About page before adding the toolbar item.
This changeset ensures that only capable users will see the link to bbPress's admin-area "About" page.
Props ocean90. Fixes #2836.
|
[5850]
|
johnjamesjacoby
|
Admin: Add `hidden_post_status` field back to topic & reply metaboxes, and use `draft` or current post status as value.
This changeset fixes a bug that caused topics & replies to be marked as edited when moderated via `wp-admin`.
Hat-tip tharsheblows. Fixes #2741.
|
[5849]
|
johnjamesjacoby
|
BuddyPress: Add all topic statuses to `bbp_filter_modify_page_title()`.
This changeset fixes a bug that only allowed published topics to be queried in group forums.
Props netweb. Fixes #2699.
|
[5848]
|
johnjamesjacoby
|
BuddyPress: Pass the currently logged in user ID when creating toolbar links. See #2713.
|
[5847]
|
johnjamesjacoby
|
BuddyPress: Do not filter admin toolbar URLs if not on BuddyPress root blog.
This changeset addresses a multisite implementation issue where user profiles would link to invalid URLs when BuddyPress is network activated and bbPress is active on the non-root blog.
Props imath. Fixes #2713.
|
[5846]
|
johnjamesjacoby
|
BuddyPress: Do not filter profile URLs if not on BuddyPress root blog.
This changeset addresses a multisite implementation issue where user profiles would link to invalid URLs when BuddyPress was network activated and bbPress was active on the non-root blog.
Props imath. See #2713.
|
[5845]
|
johnjamesjacoby
|
Widgets: Add class to forum widget to indicate if item in list is the current forum being viewed.
Props dimitrov.adrian, netweb. Fixes #2536.
|
[5844]
|
johnjamesjacoby
|
Add unit test for last topic & reply ID's for topics & forums. Fixes #2806. Props netweb.
|
[5843]
|
johnjamesjacoby
|
Installation: When creating initial content, use the same `current_time( 'mysql' )` for all new posts.
This changeset prevents the related unit test from incorrectly failing by ensuring that no initial content is created 1 second after any other.
|
[5842]
|
johnjamesjacoby
|
IDs: Some reply functions still default to their topics if no replies are present. This functionality has slowly been removed over time and built into respective functions. In this changeset, we remove those leftover assignments and update a few phpdoc descriptions as needed.
Hat-tip netweb. See #2806.
|
[5841]
|
johnjamesjacoby
|
Moderation: Fix some copy-pasta and make sure form terms are formatted correctly. See #459.
|
[5840]
|
johnjamesjacoby
|
In `BBP_Akismet::filter_post_terms()` use `bbp_get_topic_tag_names()` to use cached function instead of querying for object terms.
|
[5839]
|
johnjamesjacoby
|
Moderators: Rename `bbp_get_forum_mod_ids()` to `bbp_get_forum_moderator_ids()` to better match unabbreviated forum equivalent. Also update phpdoc & refactor some logic to use cached functions. See #459.
|
[5838]
|
johnjamesjacoby
|
Moderators: Introduce functions for theme-side setting & getting of forum mods for `form-forum.php`. See #459.
|
[5837]
|
johnjamesjacoby
|
Terms: Update functions for getting terms & term names to be more flexible & reusable by other functions. See #459.
|
[5836]
|
johnjamesjacoby
|
Moderators: Add forum moderators field to `form-forum.php` template part. See #459.
|
[5835]
|
johnjamesjacoby
|
Moderators: Introduce `none` argument for topic-tags & forum-mods list functions.
This change allows for passing text or HTML to output if no taxonomy terms are found, and uses this new functionality in `wp-admin` to show per-forum moderators in the list-table column, also reducing code duplication.
See #459.
|
[5834]
|
johnjamesjacoby
|
Moderators: First pass at per-forum moderators.
This commit introduces a powerful feature commonly found in other popular forum software that has been on our wishlist for nearly 9 years. It includes the following changes:
* Custom `forum-mod` taxonomy for assigning user nicenames to forum IDs
* Associated functions for defining capabilities, labels, etc...
* New capability filters for ensuring forum moderators have the ability to moderate forums even without the `moderator` role assignment
* New option for toggling the entire feature on/off (on by default)
Props jmdodd, netweb. See #459.
|
[5833]
|
johnjamesjacoby
|
Add ability to use icons as column headers ala Comment bubbles (off by default.)
|
[5832]
|
johnjamesjacoby
|
Add future support for forum/topic/reply dashicon column headers to `admin.css`.
|
[5829]
|
johnjamesjacoby
|
I think this building should be condemned. There's serious metal fatigue in all the load-bearing members, the wiring is substandard, it's completely inadequate for our power needs, and the neighborhood is like a demilitarized zone.
|
[5828]
|
johnjamesjacoby
|
Akismet: Clean up potential accidental inline assignment in `BBP_Akismet::check_post()`.
This commit moves a variable assignment out of a comparison to improve code clarity.
|
[5827]
|
johnjamesjacoby
|
Abstraction: Use `bbp_db()`, `bbp_rewrite()` & friends, introduced in r5823 & r5826.
This commit improves the stability of bbPress in the WordPress environment by reducing global variable exposure. It also comes with minimal opcode improvements in some circumstances where `$GLOBALS` is preferred over defining via `global` statements.
Some additional surrounding cleanup directly related to functions & methods being altered is also being performed here.
Fixes #2786.
|
[5826]
|
johnjamesjacoby
|
Introduce `bbp_get_global_object()` to help with verifying & retrieving global variables before interacting with them. See #2786.
|
[5825]
|
johnjamesjacoby
|
Update incorrect phpdoc block in `bbp_update_reply_position()`.
|
[5824]
|
johnjamesjacoby
|
Remove incorrect `@global` tag in `BBP_Akismet::submit_post()`.
|
[5823]
|
johnjamesjacoby
|
Introduce `core/abstraction.php` to provide a layer of protection against touching common WordPress global variables directly.
This commit introduces a few new helper functions to protect sensitive global variables, and also introduces the ability to filter and override them explicitly within the scope of the bbPress plugin. These functions will be used in place of existing global touches in future commits.
See #2786.
|
[5822]
|
johnjamesjacoby
|
BuddyPress: Use `bbp_get_paged_slug()` instead of `$wp_rewrite->pagination_base` directly.
|
[5821]
|
johnjamesjacoby
|
Make a statement without saying a word. (!)
|
[5820]
|
johnjamesjacoby
|
Queries: Remove `post_parent__in` query-parameter filter.
This commit removes the `bbp_query_post_parent__in()` filter that was introduced in r2996, and uses WordPress core's built in query parameters introduced in #WP11056.
Fixes #2832.
|
[5815]
|
johnjamesjacoby
|
Users: Use `bbp_get_user_profile_url()` to avoid code duplication.
This commit removes duplicated code used to build user profile URLs & eliminates several superfluous string replacements. It works with pretty & unpretty permalinks, and plays nicely with the BuddyPress extension for linking to a member's forum sections.
Fixes #2831.
|
[5814]
|
johnjamesjacoby
|
Users: Remove `is_email()` check from user query parsing.
This commit removes the ability to load a user profile via their email address. This feature (added in r2917) was a convenience mechanism to make finding a user within the forums with a known address easier, but times have changed and we now consider this to be a privacy concern by default.
Note: this will break backwards-compatibility for installations that may have used this unpublicized (and regrettably unwise) feature.
Fixes #2828. Hat-tip netweb. For 2.5.8 (2.5 branch)
|
[5813]
|
johnjamesjacoby
|
Users: Remove `is_email()` check from user query parsing.
This commit removes the ability to load a user profile via their email address. This feature (added in r2917) was a convenience mechanism to make finding a user within the forums with a known address easier, but times have changed and we now consider this to be a privacy concern by default.
Note: this will break backwards-compatibility for installations that may have used this unpublicized (and regrettably unwise) feature.
See #2828. Hat-tip netweb. For 2.6 (trunk)
|
[5809]
|
johnjamesjacoby
|
Admin: Remove `_nopriv_` ajax actions.
This commit ensures that admin-area AJAX suggestion results are never presented to logged-out users.
(Note: these requests already have nonce & capability checks on them, so this bit of hardening is only useful to installations that have modified roles & capabilities outside of what is considered to be normal operating parameters, allowing logged-out users to also be forum moderators.)
Hat-tip glynwintle. See #2827. For 2.6.0 (trunk)
|
[5808]
|
johnjamesjacoby
|
Admin: Remove `_nopriv_` ajax actions.
This commit ensures that admin-area AJAX suggestion results are never presented to logged-out users.
(Note: these requests already have nonce & capability checks on them, so this bit of hardening is only useful to installations that have modified roles & capabilities outside of what is considered to be normal operating parameters, allowing logged-out users to also be forum moderators.)
Hat-tip glynwintle. See #2827. For 2.5.8 (2.5 branch)
|
[5807]
|
johnjamesjacoby
|
BuddyPress Groups: Backport r5560 to 2.5 branch (for 2.5.8) for improved PHP5 compatibility and to avoid a debug notice.
Props boonebgorges.
|
[5806]
|
johnjamesjacoby
|
Users: Add hardening to `bbp_edit_user_handler()` super-admin grant/revoke action when editing a user's profile.
This commit ensures only super-administrators that also have the `manage_network_options` capability are able to modify another user's super-administrator privilege.
(Note that `bbp_edit_user_handler()` has several other conditional checks to prevent privilege escalation here, and this change is only useful for installations that modify core role & capability behavior via third-party plugins in such a way as to have bungled the capabilities of multisite super-administrators.)
Props glynwintle. For 2.5.8 (2.5 branch)
|
[5805]
|
johnjamesjacoby
|
Users: Add hardening to `bbp_edit_user_handler()` super-admin grant/revoke action when editing a user's profile.
This commit ensures only super-administrators that also have the `manage_network_options` capability are able to modify another user's super-administrator privilege.
(Note that `bbp_edit_user_handler()` has several other conditional checks to prevent privilege escalation here, and this change is only useful for installations that modify core role & capability behavior via third-party plugins in such a way as to have bungled the capabilities of multisite super-administrators.)
Props glynwintle. For 2.6 (trunk)
|
[5802]
|
johnjamesjacoby
|
Always predefine `$args` as an array, for code consistency across all components.
|
[5775]
|
johnjamesjacoby
|
Inserts: When inserting a forum/topic/reply, immediately update the new object so hierarchy is refreshed.
This commit addresses the last active post ID being incorrect after inserting topics and replies to a forum, and fixes a failing test (in `BBP_Tests_Core_Update::test_bbp_create_initial_content`).
See #2805.
|
[5774]
|
johnjamesjacoby
|
Cache: Much more sane cache invalidation.
This change improves hierarchical forum/topic/reply cache invalidations by not requiring each call to be strategically placed between actions to avoid race conditions.
Props thebrandonallen. Fixes #2800.
|