- Fix caching global permissions was broken (Impacts Can Warn Staff & User Essentials, but depends heavily on content if this bug was triggered)
- Add "patch_route_build_callback" code event, used to manipulate the router state during construction.
- Add input filter option "empty-str-to-null". Example usage for developers:
PHP:$foo = $this->filter('bar', '?uint,empty-str-to-null');
Add support for addon.json 'require'/'require-soft' to support addon version strings instead of the addon version_id.
Uses version_compare under the hood after some very basic standardization.
php version strings support dotted versions, '1.2.3' and also each part may also support special character strings:
- Deprecate getContentPermissions function, as the 2nd string argument was not actually used, with a replacement function getPerContentPermissions added.
- Add \SV\StandardLib\Helper::isAddOnActive() helper function. Similar to \XF::isAddonActive(), except it understands version strings
- Shim template funciton is_addon_active code to understand version strings
- Fix accidental hard XF2.2 requirement
- Fix accidental hard XF2.2 requirement. Take #2
- Only add phrase_dynamic template method in XF2.1
- Add various strongly typed helpers to automatically type hint returns based on using ::class argument instead of magic strings.
PHP:$obj = Helper::repository(\XF\Repository\User::class);
For static analysis and IDE, $obj will have the type \XF\Repository\User
While XF2.3 intends to implement this, adding this functionality to this add-on allows migrating before hand and simplifies migrating as the Helper bit just...
- Fix Who Replied pagination could get confused on the non-first page of a thread, similarly for ajax pagination code (used in Threadmarks v2.19.0+)
- Fix ajax pagination could push changes to URL history when in an overlay
- Actually distribute minified ajaxPagination.js file
Fix Helper::createEntity() could cause "Call to undefined method ...\XF\Entity\...::where()" errors when verifying content is unique