[6538]
|
johnjamesjacoby
|
BuddyPress: Favorites & Subscriptions AJAX improvements
* Pass a data attribute along with links
* Sanitize `action` key when passed into AJAX action hook
* Send a `200` response code
This commit allows favorite & subscription links to work with AJAX in BuddyPress group forums pages.
Props r-a-y. Fixes #3114
|
[6537]
|
johnjamesjacoby
|
Tools: Improvements to repair, upgrade, and converter tools.
* Use escaped gettext equivalent functions where appropriate
* Rename `description` to `title` so that more descriptive descriptions can be used per-tool in a future version
* Register all scripts, and properly enqueue them only a needed
* Reorder & re-title some tools to better match each other
|
[6536]
|
johnjamesjacoby
|
Tag 2.6 RC 3. (RC 2 is a private/internal pre-release)
|
[6535]
|
johnjamesjacoby
|
Bump trunk to 2.6 Release Candidate 3.
|
[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.
|
[6533]
|
johnjamesjacoby
|
Update phpdoc block of `bbp_is_topic_public()`.
Include reference to new `bbp_get_public_topic_statuses()` function.
|
[6532]
|
johnjamesjacoby
|
Fix accidentally inverted inline doc from r6531.
|
[6531]
|
johnjamesjacoby
|
Core: Register, then enqueue, both scripts and styles.
This commit makes sure that theme compatibility styles & scripts are properly registered & enqueued.
Props r-a-y. Fixes #3115.
|
[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.
|
[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.
|
[6528]
|
johnjamesjacoby
|
Hierarchy: Use `post_parent` when not empty, and fallback to meta-data.
This fixes a few weird inconsistencies with how deleting content works, because `delete_` hooks fire after meta & terms have already been deleted from the database, `deleted_` hooks fire after the post itself is deleted from the database, but the post object cache has not yet been cleaned (even though term & meta caches have.)
We also call a few functions like `bbp_is_reply()` on the deleted `$postid`, and even though the state of the object-cache should not be relied on, it has not been purged yet.
Relatedly, updates to forum & topic descriptions can more reliably identify their state, so this commit adjusts some logic there also.
|
[6527]
|
johnjamesjacoby
|
Styling: Improve theme compatibility of avatars & content areas in default themes.
This makes sure that avatars in forum & topic descriptions are always horizontally centered, are not accidentally turned into block-elements by parent-theme `img` styling, and that content areas always occupy the full width of their parent element.
|
[6526]
|
johnjamesjacoby
|
Documentation: Don't use `reply's`, because it looks weird and is poor English grammar.
Prefer more descriptive documentation instead.
|
[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.
|
[6523]
|
johnjamesjacoby
|
Tools: Audit repair & upgrade tools.
* Use escaped gettext variant functions where applicable
* Use Query/Prepared/Results paradigm for direct database queries for easier step-through debugging
* Fix a few small bugs in the engagements upgrade functions (none that affect 2.5 or beta/RC users)
* General code formatting improvements and typo fixes
|
[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.
|
[6521]
|
johnjamesjacoby
|
Engagements: Update phpdoc for `bbp_add_user_to_object()`.
* Replace `add_post_meta()` with `add_metadata()`
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.
|
[6519]
|
johnjamesjacoby
|
Moderators: Add an `$object_type` parameter to add/remove/delete functions.
In a future release, this will more easily allow objects like taxonomy-terms to have their own moderators, and is also necessary for future enhancements to the WordPress.org support forums where custom taxonomies are used for prevalently than in bbPress core currently.
See #3068, #459.
|
[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.
|
[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.
|
[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.
|
[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.
|
[6514]
|
johnjamesjacoby
|
Converter: Port changes proposed for 2.7 in for 2.6:
* Add a timer UI to show the count down until the next step
* Move converter settings into the normal options & settings arrays
* Update fields, sections, & pages as needed
* Update `converter.js` version to use `bbp_get_version()`
* Make connection & options persistent across requests whenever possible, and trust the settings if settings change
* Split steps up into private methods, out of the massive `do_steps()` method
|
[6513]
|
johnjamesjacoby
|
Tools: Use escaping gettext functions in admin area Reset Tool.
|
[6512]
|
johnjamesjacoby
|
Users: Sanitize name, email, and website in `bbp_filter_anonymous_post_data()`.
2.5 branch, for 2.5.13.
|
[6511]
|
johnjamesjacoby
|
Tag 2.6 RC 1.
|
[6510]
|
johnjamesjacoby
|
RC 1, not 3. See r6509.
|
[6509]
|
johnjamesjacoby
|
Bump trunk to 2.6 Release Candidate 1! π
|
[6508]
|
johnjamesjacoby
|
Rename `base_dir` to `basepath` for consistency.
|
[6507]
|
johnjamesjacoby
|
Languages: Deprecate custom bbPress `/languages/bbpress/` directory.
* It's still supported if it exists, otherwise it's skipped.
* Introduce new `base` property to the `bbPress` class to help with targeting the global directory.
This results in 1 fewer call to `load_textdomain()` and 2 fewer if the old directory is not in place.
|
[6506]
|
johnjamesjacoby
|
Widgets: Audit all widget classes:
* Use escaping GetText functions
* Fix typos
* Use more efficient queries for forum/topic/reply meta-boxes
Needs testing. See #3070.
|
[6505]
|
johnjamesjacoby
|
Users: Bail if editing a user in wp-admin.
This is a theme-side only handler.
|
[6504]
|
johnjamesjacoby
|
Topics: Redirect to forum when trashing a topic and the user cannot view trash.
Fixes #3111. Props mattrabe.
|
[6503]
|
johnjamesjacoby
|
Queries: Remove `author_name` query variable setting when viewing profiles.
This is a relic from the days when profiles included blog posts (2010 era.)
This should be safe to remove, based on the following assessments:
* Blog posts are no longer included in profiles
* Setting `author_name` or `author` query-vars will cause `is_author()` to be set to `true`
* `is_author()` should not return true in the context of bbPress profile pages
* The `author_name` query-var is not used again later in bbPress - the `displayed_user` variable is instead
See https://github.com/woocommerce/woocommerce/issues/15508 for additional context.
|
[6502]
|
johnjamesjacoby
|
Users: Add a "View" link to list-table row-actions.
This connects `wp-admin` users to their theme-side forum profiles.
|
[6501]
|
johnjamesjacoby
|
Typo: /s/compatable/compatible/
|
[6500]
|
johnjamesjacoby
|
Admin: Rename `upgrades.php` to `upgrade.php` to match the other files.
|
[6499]
|
johnjamesjacoby
|
General: Audit `wp_insert_post()` usages.
Return a `WP_Error` object in some instances, and explicitly do not in others.
Where possible, use the error message in the user feedback response.
Fixes #2817.
|
[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.
|
[6497]
|
johnjamesjacoby
|
Documentation: Prefer "database" over "sql" to avoid some jargon.
This also makes it language/platform agnostic.
|
[6496]
|
johnjamesjacoby
|
Tools: Change BuddyPress group forum repair into an upgrade routine.
This is only intended as a migration path from bbPress 1.x to 2.x, not to be rerun multiple times to force-recount the meta values & private/hidden options.
See #2829.
|
[6495]
|
johnjamesjacoby
|
Repairs: Prefer `empty()` over `! isset()` in `bbp_admin_repair_group_forum_relationship()`
The `meta_value` key will always be set, because of the way the forum query is written.
See #2829.
|
[6493]
|
johnjamesjacoby
|
Favorites/Subscriptions improvements:
* Remove superfluous checks against current current user fav/sub status
* Always return `$success`
* Prefer `bbp_get_` functions over generic `intval()` to validate `$_GET` ID's
|
[6491]
|
johnjamesjacoby
|
Converter: Update some strings for improved clarity.
When a conversion is stopped, and later resumed, make sure the steps and verbiage are clear.
Also switch from "Completed" to "Finished" since it's likely some repair steps are still necessary, and the conversion isn't technically "complete" until those are done too.
|
[6490]
|
johnjamesjacoby
|
Converter: Use the port number in the server address if available.
Fixes #3022.
|
[6489]
|
johnjamesjacoby
|
Languages: Introduce UI for updating account language.
Includes helper functions for theme-side user editing, to wrap around `wp_dropdown_languages()`.
Fixes #3010.
|
[6488]
|
johnjamesjacoby
|
BuddyPress: Only wrap titles in `h2` tags if they are not empty.
Allows easier overriding if titles are not desired at all.
See #3105.
|
[6487]
|
johnjamesjacoby
|
Filters: Pass original `$args` array into various filters.
These were all unintentionally omitted when these filters were introduced.
|
[6486]
|
johnjamesjacoby
|
Template: Pass original `$args` array into `bbp_get_dropdown` filter.
Also update some inline docs & code formatting.
|
[6485]
|
johnjamesjacoby
|
BuddyPress: Root group forum updates
* Include ability to create a new group root forum if none exists
* Update group-forum setting verbiage to accommodate above
* When a forum is deleted, check if it's the group root, and delete the setting accordingly
* Introduce `bbp_maybe_delete_group_forum_root()` and `bbp_maybe_create_group_forum_root()` functions to carry out the above functionalities
|
[6484]
|
johnjamesjacoby
|
Filters: cast return values & update phpdoc.
|
[6483]
|
johnjamesjacoby
|
Settings: cast `map_meta_caps` return value to an array.
|
[6482]
|
johnjamesjacoby
|
Fix typo in phpdoc.
|
[6481]
|
johnjamesjacoby
|
Tools: Introduce `bbp_get_unique_array_values()` helper function.
Use this when parsing private/hidden forum IDs for saving.
|
[6480]
|
johnjamesjacoby
|
Forums: be strict in `array_search()` calls.
|
[6479]
|
johnjamesjacoby
|
Sub-actions: Cast a few return values and add `@return` phpdoc.
|
[6478]
|
johnjamesjacoby
|
Forums: Add forum-type & status to allowed meta keys.
|
[6477]
|
johnjamesjacoby
|
Inserts: Only prefix meta keys if not already prefixed when inserting forum/topic/reply.
|
[6476]
|
johnjamesjacoby
|
Converters: Port r5332 to 2.5 branch.
See #2558, #3112.
|
[6475]
|
johnjamesjacoby
|
Admin: More admin mark-up updates
* Add `hr` after `h1`s on custom screens
* More accurate meta-box wrapper mark-up
|
[6474]
|
johnjamesjacoby
|
Admin: Clean-up admin assets according to specifications.
|
[6473]
|
johnjamesjacoby
|
Tools: Update `Gruntfile.js` with new admin assets directory.
|
[6472]
|
johnjamesjacoby
|
Converter: Styling updates
* Move all admin CSS & JS into `/admin/assets/`
* Introduce `converter.js` and refactor code out of `admin_head()` method
* Move converter styling into `common.css`
* Update some surrounding styling, verbiage, and mark-up to better handle errors and user feedback
|
[6471]
|
johnjamesjacoby
|
Converter: Styling updates
* Move all admin CSS & JS into `/admin/assets/`
* Introduce `converter.js` and refactor code out of `admin_head()` method
* Move converter styling into `common.css`
* Update some surrounding styling, verbiage, and mark-up to better handle errors and user feedback
|
[6460]
|
johnjamesjacoby
|
Converter: Code improvements
* Add "Skip" text for steps that are being skipped
* Allow bypassing of importer halting on error
* Update a few strings
* Break some code from `process_callback()` method out into separate private methods
|
[6459]
|
johnjamesjacoby
|
Converter: More stylistic improvements
* Use "Import Monitor" metabox vs. old ugly plain yellow `div`
* Improve messaging around existing/incomplete import status/query/steps
* `17` total steps is kind-of a bad guess, but better than nothing
* Likely more can be done here in 2.7 as this matures in the public eye
|
[6458]
|
johnjamesjacoby
|
Converter: Improve error responses and UX when converter halts.
|
[6457]
|
johnjamesjacoby
|
Converter: Make sure the sync-table has a chance to be made on first run when not cleaning.
Also default `$start` values to `1` in the event some empty value is erroneously passed through.
|
[6456]
|
johnjamesjacoby
|
Converter: Multiple converter improvements
* Move classes into their own files
* Move `converter.php` into `/admin/tools/`
* Escape output of translated strings where possible
* Introduce `bbp_converter_db_connection_failed` error handler, in the event the origin database connection cannot be established
* Sets `WP_SETUP_CONFIG` constant to `true` to control `$wpdb->db_connect()` bail from using `db-error.php`
* Use `sanitize_text_field()` on database connection values
* Invisibly default to `DB_` constants if database connection values are empty
* introduce `convert_users` class parameter to limit direct touches to `$_POST` value
* Smarter defaults for converter options
|
[6455]
|
johnjamesjacoby
|
Moderators: Prefer `sanitize_title` over `trim`. See #3097.
|
[6454]
|
johnjamesjacoby
|
Moderators: Trim usernames after they're exploded.
Resolves an issue where spaces in the comma separated usernames field would result in skipping that user.
Fixes #3097.
|
[6453]
|
johnjamesjacoby
|
Topic Tags: set `is_archive` to `true` when viewing a topic tag archive.
Fixes #3071.
|
[6452]
|
johnjamesjacoby
|
Templates: Replace `the_permalink()` calls with more specific template tags.
Resolves issue where BuddyPress group forums would collide with literal page IDs when not using theme-compat.
Fixes #3030.
|
[6451]
|
johnjamesjacoby
|
OΓΉ mettre!
|
[6450]
|
johnjamesjacoby
|
Topic Tags: When deleting a topic tag, redirect to the forum root.
`home_url()` was a bit too jarring; no one expects to get kicked out of the forums entirely.
|
[6449]
|
johnjamesjacoby
|
Converters: Fix formatting on several converter methods.
|
[6448]
|
johnjamesjacoby
|
Converter: Introduce `bbp_get_converters()` to DRY the directory crawling code.
Also allows converters to be filtered, should someone want to include their own in a plugin.
See #3095.
|
[6447]
|
johnjamesjacoby
|
Converter: Refresh to registered settings
* `ksort()` the Platform list, and exclude "Example" since it's not usable
* Turn some `text` fields into `number` fields, with reasonable boundaries
* Add `code` classes to database fields
* Update some labels & descriptions
Fixes #3095.
|
[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.
|
[6445]
|
johnjamesjacoby
|
Subscriptions: Remove `array_filter( array_map() )` bit from `$user_ids`.
This now is handled upstream inside of `bbp_get_forum_subscribers()` and friends.
|
[6444]
|
johnjamesjacoby
|
Settings: Update `int` handling of `bbp_past_edit_lock()`.
|
[6443]
|
johnjamesjacoby
|
Settings: Update Engagements setting description to better match others.
|
[6442]
|
johnjamesjacoby
|
Settings: Add `_allow_` settings for editing & flooding, and revise the verbiage.
This allows for flood checking & editing to be:
* Completely disabled
* Overridden via filters
* Editing allowed forever
* A bit more descriptive with additional context provided
|
[6441]
|
johnjamesjacoby
|
Help: Update help text, and include a bit about the "Theme Packages" section.
|
[6440]
|
johnjamesjacoby
|
Common: introduce `bbp_has_shortcode()` to check if some text contains a bbPress shortcode.
If a shortcode was found in the global post content, a few extra things will happen:
* The `bbp-shortcode` class is added to the `body` tag
* `is_bbpress()` will now return `true`, to help enqueue additional styles & scripts on those pages in themes that want to support bbPress natively
Fixes #2996.
|
[6439]
|
johnjamesjacoby
|
Engagements: Remove `bbp_get_topic()` checks from engagements.
See #3083.
|
[6438]
|
johnjamesjacoby
|
Tools: Add `//Filter & return` note for future discovery of missing filter documentation.
Also adjust some type-casting on filtered results.
|
[6437]
|
johnjamesjacoby
|
General: Tidying from looking into #2876.
|
[6436]
|
johnjamesjacoby
|
Tests: update `test_bbp_get_topic_last_reply_permalink()` to use `bbp_get_forum_last_topic_permalink()`.
|
[6435]
|
johnjamesjacoby
|
Settings: Add a note to the `_bbp_show_on_root` setting if a forum archive template is found in the template stack.
Fixes confusion that would arise when using the `archive-forum.php` found in the `/extras/` directory.
Fixes #3081.
|
[6434]
|
johnjamesjacoby
|
Queries: Update `orderby` clauses of last-id queries to ensure more accurate results, specifically for imported forums and posts where IDs and `post_date` columns might be inverted.
Also update a few tests to be less cranky with exact array results.
Props thebrandonallen. Fixes #3108.
|
[6433]
|
johnjamesjacoby
|
Forms: Introduce `bbp_tab_index_attribute()` helpers to handle `tabindex` attribute output.
Note that these functions are used but normally their output is suppressed, because overriding the browser's natural `tabindex` order is impolite, and may introduce more issues than it actually fixes.
(Also includes some surrounding code clean-up.)
|
[6432]
|
johnjamesjacoby
|
Trash: Introduce `bbp_get_trash_days()` helper function.
This will allow the trashability of an object type to be short-circuited, around the `EMPTY_TRASH_DAYS` constant.
|
[6431]
|
johnjamesjacoby
|
Users: Connect `bbp_allow_forums_of_user` filter to `bbp_get_excluded_forum_ids` filter.
This prevents excluding private or hidden forums that the currently logged in user can explicitly moderate.
Fixes #2593.
|
[6430]
|
johnjamesjacoby
|
Remove more debug cruft.
|
[6429]
|
johnjamesjacoby
|
Remove debug cruft.
|
[6428]
|
johnjamesjacoby
|
Repair: In `bbp_repair_forum_visibility()`, don't bail if an error occurs.
Instead, skip the erroneous results and update the valid ones.
|
[6427]
|
johnjamesjacoby
|
Replies: fix incorrect inline doc in `bbp_current_user_can_access_create_reply_form()`.
|
[6426]
|
johnjamesjacoby
|
Users: Introduce `bbp_get_excluded_forum_ids()`.
This function will be used in places where private & hidden forum IDs are combined to determine which forums should be excluded from specific queries.
See #2593.
|