Resource icon

xF2 Add-on Standard Library by Xon 1.20.1

No permission to download
  • Fix \SV\StandardLib\Helper::repo()->aliasClass() had a compatibility issue with XF2.2.13+ when the aliased class was the top-most class extension.
  • Require php 7.2+
  • php 8.4+ compatibility fix
  • Improve custom AJAX pagination and AJAX pagination with filter bar javascript. Includes admincp option helper option rendering code
    See Who Replied for an implementation of the feature allowing selectable pagination styles
  • Add Helper::plugin for type-safe plugin creation
  • Fix Helper::createEntity() could cause "Call to undefined method ...\XF\Entity\...::where()" errors when verifying content is unique
  • 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.
Code:
$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 needs to be swapped with \XF
  • Add js/sv/lib/ajaxPagination.js
    Code:
    <xf:js src="sv/vendor/domurl/url.js" addon="SV/StandardLib" min="1" />
    <xf:js src="sv/lib/ajaxPagination.js" addon="SV/Threadmarks" min="1" />
    ...
    <div class="block" data-xf-init="sv-ajax-pagination" data-content-wrapper=".block-body--wrapper">
        ...
        <div class="block-body--wrapper">
            ...
            <xf:pagenav ... />
            <xf:hiddenval name="final_url" value="{$finalUrl}" />
        </div>
    </div>

<xf:pagenav> and <xf:hiddenval name="final_url" /> must be inside the div which is tagged with data-content-wrapper's css selector
  • Fix accidental hard XF2.2 requirement. Take #2
Note; The 1.18.x branch will be the last branch to support XenForo 2.1.x
  • 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

  • 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:
    any string not found in this list < dev < alpha = a < beta = b < RC | Release Candidate = rc < # < patch level | pl = p.
  • 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');
  • Fix caching global permissions was broken (Impacts Can Warn Staff & User Essentials, but depends heavily on content if this bug was triggered)
  • Fix join index hint support.
    • Fix XF2.2.11 and before error: Undefined array key "indexHints".
    • Fix XF2.212+ index hints not applying as expected in some cases.