v2.3.0-rc1
Pre-release
Pre-release
For Administrators
Added
- New session handler for the
session
user tracking method: Database storage. Improves performance for concurrent requests in a session. - Option to allow users to delete their own accounts (#4065)
- Updated social login providers (#3492)
- Basic per-item search engine robots handling added to News and Pages
- Support for automated Git sync with a theme repo
- Theme preferences import/export added to 'database' admin area.
- New admin permission to grant access to the theme manager
- Approve all comments has been added as an option.
- Added Rich Textarea (WYSIYWG) for EUF (#1775)
- Support for hosting providers that disable PHP
readfile()
(#3528) - A PHP module check (similar to the one during installation) has been added to the PHPInfo page to quickly detect any missing modules after one migrates e107 to another PHP configuration.
- download plugin:
- Added
$host
variable support to Downloads » Protection » NGINX secure_link_md5 (#4010)
- Added
- forum plugin:
Changed
- The default user tracking method for new installations has been changed to
session
(wascookie
). Thecookie
user tracking method is expected to be removed in a future release. - The database handler PDO is now used by default. mysqli is available as a fallback.
- The social login flow has changed substantially. (#4099)
?route=system/xup/signup
was removed because?route=system/xup/login
now signs up and logs in via social login.- The return URL (query
back
) is no longer base64-encoded. - Some provider names have changed because the library (Hybridauth) has renamed them. These changes are accounted for in a database migration.
signup_shortcodes
generates login buttons somewhat differently now.- The page
?route=system/xup/test
is no longer enabled by default.
- The core integrity image (previously
./e107_admin/core_image.php
, now./e107_system/core_image.phar
) has a new backwards-incompatible format. As it is now a binary file, administrators upgrading e107 over FTP should ensure that they are using binary transfer mode. (Issue reference)- Before: PHP array stored in a global variable
- Now: JSON compressed into a phar
- Set initial value for email hide setting as TRUE when creating new user (#4107)
- Enable PHP session file garbage collection if it is not already enabled (#4113)
- Actually removed
e_LEGACY_MODE
this time (was only partially removed in v2.2.0) - Removed obsolete
ALLOW_AUTO_FIELD_DEFS
constant - Clear system cache after running Git pull or sync.
- Partial rewrite of
./e107_admin/fileinspector.php
(#4114) ./e107_admin/message.php
is now deprecated.- Removed
download_mail
pref (#3622) - "Update
./e107_core/bbcodes/bb_p.php
" (#3988) - Allow semicolons in URL query string (#3943)
- Allow
<a rel>
(#4128) - Default access to
post_script
changed from Main Admin to Nobody - Made mediapicker image selector the same width as Bootstrap input element.
- Removed admin-only limitation on system directory downloads.
- Removed
bootstrap4
theme, which is now at https://github.com/e107inc/bootstrap4 - Removed
landingzero
theme, which is now at https://github.com/e107inc/landingzero
Fixed
- PHP 7.3+ compatibility:
- Escape hyphen in regex for PHP 7.3 compatibility (#4036)
e_model
refactoring for compatible subclass method signatures (#2146){NEWSTITLE}
shortcode issue (#4035)- A bunch of PHP 7.4 syntax errors (524229b)
- Fixed inconsistent output in PHP < 7.3 in
e_parser::cleanHtml()
- PHP 7.4.7+ fatal error involving
core_index_index_controller
(#4203)
- A lot of PHP
E_NOTICE
issues (some of them documented in #4074) - "Bad File Detected" when uppercase extension used on image. (#4017)
- Fix for password filter in
usersettings.php
("strong password not being hashed correctly") (#4004) - Multiple comment navigation issues (#2425, #2281, #2937)
- Debug output removed from magic shortcode 'caption' (#3860)
- Added missing shortcode for
MENUAREA
{USER_EXTENDED}
'text_value' did not display the 'text' label correctly (#3957)- Legacy shortcode wrapper conflict with email template (#3726)
- Banlist search by IP fails when using IPv4 (#4009)
- Update user_comments when deleting comments from comment manager (#1706)
- Automatic password rehashing added to admin login page.
- Sudden logouts in admin area immediately after logging in (#1836)
- Improved upgrade compatibility from e107 v1.x
- Detect and refresh language file lists when scanning plugin directories.
- Relative times displayed incorrectly, like on the user profile (#4080)
- User profile pager broken (#4146)
- The email input field in
usersettings.php
is no longer required if thedisable_emailcheck
preference is truthy. (#4115) - Handle chatbox nicknames with a "." in them (#4162)
- Quick add users does not save selected userclass permissions (#4095, #1728)
./e107_admin/cpage.php
: Added check to prevent saving page/menu with emptypage_title
andmenu_name
fields when editing (#1474, #3986)- Properly detect antiflood and online tracking prefs (#3681)
- Admin-UI:
- Admin-UI/Form Handler: Fix for auto-link generation failing in create/edit mode.
- Get rid of autocomplete in the Admin-UI (#3131)
- Admin-UI: Boolean values are rendered differently if inline editing is enable or not (#3058)
- Improved body ID when Admin-UI is in use
- Unchecking all the display columns options and saving now clears the user preference and restores the coded default value found in
$fieldpref
- User Column preferences were being ignored when using ajax filtering. (#4121)
- Inline editing was not triggering events. (#4183)
- Issue with plugins, menus disappearing or displaying as being uninstalled. (#3741)
- Incorrect encoding of a plugin language file could cause json encoding to fail. (#3741)
- Anonymous comments wouldn't show up (#3829)
- Media-Manager Url fix. Fixed Media Preview. (#4049)
- Fixed Multiselect dropdown so that an empty value also gets saved
- Fixed
<body>
tag when using Menu Manager. Stored HTML-theme true/false var for each theme. - Avoid conflicts with earlier themes that may have a 'layouts' folder. (#3961)
- Avoid legacy globals with v2.x theme templates. (#4124)
- Themes that need to be purchased are now opened in a new window/tab instead of in an
<iframe>
to avoid same-origin restrictions (#4208) - Category template was changing news frontend template. Category template default should be blank. (#3739)
- Error display in
./e107_admin/newspost.php
- Nav styling small screens. (#4020)
- Removed Admin Nav button labels for all device and provided solution for plugins to add them back via CSS if required. Example added to
admin_style.css
(#4020) - Corrected internal parser conflict when code/pre tags contained curly brackets.
- Not able to use
<pre>
,<code>
syntax in TinyMCE area (#4058) - TinyMCE video tags fix and expansion of allowed attributes. (#3793)
- Support for attributes
onchange
,onclick
, etc. when script access is enabled (#3926, #4135) unsubscribe.php
and white page (no error) (#4178)- Check for
tablestyle()
to avoid fatal error with some themes (#4012) - bootstrap3 theme:
- bootstrap4 theme:
- Fix for Google and Microsoft advertising auto-tags
- If the system or cache image directories' parents don't exist,
mkdir()
would fail to create the system or cache image directories. - Prevent HTML code injection in
e107::url()
(#4054) - Add missing Slovak letters to
e_parse::toASCII()
method (#4101) - Removed Image
srcset
conflicts. Improves rendering quality of fine-lined PNGs under some conditions. (#2981) - Mailout - display message when no email address sources are selected (#3303)
- Remove hardcoded value for parameter order in
render_newsgrid()
(#4092) - Fixed Multiselect dropdown so that an empty value also gets saved.
- Clarify FPW testing mode button (#4007)
- Error page ignoring error_template changes (#4137)
- Fix for correct button class on core signup template (#2160)
- Signup template correct implementation of GDPR shortcode (#4055)
- Extended-User
type=radio
value conversion fix (#4144) - Check theme version is compatible and disable installation if necessary (#4200)
- SQL insert error when creating news and pages while not restricting robots (#4207)
- alt_auth plugin:
- download plugin:
- faq plugin:
- FAQ classic layout broken (#2822)
- featurebox plugin:
- Update Featurebox RSS feed to v2 standards
- Fix for correct category names (#3868)
- forum plugin:
- Fix admin dashboard link to reported forum posts
- Forum
e_frontpage
- allow selection of a specfic forum as frontpage - Tweak forum JS with poll plugin (#647)
- Forum RSS updated to v2 standards. (#3767)
- Fix LAN when error occurred when deleting a forum post
- Forum icons extra check added for consistency (#3948)
- Fix forum notify checkbox functionality (#1343)
- Forum email notification option was removed during forum upgrade (v1 to v2) (#176)
- Check for
$rankInfo
to prevent unwanted HTML output (#3827)
- gallery plugin:
- gsitemap plugin:
- gsitemap manual entry now working (#3866)
- import plugin:
- HTML import, check for PHP Tidy extension (#4027)
- linkwords plugin:
- Upgraded linkwords admin area to v2.x specifications.
- login_menu plugin:
- Hide login_menu when user registration AND login are disabled (#3527)
- news plugin:
- Fix for news sitelink when alias in use.
- Show message on news items when comments disabled while global comments are enabled (#3680)
- Correct message when no news items are found on specific day (#2694)
- News archive button template added. (#3862)
- Incorrect RSS URLs on news (#4172)
{ACTIVE}
shortcode typo (#4206)
- pm plugin:
- PM menu title setting is now respected (#3925)
- social plugin:
- user plugin:
- Created user/e_search addon and upgraded to v2 specs
For Developers
Added
e_db
is the new interface for database abstraction. It is implemented bye_db_pdo
(PDO-based) with a fallback ofe_db_mysql
(mysqli-based).- Automated tests have been introduced. (#4038)
- Automated release builds are now available. (#4114)
- Some third-party PHP dependencies are now managed by Composer. (#4099)
.editorconfig
now configures IntelliJ for the e107 code style when typing new code or reformatting existing code.- Magic shortcodes
- News breadcrumb added for magic shortcode:
{---BREADCRUMB---}
- News breadcrumb added for magic shortcode:
- Shortcode
{FAQ_HIDE}
added for manual collapse/expand management via template. - New File Inspector API through
e_file_inspector
(e107::getFileInspector()
) (#4114) - New social login API methods in
e_user_provider
(e107::getUserProvider()
) (#4099) - New API to detect if social login is enabled site-wide:
e107::getUserProvider()->isSocialLoginEnabled()
(deprecatese107::getPref('social_login_active')
) - Added
e107::getThumb()
to get thumbnailer class. e_shims
offers resilient replacements for some internal PHP functions.- Admin-UI additions:
- New "Search in Field" filter option added for field-specific search of text fields and similar. (
filter=>true
required) - Added
$fieldPrefName
to Admin-UI for saving/loading field preferences under another name. Default is the current table name. (#4089) - Enhanced admin-ui to support custom filter handlers on string searches (not just drop-drop filters as was already the case) (#4009)
- New "Search in Field" filter option added for field-specific search of text fields and similar. (
- Experimental support for theme HTML templates and layouts
- Bootstrap 3 shims into Bootstrap 4 (#2970)
- Added support for dynamic header/footer templates controlled by the
theme_shortcodes
class. (#3932) - Added class parameter to shortcodes for pager (
{USER_JUMP_LINK}
) (#4001) - A shortcode which allows you to display the userclass icon:
{USER_USERCLASS_ICON}
(#2225) - Lazy loading of images in
{NEWS_IMAGE}
shortcode can be invoked with{NEWS_IMAGE: loading=lazy}
- Cross-platform
strptime()
replacement:e_shims::strptime()
(#4077) e_parser
:- Added
d
(digits) flag to parser filter. e_parser::toAvatar()
:- Added
base64
option to allow for embedded image src. (useful when including avatars in email signatures) - Support for high-resolution avatar rendering with the
hd
option.
- Added
e_parser::toAudio()
:- Added 'autoplay' and 'controls' support
- Added
- Added options to
e_form::carousel()
to disable navigation and indicators. Custom navigation can now display a custom label when 'label' is included in the carousel array. e_form::mediapicker()
enhancements: Now accepts: 'resize', 'rename' and 'convert'$parms
. See PHPDoc for details.- Add tbox class to
e_form::datepicker()
input form (#3966) e_form
: Name for css submit-trigger group added.e_form
: Custom CSS class on container when modal/iframe is active.
Changed
- The
e_model
,e_front_model
, ande_tree_model
APIs have changed substantially in an effort to improve inheritance. (#2146) - Upgraded Bootstrap 3.3.7 to 3.4.1
- Upgraded PHPMailer to version 6
- Deprecated
e107::getHybridAuth()
- Updated theme specification for e107 v2.3.0 (#4141)
- Removed the need for the
BODYTAG
constant (#2308) - Moved hardcoded 'news' frontpage to its own
e_frontpage
addon callednews_frontpage
- Moved 'custom page' frontpage to its own
e_frontpage
addon calledpage_frontpage
e_db_pdo
failures to connect to the database are now catchablePDOException
exceptions.user_class::getUsersInClass()
now accepts extended user field names - just prefix those fields with "ue.".users_admin_ui
now has batch export enabled.- Admin-UI changes:
- Added an automatic fallback. When the user does not have access to the default route the dispatcher will now look for the first available access route and display it as the default. Also, renamed
checkRouteAccess()
tohasRouteAccess()
and renamedcheckModeAccess()
tohasModeAccess()
$adminMenu
now has a 'badge' attribute. Send it an array and it will render a badge in the navigation, e.g.,array('value' => $count, 'type'=>'warning')
.- Log Query, Page and Observer methods to
e_LOG
when in debug mode. - Respect boolean true/false writeParms in filter and batch dropdowns.
- Additional date filter options added for 3/6/9 months
- Added an automatic fallback. When the user does not have access to the default route the dispatcher will now look for the first available access route and display it as the default. Also, renamed
e_form::datepicker()
deprecated$option['type']
and added$option['mode']
as a replacement. Provides a workaround to a conflict involving a custom 'type' in thewriteParms()
.- Class
e_ajax_class
has been renamed toe_ajax
. - Class
e_signup_class
has been renamed toe_signup
. - The CONTRIBUTING.md document has been moved to the subfolder
./.github/
.
Fixed
- e107 in CLI mode had no
ADMINPERMS
. It now has all permissions inADMINPERMS
. - e107 in CLI mode had HTML debug output clearly not meant to show up in the CLI.
- Inconsistent result from
e107::getDb()->retrieve()
when using full query with multiple fields without 'multi' enabled. (#4111) e_db_pdo::copyRow()
- Greatly decrease collision chance- sitecontactinfo and contact form have the same style ID (#3684)
- parms doesn't work with new Admin UI with datestamp field (#3759)
- Trigger
admin_user_delete
was not firing (#3969) array_diff_recursive()
type check for recursion- Fix for using
{THEME}
(i.e. theme folder path) in footer part of theme layout. - Enhancements to the
{USERSETTINGS}
shortcode (#1767) - Wrong class name in
e_url
addon breaks admin configuration (#4075) - Admin Area » Meta Tags » Keywords to be considered as global keywords to append to all pages of the site as originally intended. Leave blank to disable.
- Admin-UI fixes:
- Column selector displaying improperly defined field. (#4083)
- Respect boolean true/false writeParms in filter and batch dropdowns. (#4086)
- Not able to use
<
and>
in text field in admin UI (#4102) - Removed duplicated
type=hidden
elements. (#3461) - Avoid an unexpected dropdown result if
writeParms['optArray']
is defined but empty. - Fatal error with boolean after using batch option (#3936)
- Check-all checkbox class conflict (#4166)
- Custom field problem with single quote value (#4165)
- Corrected multiple event includes conflict (#4079)
- Prevent e-modal conflict with other modals. (also supports data-modal-target attribute)
- Fix for faulty
srcset
height value when using overrides and a default. - Bootstrap 4
e_parser::toBadge()
fix. placeholder
attribute wasn't working on datepicker input.- Fix for
e_form::name2id()
when=
and?
characters are detected is found. - Improved URL matching for layout detection. Closest match will always be used.
- Consistency for news items check in months_menu and blogcalender_menu (#2694)
- Exclude
e107.css
doesn't work (#4153) - Database verification was failing when field name ended in a digit (#4155)
- Moved a hard-coded LAN in
e107_handlers/media_class.php
(#4043)