[7024]
|
johnjamesjacoby
|
Engagements: fix bugs with caching implementation in User strategy.
This commit adds the `$object_id` to the end of the cache key, to avoid collisions with other IDs. It also loosens 2 explicit `true` comparisons because internal calls to `update_meta()` up the stack may return an integer.
See #3292. For 2.7, trunk.
|
[7023]
|
johnjamesjacoby
|
Engagements: fix bugs with caching implementation in User strategy.
This commit adds the `$object_id` to the end of the cache key, to avoid collisions with other IDs. It also loosens 2 explicit `true` comparisons because internal calls to `update_meta()` up the stack may return an integer.
See #3292. For 2.6.4, branches/2.6.
|
[6844]
|
johnjamesjacoby
|
Engagements: first pass at back-compat for pre-2.6 subscriptions and favorites
Introduces a `BBP_User_Engagements_Back_Compat` class with the necessary inverted methods to add/remove engagement relationships.
Needs testing, and `get_query()` left todo.
See #3211.
|
[7004]
|
johnjamesjacoby
|
Engagements: explicitly query for `-1` posts if no objects are known to exist.
This commit fixes an issue with the 2.5 User Engagements strategy that will cause all topics to be queried instead of none of them.
Revert r7003 and use a different syntax to avoid debug notices.
|
[7005]
|
johnjamesjacoby
|
Engagements: explicitly query for `-1` posts if no objects are known to exist.
This commit fixes an issue with the 2.5 User Engagements strategy that will cause all topics to be queried instead of none of them.
Revert r7002 and use a different syntax to avoid debug notices.
|
[7003]
|
johnjamesjacoby
|
Engagements: explicitly query for `-1` posts if no objects are known to exist.
This commit fixes an issue with the 2.5 User Engagements strategy that will cause all topics to be queried instead of none of them.
|
[7002]
|
johnjamesjacoby
|
Engagements: explicitly query for `-1` posts if no objects are known to exist.
This commit fixes an issue with the 2.5 User Engagements strategy that will cause all topics to be queried instead of none of them.
|
[6828]
|
johnjamesjacoby
|
Engagements: enforce `absint()` on function parameters in engagements API.
Also fixes a bug causing an `array_search()` to erroneously fail.
See #3206.
|
[6843]
|
johnjamesjacoby
|
Engagements: documentation improvements to various strategy classes.
See #3211.
|
[6877]
|
johnjamesjacoby
|
Engagements: demystify strategy sanitization.
This change ensures that invalid/unavailable strategies are never used, and also allows for custom strategies to exist (custom table, etc...) without requiring strategy registration.
See #3211.
|
[6914]
|
johnjamesjacoby
|
Engagements: always show user avatars in subscription/favorite metaboxes.
This commit introduces a helper function (to reduce code duplication) responsible for looping through queried users and outputting avatars and profile links.
A developers note is included in the function docs discouraging third-party plugin developers from using it, as future iterations of bbPress may modify its output without notice.
Fixes #3272.
|
[6993]
|
johnjamesjacoby
|
Engagements: add caching to User strategy, for 2.5 compatibility.
This commit re-adds query caching for `FIND_IN_SET` queries, fixing long pageloads on sites with large amounts of usermeta that are unable to run the 2.6 database upgrade routine(s).
Props johnjamesjacoby, netweb. Fixes #3292. For 2.7, trunk.
|
[6992]
|
johnjamesjacoby
|
Engagements: add caching to User strategy, for 2.5 compatibility.
This commit re-adds query caching for `FIND_IN_SET` queries, fixing long pageloads on sites with large amounts of usermeta that are unable to run the 2.6 database upgrade routine(s).
Props johnjamesjacoby, netweb. Fixes #3292. For 2.6.3, branches/2.6.
|
[6723]
|
johnjamesjacoby
|
Engagements: abstract meta strategy into an overload'able class.
This change introduces a class and wrapper function to allow the `meta` strategy of the new user engagements API to be hot-swapped. This might be helpful on large installations where a dedicated database table makes more sense, or for integrations where features like "Favorites" or "Subscriptions" might already be delegated to other third-party membership plugins. Now, the caller class can be filtered to one that includes custom methods.
See #3068.
|
[6520]
|
johnjamesjacoby
|
Engagements: Updates to phpdoc & helper functions.
* New function to remove all users from an object
* New function to remove all users from all objects
* Remove references to taxonomy term storage (from original implementation)
* Update phpdoc with more accurate descriptions of intended parameter usages
See #3068.
|
[6330]
|
johnjamesjacoby
|
Engagements: Updates existing functions & unit tests:
* Correct tests so that `post_author` of 0 does not get included in the overall count
* Add user IDs to all topics & replies where voice counts are being tested
* Update voice-count update function to use the new user-relationships API
* Clean-up topic merge code to more efficiently migrate favorites, subscriptions, and engagements
See #3068.
|
[6530]
|
johnjamesjacoby
|
Engagements: Update topic engagements when they are manually inserted.
This brings the `_insert_` functions up to date with the `_new_` equivalents.
See: #3068. Props netweb & unit-tests for catching this.
|
[6521]
|
johnjamesjacoby
|
Engagements: Update phpdoc for `bbp_add_user_to_object()`.
* Replace `add_post_meta()` with `add_metadata()`
See #3068.
|
[6516]
|
johnjamesjacoby
|
Engagements: Update `bbp_update_topic_voice_count()` to only count the number of existing engagements.
Recalculating the entire engagement tree for each topic is costly, should be done in its own dedicated function, and then only hooked in or executed when absolutely necessary.
This is easier to do with the engagements API that's new in 2.6. Recalculation function imminent.
See #3068.
|
[6518]
|
johnjamesjacoby
|
Engagements: Update `bbp_add_user_object()`.
* New phpdoc description
* Add `$unique` parameter and default to `true` (this differs from the normal `false` default of `add_metadata()` because, by default, this API assumes no 1 user can have multiple relationships with the same object)
* Pass `$unique` into `apply_filters()`
See #3068.
|
[6525]
|
johnjamesjacoby
|
Engagements: Tracking is not just for public or closed topics.
This commit updates the engagement upgrade tool and recalculation helper functions to not be limited to public & closed post statuses. Engagements can happen on private or hidden topics also, including trash, spam, and so on.
The non-visible topics that a user is engaged in should be filtered out as needed when queried based on `post_status` or other various meta-data.
See #3068.
|
[6389]
|
johnjamesjacoby
|
Engagements: Simplify `bbp_is_user_engaged()`.
* Remove `$engagements` gathering & return in filter
* Remove topic verification dance (no reason to re-get or guess at the topic)
* Add `$user_id` validation
Props thebrandonallen. FIxes #3090.
|
[6534]
|
johnjamesjacoby
|
Engagements: Revert part of r6525, and adjust some actions.
* Engagements will need to be "public only" for 2.6, and we can reconsider what private/hidden engagements look like later
* Make sure that engagements are saved before voice counts are done
* Use new `is_public` style wrapper function for topics & replies where appropriate
* Remove a few `current_filter()` checks that should no longer be necessary with current action hook implementation
* There may be more clean-up necessary here, but this is required to bring all unit-tests back to passing as they've been written, specifically things hooked to the `bbp_insert_topic` and `bbp_insert_reply` hooks
See #3068. Hat-tip netweb.
|
[6515]
|
johnjamesjacoby
|
Engagements: Remove duplicate type castings from return values.
This removes `(bool)` usages where there is no way the return value would ever not be a boolean.
|
[6439]
|
johnjamesjacoby
|
Engagements: Remove `bbp_get_topic()` checks from engagements.
See #3083.
|
[6324]
|
johnjamesjacoby
|
Engagements: Prefer `bbp_admin_upgrade_user_engagements()` over the old repair tool.
See #3068.
|
[6446]
|
johnjamesjacoby
|
Engagements: Performance optimizations to `bbp_update_topic_voice_count()`.
* Use a `UNION` query strategy (only on the `wp_posts` table)
* Compare old count to new count before deleting & updating engagements
Fixes #3083. Props januzi_pl.
|
[6369]
|
johnjamesjacoby
|
Engagements: Move engagement count updates to action hooks.
Props thebrandonallen. Fixes #3068.
|
[6529]
|
johnjamesjacoby
|
Engagements: Keep topic engagement counts up-to-date.
This changes the way the old 'voice count' works with the new engagements API in the following ways:
* Introduce new function to update voice count meta when necessary
* Modify recalculation function with a `$force` parameter, and only recalculate the counts when the engagements have changed by default
* Hook the above functions in where appropriate, largely when deleting replies (this is a unique case where a fully deleted reply needs to check if the author of the current reply has a previously public reply in that same topic already, which should not trigger a recalculation.)
* We are silently moving the `bbp_delete_` actions onto the `before_delete_post` hook, so that all term & meta-data is available to them (which helps with race conditions mentioned in r6528)
Engagements are now hooked in and listening in the most efficient way possible, at least until a common & shared walker is introduced for the entire tree.
See: #3068.
|
[6517]
|
johnjamesjacoby
|
Engagements: Introduce `bbp_remove_user_from_all_objects()`.
This is useful for when a user is permanently deleted, or when all of their relationship(s) (of a certain type) need to be removed.
See #3068.
|
[6522]
|
johnjamesjacoby
|
Engagements: Introduce 2 new functions for recalculating engagements.
* `bbp_get_topic_engagements_raw()` to efficiently query for users who have engaged in a topic
* `bbp_recalculate_topic_engagements()` to update all of the related meta-data
See #3068.
|
[6334]
|
johnjamesjacoby
|
Engagements: Integrate the `user_query` into favorites, subscriptions, and engagements.
* Add to admin metabox avatar loops
* Fix a few bugs in `BBP_User_Query`, and include a custom constructor to set the loop counter
See #3068.
|
[6340]
|
johnjamesjacoby
|
Engagements: Improve efficiency of upgrade & repair tools.
Props thebrandonallen. See #3068.
|
[6323]
|
johnjamesjacoby
|
Engagements: Fix copy/paste error in r6322.
See #3068.
|
[6320]
|
johnjamesjacoby
|
Engagements: First pass at:
* User profile section
* Template parts changes
* Rewrite rules support
* Repair & upgrade tools
* BuddyPress support
* `engagement` slug setting
See #3068.
|
[6311]
|
johnjamesjacoby
|
Engagements: First pass at engagement user functions.
Also update favorite/subscription documentation where inaccurate.
See #3068.
|
[6332]
|
johnjamesjacoby
|
Engagements: First pass at a `user_query`, which will be used for looping through users.
* Introduces `BBP_User_Query` which extends `WP_User_Query`
* Includes functions for use within template parts
See #3068.
|
[6321]
|
johnjamesjacoby
|
Engagements: Allow engagements to be toggled on/off, for forums that have not run the upgrade routine yet.
Also missed a spot in the BuddyPress integration.
See #3068.
|
[6768]
|
johnjamesjacoby
|
Engagements: Add relationship key and type to `bbp_user_engagements_interface()`.
This allows for per-feature overloading of the engagement relationship type – useful if you want to store some data as a taxonomy, some data as meta, and other data in custom storage.
|
[6322]
|
johnjamesjacoby
|
Engagements: Add `bbp_is_engagements_active` to default options array.
See #3068.
|
[6326]
|
johnjamesjacoby
|
Engagements/BuddyPress: Finish integration, and clean-up favorites & subscriptions support.
See #3068.
|
[6327]
|
johnjamesjacoby
|
Engagements/BuddyPress: Add `@since` for changes in 2.6.0, and a bit more clean-up.
See #3068.
|
[5169]
|
johnjamesjacoby
|
Enable pingbacks for forum CPT when creating in wp-admin. See #2297.
|
[5168]
|
johnjamesjacoby
|
Enable pingbacks for CPT's when creating in wp-admin. Fixes #2297.
|
[5499]
|
johnjamesjacoby
|
Enable forum status and visibility functions to check ancestry by extracting existing logic into new helper functions. Props alex-ye, netweb. Fixes #2303.
|
[5496]
|
johnjamesjacoby
|
Embetter Orwellian Newspeak used to describe sticky topics in `admin/topics.php`. Props netweb. Fixes #2622.
|
[7152]
|
johnjamesjacoby
|
Emails: correct logic in `bbp_get_email_addresses_from_user_ids()`.
This commit makes sure that the query offset (for looping through user IDs) does not unintentionally skip over any IDs in the allowed ranges.
In trunk, for 2.7. Fixes #3405.
Props muratgu.
|
[7151]
|
johnjamesjacoby
|
Emails: correct logic in `bbp_get_email_addresses_from_user_ids()`.
This commit makes sure that the query offset (for looping through user IDs) does not unintentionally skip over any IDs in the allowed ranges.
In branches/2.6, for 2.6.6. Fixes #3405.
Props muratgu.
|
[6919]
|
johnjamesjacoby
|
Emails: chunk notification emails into 40 Bcc'd recipients.
This commit introduces the `bbp_mail` subfilter, used to target bbPress specific emails in conjunction with `bbp_get_email_header()` to help identify emails that came specifically from bbPress actions.
The purpose of this change is to help forum owners avoid their outbound emails being marked as spam, due to the high number of users that can be subscribed to any given forum or topic.
This change (combined with r6725) goes a long way towards improving the success of subscription emails reaching their intended recipients.
Fixes #3260. Props danielbachhuber.
|
[4241]
|
johnjamesjacoby
|
Editor:
* Additional output escaping on textarea attributes.
* Revert accidental indentation change from r4240.
* See #1870.
|
[4025]
|
johnjamesjacoby
|
Editing:
* Bail early if forum/topic/reply ID is missing.
* Put message back that was accidentally removed in r4024.
|
[6920]
|
johnjamesjacoby
|
Edit Locking: Remove redundant $minutes check in `bbp_past_edit_lock()`.
This commit is just a small bit of cleanup from researching #3164.
See #3222.
|
[6869]
|
johnjamesjacoby
|
Edit Locking Improvements:
* Refactor to avoid doing unnecessary computations
* Invert default return value from false to true, requiring time to pass validation as opposed to assuming
* Improve obviousness of math computations for easier debuggability
* Update variables passed into the end return filter
* Add 6 unit tests for before/on/after, plus support for "0" as infinite
* Fix bug causing "0" values to return the opposite value
* Ensure only gmt/utc values are compared
* Add optional flag to use WordPress time instead
* Improve inline and function documentation
Fixes #3222. Props wpdennis.
|
[6753]
|
johnjamesjacoby
|
Duplicates: check `post_author` argument instead of current user.
This change brings duplicate checking up to speed with flood and blacklist checks by preferring `user_can()` over `current_user_can()`, and plays a bit more friendly with anonymous author IDs.
Props r-a-y. Fixes #3186.
|
[5536]
|
netweb
|
Drupal7: Don't import Drupal 7's guest user
|
[5540]
|
netweb
|
Drupal7: Add support for importing Drupal v7.x pending topics and replies. See #2645
|
[4259]
|
johnjamesjacoby
|
Dropdowns:
* Revert back to text inputs for topic and forum ID's in metaboxes.
* Fixes memory issues when loading thousands of posts.
* Fixes #1878.
* See #1901.
|
[4518]
|
johnjamesjacoby
|
Dropdown:
* Use 'post_parent' instead of 'child_of' in bbp_get_dropdown().
* Add 'exclude' to array of default arguments.
* Fixes bug with not excluding post ID's, and not using the correct post parent ID.
* Props jmdodd.
* Fixes #2061.
|
[4665]
|
johnjamesjacoby
|
Don't wrap nested pre/code tags in additional new-lines.
|
[5194]
|
johnjamesjacoby
|
Don't use `esc_html_e()` on Importer page, as it includes a `<strong>` tag that's worth keeping around.
|
[3317]
|
johnjamesjacoby
|
Don't show Sticky links in wp-admin if topic is spam or trash.
|
[4638]
|
johnjamesjacoby
|
Don't parse smilies in bbPress 1.x converter. Props netweb for testing. Fixes #1874.
|
[2715]
|
johnjamesjacoby
|
Don't output topic admin links if not actually in a topic. Props !GautamGupta
|
[2669]
|
johnjamesjacoby
|
Don't load CSS in admin
|
[5272]
|
johnjamesjacoby
|
Don't ignore Travis or JSHint configuration files, and add them to root. See #2542.
|
[5651]
|
netweb
|
Don't create post revisions when updating replies menu order in `bbp_update_reply_position()` as there's no post content changed.
Props netweb. Fixes #2656
|
[5656]
|
netweb
|
Don't create post revisions when opening topics in `bbp_open_topic()` or closing topics in `bbp_close_topic()` as post content does not change.
Props netweb. See #2653
|
[3287]
|
johnjamesjacoby
|
Don't create post revisions when changing a topic/reply status (open/close/spam/unspam).
Update phpdoc in forum open/close.
|
[5308]
|
johnjamesjacoby
|
Don't copy Sass files (or any other excluded files) into `/build` directory. Props netweb. See #2542.
|
[3156]
|
johnjamesjacoby
|
Don't build a meta query if there are no forums to exclude.
|
[4843]
|
johnjamesjacoby
|
Don't allow replies to closed topics, unless user can moderate. Props mzaweb. Fixes #2281.
|
[5317]
|
johnjamesjacoby
|
Don't allow `build` or `src` in `basename` in `bbPress:setup_globals()`. Fixes problems with activation hooks. Fixes #2559. Props DJPaul.
|
[3836]
|
johnjamesjacoby
|
Don't after-filter return count values as int to allow number-formatting filters to work correctly. Fixes #1810. Props wonderboymusic.
|
[4177]
|
johnjamesjacoby
|
Doing it wrong:
* Protect users from the effects of incorrectly manipulating the bbPress instance.
* Uses _doing_it_wrong() in place of wp_die(), in bbPress::__clone() and bbPress::__wakeup() magic methods.
|
[6774]
|
johnjamesjacoby
|
Documentation: fix a bunch of random ambiguous or incomplete phpdoc.
|
[6580]
|
johnjamesjacoby
|
Documentation: Typo fixes in users functions.
|
[6573]
|
johnjamesjacoby
|
Documentation: Remove all `@uses` usages.
Per the WordPress inline documentation standards:
> the @uses tag is not recommended to be used to indicate a used-by relationship, as this information can be derived through other means. These tags also are very likely to become out-of-date as our functions change over time.
|
[6497]
|
johnjamesjacoby
|
Documentation: Prefer "database" over "sql" to avoid some jargon.
This also makes it language/platform agnostic.
|
[6526]
|
johnjamesjacoby
|
Documentation: Don't use `reply's`, because it looks weird and is poor English grammar.
Prefer more descriptive documentation instead.
|
[6498]
|
johnjamesjacoby
|
Documentation: Don't hyphenate "bbPress's"
It's cute, and I tend to say it in person to be cute, but in writing it doesn't look very classy.
|
[2836]
|
johnjamesjacoby
|
Documentation for new sticky topic code.
|
[4040]
|
johnjamesjacoby
|
Documentation
* Fix out of date phpdoc for bbp_get_reply_position().
|
[6642]
|
johnjamesjacoby
|
Docs: update the description of `bbp_get_default_role()`.
Fixes #3131.
|
[7240]
|
johnjamesjacoby
|
Docs: remove some PHP docs that don't make sense.
For 2.7.
|
[7239]
|
johnjamesjacoby
|
Docs: remove some PHP docs that don't make sense.
For 2.7.
|
[7238]
|
johnjamesjacoby
|
Docs: remove some PHP docs that don't make sense.
For 2.6.10.
|
[6856]
|
johnjamesjacoby
|
Docs: fix typo, and update function reference for `_blacklist()` deprecation.
See r6855, #3215.
|
[7170]
|
johnjamesjacoby
|
Docs: correct "arrap" to "array".
In trunk for 2.7.0. See #3389.
|
[7169]
|
johnjamesjacoby
|
Docs: correct "arrap" to "array".
In branches/2.6 for 2.6.6. See #3389.
|
[6971]
|
johnjamesjacoby
|
Docs: add note to `bbp_get_excluded_forum_ids()` about per-forum moderators.
|
[6924]
|
johnjamesjacoby
|
Docs: add missing project names after recently added @since's.
|
[6560]
|
johnjamesjacoby
|
Docs: Update inline documentation of `bbp_get_global_object()`.
The conditions in this function do not result in an early return, so remove "Bail" references.
|
[6291]
|
netweb
|
Docs: Fix typo in `bbPress::*_query::have_posts()` PHPDoc `@uses` references.
Props SergeyBiryukov.
Fixes #3061.
|
[6900]
|
netweb
|
Docs: Correct descriptions for various admin settings.
|
[6899]
|
SergeyBiryukov
|
Docs: Correct description for `_bbp_topics_per_page` setting.
|
[4577]
|
johnjamesjacoby
|
Do not use hashes in tabfocus_elements array values. See #1917.
|
[3703]
|
johnjamesjacoby
|
Do not unset $post global in bbp_replace_the_content(). This is no longer needed, and has the potential to cause more harm than good, as many plugins and themes expect the $post global to exist after the loop has completed, even on "fake" paged like bbPress's.
|
[3656]
|
johnjamesjacoby
|
Do not stomp the $redirect_to variable in bbp_redirect_to_field(). Props mesayre. Fixes #1709.
|
[4842]
|
johnjamesjacoby
|
Do not show topic tags in navigation menus.
|
[2773]
|
johnjamesjacoby
|
Do not show title or widget HTML if there is nothing to display.
|