+
+**Enhancements** 🚀
+
+- Improved Avatar image to ensure it correctly displays images of all aspect ratios; [#4175](https://github.com/ExpressionEngine/ExpressionEngine/issues/4175)
+- Default search in Entry Manager to "Titles only"; [#3431](https://github.com/ExpressionEngine/ExpressionEngine/issues/3431)
+- Added `{index}` and `{total_items}` variables to options fieldtypes; [#3363](https://github.com/ExpressionEngine/ExpressionEngine/issues/3363)
+- Enable on-the-fly cropping from image center; [#2947](https://github.com/ExpressionEngine/ExpressionEngine/issues/2947)
+- Added Debug Channel Entries Utility; [#3024](https://github.com/ExpressionEngine/ExpressionEngine/issues/3024)
+- Modified the addon update process to stay on Updates tab if more updates are available; [#2860](https://github.com/ExpressionEngine/ExpressionEngine/issues/2860)
+- Enabled testing of email configuration from email settings page
+
+**Bug Fixes** 💃🐛
+
+- Resolved issue where language was not fully loaded for date picker in channel form
+- Resolved [#4180](https://github.com/ExpressionEngine/ExpressionEngine/issues/4180) where some regular expression patterns could not be used for validation
+- Updated CKEditor version for RTE fieldtype
+- Added more plugins and better support for advanced configuration of CKEditor in RTE
+- Resolved issue when using out-of-date translation files could cause language keys to show instead of messages
+- Resolved [#3950](https://github.com/ExpressionEngine/ExpressionEngine/issues/3950) where order of upload directories and folders was not consistent in dropdowns
+- Resolved [#4045](https://github.com/ExpressionEngine/ExpressionEngine/issues/4045) where Relationship field did not fully respect "sort by date" setting
+- Resolved [#3959](https://github.com/ExpressionEngine/ExpressionEngine/issues/3959) where sort order of categories in Entry Manager filter could have been wrong
+- Resolved issue where template conditionals could show PHP warning
+- Resolved [#4165](https://github.com/ExpressionEngine/ExpressionEngine/issues/4165) where Pro Variables prolet was showing PHP warning if single variables were used
+- Resolved [#3844](https://github.com/ExpressionEngine/ExpressionEngine/issues/3844) where applying `search:field="IS_EMPTY"` parameter to Grid field would cause PHP warning
+- Resolved issue where the Pro Variables prolet could have bad links
+- Resolved [#4159](https://github.com/ExpressionEngine/ExpressionEngine/issues/4159) where on-the-fly image manipulations were not cleared
+- Resolved [#4135](https://github.com/ExpressionEngine/ExpressionEngine/issues/4135) where removing page with children from Structure was giving an error
+- Resolved [#4152](https://github.com/ExpressionEngine/ExpressionEngine/issues/4152) where Channel Form stylesheet was overriding some custom styles
+- Resolved [#4098](https://github.com/ExpressionEngine/ExpressionEngine/issues/4098) where Date field by default was not setting time to current
+- Resolved [#4141](https://github.com/ExpressionEngine/ExpressionEngine/issues/4141) where password reset pages were not using custom branded logo
+- Resolved [#4167](https://github.com/ExpressionEngine/ExpressionEngine/issues/4167) where filter dropdown sometimes requires more space
+
## Version 7.4.5
(Release: March 20, 2024)
diff --git a/docs/installation/requirements.md b/docs/installation/requirements.md
index 264519d7b..aaa3c11cf 100755
--- a/docs/installation/requirements.md
+++ b/docs/installation/requirements.md
@@ -104,7 +104,7 @@ If the [Server Compatibility Wizard](#server-compatibility-wizard) lists URL Seg
## Local Development
-ExpressionEngine can be ran locally on a number of local development environments. Below are just a few to help you get started.
+ExpressionEngine can be run locally on a number of local development environments. Below are just a few to help you get started.
NOTE: **Note:** When setting up your local environment, you must make sure it still meets the requirements listed above.
@@ -115,3 +115,197 @@ NOTE: **Note:** When setting up your local environment, you must make sure it st
- **[Devilbox](http://devilbox.org/)** - (macOS, Windows, Linux) Devilbox is another great stack which allows user to quickly get up and running with Docker environments. To install ExpressionEngine on Devilbox simply follow the [Setup ExpressionEngine Docs](https://devilbox.readthedocs.io/en/latest/examples/setup-expressionengine.html).
- **[MAMP](https://www.mamp.info/en/)** - (macOS, Windows) MAMP can be very convenient for local development, but it has some quirks. If you are using MAMP, you will need to use PHP 7+ due to outdated cURL and OpenSSL libraries that MAMP ships with its older versions of PHP.
+
+## PHP Version Requirements Across EE Versions
+
+
+
+
+
+
+
+
+
4.0
+
5.6
+
7.0
+
7.2
+
7.4
+
8.0
+
8.2
+
8.3
+
+
+
+
+
+
+ 7.4
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+ 7.2.8
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+ 7.0
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+ 6.4.15
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+ 6.0.0
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+ 5.4.3
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+ 4.3.8
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+ 3.5.17
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+ 2.11.9
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+ 1.7.3
+
+
+
PHP 4.0
+
PHP 5.6
+
PHP 7.0
+
PHP 7.2
+
PHP 7.4
+
PHP 8.0
+
PHP 8.2
+
PHP 8.3
+
+
+
+
+
+
+
+
+ - the PHP version is fully supported by this ExpressionEngine version
+
+ - the system will not work under this PHP version, or a significant part of functionality will not work
+
+ - some of the functionality might work incorrectly, or compatibility has not been checked
+
+
diff --git a/docs/member/password-validation.md b/docs/member/password-validation.md
index 9af2cc5b3..6cbbe20ef 100644
--- a/docs/member/password-validation.md
+++ b/docs/member/password-validation.md
@@ -17,7 +17,7 @@ It is recommended to select good a [password security policy](control-panel/sett
## Validation URL
- `{exp:member:validation_url fields="password_rank"}`
+ {exp:member:validation_url fields="password_rank"}
Return URL that is serving as the endpoint for validating member data and getting password rank. It can only accept POST requests sent via AJAX.
It returns a JSON string that can contain following keys:
diff --git a/docs/templates/conditionals.md b/docs/templates/conditionals.md
index a5f7afd45..a28ccc1af 100755
--- a/docs/templates/conditionals.md
+++ b/docs/templates/conditionals.md
@@ -429,7 +429,7 @@ You can test against the username of the currently logged in user.
Whether Multi-Factor Authentication is enabled for logged in user.
- `{if !mfa_enabled}Enable multi-factor authentication for more security{/if}`
+ {if !mfa_enabled}Enable multi-factor authentication for more security{/if}
### `segment_*X*`
diff --git a/theme/_assets/default.min.css b/theme/_assets/default.min.css
index a3f0af6ce..5ab44bbcf 100755
--- a/theme/_assets/default.min.css
+++ b/theme/_assets/default.min.css
@@ -48,7 +48,7 @@
* @link https://expressionengine.com/
* @copyright Copyright (c) 2003-2020, EllisLab, Inc. (https://packettide.com)
* @license https://expressionengine.com/license Licensed under Apache License, Version 2.0
- */.button{display:inline-block;border-radius:5px;border:1px solid #225aba;color:#225aba!important;padding:10px 14px;padding:8px 14px}a.button:hover{border:1px solid #225aba!important}.text-center{text-align:center}.light-shadow{box-shadow:0 1px 10px rgba(34,90,186,.2)}.large-shadow{box-shadow:0 4px 14px rgba(2,7,14,.2)}.i-arrow-down{display:inline-block;width:0;height:0;margin-left:6px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-menu{display:none;position:absolute;z-index:50;left:0}.dropdown-menu-inner{background-color:#fff;margin-top:10px;border:1px solid #ebecf4;border-radius:5px;min-width:60px;box-shadow:0 4px 14px rgba(2,7,14,.2)}.dropdown-menu a{color:#000!important;padding:6px 10px;text-decoration:none;display:block}.dropdown-menu a.active{font-weight:700}.dropdown-menu a:hover{color:#225aba!important}.dropdown.show .dropdown-menu,.dropdown:hover .dropdown-menu{display:block}.hamburger{height:16px;width:24px;min-width:24px;position:relative}.hamburger span{width:100%;height:2px;top:50%;margin-top:-1px;position:absolute;border-radius:1px;background-color:#fff;transition:all .2s ease}.hamburger span:first-child{top:0;margin-top:0}.hamburger span:last-child{top:auto;margin-top:0;bottom:0}.hamburger.close span:first-child{top:50%;margin-top:-1;transform:rotate(45deg)}.hamburger.close span:nth-child(2){transform:scale(1.6);opacity:0}.hamburger.close span:last-child{top:50%;margin-top:-1;transform:rotate(135deg)}.flex-container{display:flex}/*!
+ */.button{display:inline-block;border-radius:5px;border:1px solid #225aba;color:#225aba!important;padding:10px 14px;padding:8px 14px}a.button:hover{border:1px solid #225aba!important}.text-center{text-align:center}.light-shadow{box-shadow:0 1px 10px rgba(34,90,186,.2)}.large-shadow{box-shadow:0 4px 14px rgba(2,7,14,.2)}.i-arrow-down{display:inline-block;width:0;height:0;margin-left:6px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-menu{display:none;position:absolute;z-index:50;left:0}.dropdown-menu-inner{background-color:#fff;margin-top:10px;border:1px solid #ebecf4;border-radius:5px;min-width:60px;box-shadow:0 4px 14px rgba(2,7,14,.2)}.dropdown-menu a{color:#000!important;padding:6px 10px;text-decoration:none;display:block}.dropdown-menu a.active{font-weight:700}.dropdown-menu a:hover{color:#225aba!important}.dropdown.show .dropdown-menu,.dropdown:hover .dropdown-menu{display:block}.hamburger{height:16px;width:24px;min-width:24px;position:relative}.hamburger span{width:100%;height:2px;top:50%;margin-top:-1px;position:absolute;border-radius:1px;background-color:#fff;transition:all .2s ease}.hamburger span:first-child{top:0;margin-top:0}.hamburger span:last-child{top:auto;margin-top:0;bottom:0}.hamburger.close span:first-child{top:50%;margin-top:-1;transform:rotate(45deg)}.hamburger.close span:nth-child(2){transform:scale(1.6);opacity:0}.hamburger.close span:last-child{top:50%;margin-top:-1;transform:rotate(135deg)}.flex-container{display:flex}.docs-content-wrapper .content .ee-version-compatiblity td span{display:none}.docs-content-wrapper .content .ee-version-compatiblity .php-logo{height:18px;float:left;margin:5px 5px 0 0}.docs-content-wrapper .content .ee-version-compatiblity td.ee-version{background-color:#f7f8fa;min-width:105px}.docs-content-wrapper .content .ee-version-compatiblity td.ee-version span{display:flex;align-items:center}.docs-content-wrapper .content .ee-version-compatiblity td.ee-version img{height:20px;margin-bottom:0;border-radius:0;margin-right:5px}.docs-content-wrapper .content .ee-version-compatiblity .ee-fail{background-color:#f80808}.docs-content-wrapper .content .ee-version-compatiblity .ee-works{background-color:#00c571}.docs-content-wrapper .content .ee-version-compatiblity .ee-maybe{background-color:#ffb40b}.docs-content-wrapper .content .ee-version-compatiblity-legend span{display:inline-block;width:50px;height:25px;vertical-align:middle}.docs-content-wrapper .content .ee-version-compatiblity-legend span.ee-works{background:#00c571}.docs-content-wrapper .content .ee-version-compatiblity-legend span.ee-fail{background:#f80808}.docs-content-wrapper .content .ee-version-compatiblity-legend span.ee-maybe{background:#ffb40b}/*!
* This source file is part of the open source project
* ExpressionEngine User Guide (https://github.com/ExpressionEngine/ExpressionEngine-User-Guide)
*
diff --git a/theme/_assets/images/ee-logo-black.svg b/theme/_assets/images/ee-logo-black.svg
new file mode 100755
index 000000000..fb18ce5ac
--- /dev/null
+++ b/theme/_assets/images/ee-logo-black.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/theme/assets-src/images/ee-logo-black.svg b/theme/assets-src/images/ee-logo-black.svg
new file mode 100755
index 000000000..fb18ce5ac
--- /dev/null
+++ b/theme/assets-src/images/ee-logo-black.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/theme/assets-src/styles/utility.less b/theme/assets-src/styles/utility.less
index ee260352e..cd430207f 100755
--- a/theme/assets-src/styles/utility.less
+++ b/theme/assets-src/styles/utility.less
@@ -155,3 +155,71 @@ a.button {
.flex-container {
display: flex;
}
+
+// -------------------------------------------------------------------
+// PHP Version Compatibility table
+.docs-content-wrapper .content {
+ .ee-version-compatiblity {
+ td {
+ span {
+ display: none;
+ }
+ }
+
+ .php-logo {
+ height: 18px;
+ float: left;
+ margin: 5px 5px 0px 0px;
+ }
+
+ td.ee-version {
+ background-color: #f7f8fa;
+ min-width: 105px;
+
+ span {
+ display: flex;
+ align-items: center;
+ }
+
+ img {
+ height: 20px;
+ margin-bottom: 0;
+ border-radius: 0;
+ margin-right: 5px;
+ }
+ }
+
+ .ee-fail {
+ background-color: #f80808;
+ }
+
+ .ee-works {
+ background-color: #00c571;
+ }
+
+ .ee-maybe {
+ background-color: #ffb40b;
+ }
+ }
+
+ .ee-version-compatiblity-legend {
+ span {
+ display: inline-block;
+ width: 50px;
+ height: 25px;
+ vertical-align: middle;
+
+ &.ee-works {
+ background: #00c571;
+ }
+
+ &.ee-fail {
+ background: #f80808;
+ }
+
+ &.ee-maybe {
+ background: #ffb40b;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/theme/doc-page-template.html b/theme/doc-page-template.html
index 69d1870e2..93060081e 100755
--- a/theme/doc-page-template.html
+++ b/theme/doc-page-template.html
@@ -16,7 +16,7 @@
-
+