Some of the changes in XF 2.2.15 include:
- Avoid setting duplicate List-Unsubscribe headers.
 - Include first post QA schema items unconditionally.
 - Make outdated PHP version notice in admin control panel clearer.
 - Retain the original unsubscribeEmailAddress option for backwards compatibility.
 - New unsubscribeEmailHandling option to replace the new unsubscribeEmail option and conclusively fix issues arising from yesterday's XF 2.2.14 release.
 - Fix URL unfurls no longer unfurling.
 
XF 2.2.10 中的一些变化包括:
- 需要旧/新更改日志值的值
 - 在 Arr::stringToArray() 函数中正确处理空值
 - 生成一次性密码 URL 时删除多余的空间
 - 支持从命令行重建每日统计信息
 - 为活动和过期的用户升级表添加额外的索引
 - 删除工具提示的多余代码设置 aria-label
 - 为资源图标添加延迟加载属性
 - 在执行某些 IP 查找时传递索引提示
 
以下公共模板已更改:
如有必要,应使用“过时模板”页面中的合并系统来集成这些更改。
- core_block.less
 - poll_create
 - poll_edit
 - poll_macros
 - tag_macros
 - widget_forum_statistics
 
当前要求
请注意,XenForo 2.2 比早期版本具有更高的系统要求。
以下是最低要求:
PHP 7.0 或更新版本(推荐 PHP 8.0)
MySQL 5.5 和更新版本(也兼容 MariaDB/Percona 等)
所有官方附加组件都需要 XenForo 2.2。
增强型搜索至少需要 Elasticsearch 2.0。
XenForo 2.2.7 is also the first version to support cleaning up files that belong to uninstalled add-ons. You can read more about that here.
Some of the changes in XF 2.2.7 include:
- Update add-on list filter bar to use the correct prefix search phrase.
 - Output XenForo version when running cmd.php --version or -V
 - Change [MEDIA] BB code tag example to point to a valid video.
 - Ensure the input element for token inputs inherit the expected font color.
 - Disable caching for the birthdays member stat. The results could be different for each user depending on time zone so caching won't be effective.
 - Workaround a browser quirk to do with sticky navigation and the staff bar when the border width is an odd number. This removes the bottom border entirely.
 - Workaround an issue that could be caused by mail queue entries that fail to unserialize.
 - Avoid n+1 queries when filtering profile posts from banned users in the find new system
 - Patch loose string comparisons such as !$username and in_array($username, $usernames) that can result in unexpected behaviors when wierd strings are used.
 - When permanently deleting threads, ensure associated records are deleted too
 - When generating RSS feed entries for threads, set the guid attribute to the thread ID
 - Only overwrite push notification opt-out preferences if the visitor has permission to use push notifications.
 - Allow unassociated attachment deletion cutoff to be extended inline with draft save lifetime, plus refresh temporary attachments when saving a draft.
 - Trim excess whitespace from the beginning of Font Awesome icon classes
 - Fix compatibility issue with type checking when rendering prefixes
 - Add a new registration default to control whether push notifications should be sent for new conversation messages.
 - Fix an issue preventing guests from creating polls
 - When updating content reactions, check if reactions actually exist in the cache
 - Properly coerce URLs that may not begin with "www."
 - Fix casing for the metadata logo URL phrase
 - Don't allow retaining IDs when importing reaction content records
 - Use correct type hint for the getTitle method in the Report entity
 - When editing admin navigation items, properly save the development_only value
 - Adjust the query for determining who should receive a report closure notification to only return distinct and non-zero user IDs
 - If using PHP 7.1 or above, allow the image proxy to fetch and store webp images.
 - Ensure control panel attachment manager date boundaries are inclusive
 - Open off-canvas sub-navigation menu when tapping a heading with no link
 - Do not attempt to query for uncached content permissions after the global cache has already been run
 - Remove duplicated templates for node permissions management
 - Support specifying multiple content types when rebuilding the search index
 - Change "Edit own thread title" permission to "Edit own thread" as this permission allows multiple thread properties to be edited.
 - Improve legibility of thread prompt placeholder on the title input while using a narrow display when creating a new thread.
 - Do not offset the sticky submit row in overlays to account for bottom fixed notices that are behind the overlay.
 - Hover variants based on saturate() won't work with greys or near greys, so let's focus on xf-intensify() instead, and raise the value somewhat to compensate for the loss of the hover saturate
 - When merging users, carry over previous username change logs too.
 - Remove redundant file existence check when loading templates
 - Remove redundant file existence check when loading phrase groups
 - When autolinking emails expand the range of word characters permitted in additional domain parts.
 - Adjust Vimeo BB code media site to not match profile URLs unintentionally.
 - Impose a limit on the maximum number of keywords that can be searched for (default: 1024) and allow XFES to fetch the max_clause_count configuration value where possible to avoid a shard exception.
 - Steps to avoid accessing a Less mixin from one file defined in another. Move to setup.less but retain reference to the original for backwards compatibility for now.
 - When unfurling URLs using unfurl.php ensure we're using the correct style for the user and passing in the default template params.
 - Update timezone data
 - Add Sri Lanka to the list of locales
 - Handle a race condition where proxy images get pruned in the middle of a request more gracefully
 - When moving the first post out of a thread with no other visible posts, correctly set the state of the new first post and original thread record
 - Use the number of replies in a question thread as the number of answers instead
 - Allow toggling the direction of date sort orders on user upgrade lists
 - Avoid throwing an error when sending an activity summary that has a section title containing a dot.
 - Resolve a number of rich text editor quirks when pasting various content.
 - When fetching metadata from a URL improve checks to ensure we get a valid charset encoding where possible and prevent against an Error exception thrown if an invalid character set encoding is encountered.
 - When copy/pasting content that contains quotes, tidy up the output and ensure it outputs correctly with the appropriate attributes to maintain quote author and content.
 - When parsing a color string (such as for the metaThemeColor property usage) normalize the color to its hex value by default.
 - When typing conversation recipients allow a min length value of 1 for single character usernames.
 - Improve performance of the attachment manager when working with mind-boggling numbers of attachments
 - Workaround a tooltip displaying potentially in the wrong language in the editor draft button drop down.
 - Use text-shadow to give a stroke effect to usernames whilst avoiding a wrapping issue
 - Remove reference to zxcvbn.min.js source mapping to avoid 404 error.
 - Skip some parts of the _preSave method in Thread entity if thread does not have a forum.
 - Prevent iconic labels from overflowing their container
 - Introduce a code event for manipulating the current page cache ID
 - When uninstalling content type data during an add-on uninstall set the attachment content_id to 0 as well as unassociated to avoid conflicts if reinstalling. The files will be cleaned up later.
 
The following public templates have had changes:
- _help_page_bb_codes
 - bb_code_tag_quote
 - conversation_add
 - conversation_invite
 - core_blockmessage.less
 - core_datalist.less
 - core_input.less
 - core_overlay.less
 - editor_base.less
 - forum_post_thread
 - member.less
 - member_tooltip
 - member_tooltip.less
 - member_view
 - select2.less
 - setup.less
 - thread_list_macros