Resource icon

Standard Library by Xon 1.9.0

No permission to download
  • Fix minute value in time-selector not round-tripping as expected
  • Restore php 7.0 compatibility
  • Fix "renamePhrases" install helper ignoring 3rd argument "replace"
  • Improve installer helper addOrChangeColumn to be rename-aware to avoid generating invalid SQL
  • Add "Compiler errors" missing phrase. Thanks @TickTackk
  • Add "View template modifications" when viewing a template with template modifications that apply.
    A powerful diagnostic tool when diagnosing add-on conflicts in production!
    • Lists all modifications that are applying, and allows on-the-fly which are applying or not to view different permutations.
    • Allows viewing compiled template code various template modifications, extremely useful for isolating exactly where in a highly modified template is actually causing errors.
    • Note; viewing compiled template code dynamically compiles the selected template & modifications and does not read the actual on-disk representation.
      If xdebug is active, this can be very slow!
  • Ensure time counter timer doesn't cause unneeded HTML updates
  • When time counter code has maximum date parts set, do not append smaller units. ie "30 days 10 minutes" should be "30 days"
  • Bundle moment.js 2.29.1
  • Extract count down/up timer html/javascript from Vote Tally & Notice Time Replacables add-ons, this includes singular time.<part> phrases.

    Example usage (generates html & loads javascript);
    $func = \XF::$versionId >= 2010370 ? 'func' : 'fn';
    return $this->app->templater()->$func('sv_relative_timestamp', [
        $now->getTimestamp(), $other->getTimestamp(), // now and other date time obj
        0, $countUp, // maximum date parts and if allowed counting up
        'time-notice', // class added to the span
        'click', '< .notice-content | .notice-dismiss' // event to trigger and who trigger it on
  • Fix custom date/time picker incorrectly setting the 'day' component of a date to the 'year' value.
  • Implement a custom date/time picker, with a custom input filter. Replacement for pikaday in XF2.2 no longer supporting a time component. Supports seconds (opt-out), and explicit time-zone selection.
    • XML:
      <xf:macro template="svStandardLib_helper_macros" name="date_time_input" arg-name="startTime" arg-timestamp="{$xf.time}" />
    • XML:
      <xf:macro template="svStandardLib_helper_macros" name="date_time_input_row" arg-label="{{ phrase('start_time') }}" arg-name="startTime" arg-timestamp="{$xf.time}" />
    • PHP:
      $timestamp = $this->filter('startTime', 'sv-datetime');
  • Add templater function which can reverse array/array collection
  • Fix possible MySQL 8.0+ collation error in renamePhrases