Skip to content

v2.3.0-rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@Deltik Deltik released this 08 Jul 18:35
· 1499 commits to master since this release
v2.3.0-rc1
3fcbcd3

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)
  • forum plugin:
    • Added minimal validation when creating new forum
    • Added new 'Forum icon' field (#3733)
    • Added confirmation dialog when deleting forum topic or post (#718)
    • Added cache for new forum posts menu

Changed

  • The default user tracking method for new installations has been changed to session (was cookie). The cookie 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 the disable_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 empty page_title and menu_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:
    • corporate.css fix font path glyphicons (#3998)
    • Moved modal to footer
    • Admin checkboxes are not visible in "Display Columns" window (#4171)
  • bootstrap4 theme:
    • Alerts not showing (#3686)
    • Fix for btn-default in user update information button (#2898)
    • Formatting fixes for private messenger and usersettings
    • More formatting fixes (#4161)
  • 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:
    • Using e107 as secondary authorisation causes blank page (#3983)
    • Fix for fatal error because not supported MySQL function (#3981)
    • Stop using outdated db_* methods (#3993)
    • Fix for wrong user data while creating user (#3982)
    • Fix for missing scenario with secondary source (#3984)
  • download plugin:
    • Download icons fix (#3865)
    • Reported links goto non SEF urls (#3622)
    • Allow class styling to download next/prev shortcodes (#3864)
    • Download RSS feed upgraded to v2 standards
    • Download meta description limit and formatting (#3270)
    • Multiple bugs in the report broken download feature (#2576, #3622)
  • 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:
    • Gallery custom caption fix. (#2816)
    • Strip any HTML from Gallery breadcrumb (#2979)
  • 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:
    • Reworked for Hybridauth upgrade (#3492, #4099)
    • Removed Google+ share button
    • Add Twitch and VK to Social Pages (#4167)
  • 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 by e_db_pdo (PDO-based) with a fallback of e_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---}
  • 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() (deprecates e107::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)
  • 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.
    • e_parser::toAudio():
      • Added 'autoplay' and 'controls' support
  • 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, and e_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 called news_frontpage
  • Moved 'custom page' frontpage to its own e_frontpage addon called page_frontpage
  • e_db_pdo failures to connect to the database are now catchable PDOException 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() to hasRouteAccess() and renamed checkModeAccess() to hasModeAccess()
    • $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
  • e_form::datepicker() deprecated $option['type'] and added $option['mode'] as a replacement. Provides a workaround to a conflict involving a custom 'type' in the writeParms().
  • Class e_ajax_class has been renamed to e_ajax.
  • Class e_signup_class has been renamed to e_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 in ADMINPERMS.
  • 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)