What's Changed
As you can see, there are many many changes in this release! Thanks to all of the contributors for keeping OpenMage one of the fastest and most secure robust open source eCommerce platforms around!
Fixes
- Show correct version for main branch by @sreichel in #4137
- Allow to use $before parameter in addCss/addJs from XML by @Caprico85 in #4151
- Fixed issues #4134 undefined array index label_use_default in Mage_Catalog_Model_Product_Attribute_Backend_Media by @empiricompany in #4136
- Fix strlen() null deprecation in AccountController.php by @kiatng in #4155
- Added
error
directory to checks + php8.4 fix by @sreichel in #4184 - Add email link to set password. See issue #1205. by @kiatng in #3262
- Fixed undefined array key "values" in Mage_Catalog_Model_Product_Attribute_Backend_Media by @S0FTWEX in #4125
- Fix ACL Resource "admin/sales/order/actions/use" not found by @pbaldauf in #4199
- PHP8: Fixes passing null to
str_contains()
by @sreichel in #4203 - Fixed missing/wrong admin
_setActiveMenu()
by @sreichel in #4209 - Fix wrong Preview link on CMS pages grid by @Caprico85 in #4214
- In product list all swatches are always shown even if they are not available when "Display Out of Stock Products" is disabled by @empiricompany in #4100
- Openmage admin theme: Change background-color for active sections by @sreichel in #4219
- Backport: Added unittest for date and datetime by @sreichel in #4210
- Fixed strcmp(): Passing null to parameter #1 ($string1) of type strin… by @kiatng in #4212
- Custom product types - increased column length for widgets by @sreichel in #4226
- PHP8.1: Added getter method for
Mage_Adminhtml_Block_Widget_Grid_Column::getType()
to return string by @sreichel in #4238 - Admin theme: Change background-color for active sections by @sreichel in #4246
- Deprecated functionality: preg_match(): Passing null to parameter #4 … by @addison74 in #4251
- Bugfix: passing invalid ID to
Mage_Catalog_Model_Url::refreshRewrites()
by @sreichel in #4259 - Configurable: remove unused double foreach loop by @Hanmac in #4008
- Added
ext-ftp
to requirements by @sreichel in #4270 - Fixes configurable swatch color picker in legacy admin theme by @sreichel in #4218
- Fixed incorrect datetime in block, ref #1525 by @sreichel in #4242
- PHP8: base64_decode(): Passing null is deprecated by @sreichel in #4281
- Fix placeholder image in WYSIWYG editor when using a different admin theme by @Caprico85 in #4240
- [PHP 8.4] fgetcsv() - The $escape parameter must be provided as its default value will change by @addison74 in #4297
- [PHP 8.4] fputcsv() - The $escape parameter must be provided as its default value will change by @addison74 in #4298
- Fixes
Mage_Core_Helper_Url::removeRequestParam()
by @sreichel in #4295 - PHP84: ignore deprecated E_STRICT by @sreichel in #4289
- Fix deprecated message for strlen first value null by @leissbua in #4306
- Fixed full name observer calls in config.xml by @sreichel in #4309
- Fix
Mage_Adminhtml_Block_Template::isOutputEnabled()
for invalid module by @sreichel in #4320 - Fix: cannot add to wishlist from tag page - Customer account by @sreichel in #4329
- Fix duplicate block rendering with getSortedChildren() by @justinbeaty in #4337
- [PHP 8.x] Deprecated functionality: strtotime(): Passing null to para… by @addison74 in #4339
- Fixes line-height for some H4 in admin legacy theme by @sreichel in #4335
- Added
ext-pdo_mysql
to checks by @sreichel in #4350 - Fix: create empty SimpleXMLElement by @sreichel in #4351
- Bugfix: cant create order from admin backend by @sreichel in #4348
- Deprecated functionality: preg_replace() by @addison74 in #4311
- Fixed null deprecation in Varien/Convert/Parser/Xml/Excel by @kiatng in #4375
- Fixed null deprecation in
Mage_Catalog_Model_Product_Option_Type_Text::validateUserValue()
by @kiatng in #4357 - Bugfix:
Mage_Adminhtml_Helper_Dashboard_Data::countStores()
on null by @sreichel in #4370 - Fix validateHttpVersion to be RFC 1945 and RFC 7230 compliant by @leissbua in #4368
- Fix for catalog_product_relation not being deleted when bundle option deleted. by @dannydnz in #4395
- Fix unserializeArray on nonserialized string by @Hanmac in #4387
- [Tax] add FK to tax/sales_order_tax again by @Hanmac in #4334
- Fix Possible Array Access warnings in Captcha Observer by @Hanmac in #4424
Features
- New feature: Added "Newsletter Subscription Form" widget by @empiricompany in #4095
- Added support to specify file upload dir in system configuration by @eneiasramos in #4079
- Add new method to get config value directly from DB bypassing cache. by @kiatng in #4163
- Updated
Varien_Object::getData()
and addedgetDataByKey()
&getDataByPath()
by @sreichel in #4205 - Admin config: added input validation & hide disabled options by @sreichel in #4232
- Better config for admin RSS links by @sreichel in #4243
- Prevent delete/disable CMS pages used in configuration by @sreichel in #4239
- Unified admin grid columns and added XML configuration by @sreichel in #4225
- Make
Mage_GiftMessage
optional in templates by @Hanmac in #4266 - Cache
isModuleOutputEnabled
orisModuleEnabled
status by @sreichel in #4323 - Use
transliterator_transliterate
to generate "url_key" by @sreichel in #4315 - New feature: Highlight popular countries in country select by @ma4nn in #4089
- Install TinyMCE 7.5 via composer by @sreichel in #4113
Security
- TinyMCE security fix by @sreichel in #4157
- Obfuscated login credentials in stacktraces by @sreichel in #4388
DDEV
- [DDEV] Adding n98-magerun support for the test environment by @addison74 in #4107
- DDEV: file permission and bugfix by @sreichel in #4145
- DDEV: command for local development by @sreichel in #4133
- [DDEV] Support for
xhprof
/xhgui
by @sreichel in #4325 - DDEV: updated install script by @sreichel in #4407
Coding style
- PHPCS: fixed php compatibility warning by @sreichel in #4148
- PHPCS: ignore
mcrypt
related warnings by @sreichel in #4147 - PHP-CS-Fixer: added check for double quotes by @sreichel in #4126
- PHPCS: fixed last PHPCompatibility check errors by @sreichel in #4164
- Small DocBlock update by @sreichel in #4160
- PHP-CS-Fixer: added check for short array syntax and logical operators by @sreichel in #4181
- PHP-CS-Fixer: added check for concat spaces by @sreichel in #4185
- PHPCS: patched ECG standard by @sreichel in #4149
- Rector: CQ - UnusedForeachValueToArrayKeysRector by @sreichel in #4111
- Rector: DeadCode - removed useless docblocks by @sreichel in #4201
- Rector: added dependency and basic rules by @sreichel in #4213
- Skip some rector rules by @sreichel in #4227
- Add template files to phpstan checks by @sreichel in #4245
- PHPCS-ECG: fail on error by @sreichel in #4324
- Code quality: added PHPMD, updated workflow by @sreichel in #4303
- Rector: updated UnitTests by @sreichel in #4391
- Rector: set methods to private in
Mage.php
by @sreichel in #4392 - Rector: removed useless variables by @sreichel in #4393
- Follow coding-standard PER-CS2.0 by @sreichel in #4372
- PHPCS: merged workflows by @sreichel in #4416
PHPStan
- Phpstan fixes by @sreichel in #4116
- PhpStan fixes by @sreichel in #4146
- Bump phpstan to level5 by @sreichel in #4265
- PhpStan: bumped to 1.12.1 & renamed config files by @sreichel in #4183
- PhpStan: L7 update for
Mage_Sendfriend
by @sreichel in #4187 - Fixed phpstan on Mage_Customer_Model_Customer by @kiatng in #4190
- Some phpStan fixes by @sreichel in #4241
- Some phpstan fixes by @sreichel in #4273
- Some phpstan fixes by @sreichel in #4276
- Some phpstan fixes by @sreichel in #4283
- PHPStan: added some class vars to templates by @sreichel in #4322
- PHPStan: some fixes by @sreichel in #4328
- More phpstan fixes by @sreichel in #4291
- PHPStan: some fixes by @sreichel in #4346
- PhpStan: some fixes by @sreichel in #4363
PHPUnit
- PhpUnit: use database for tests, added tests by @sreichel in #4138
- PHPUnit: added some tests by @sreichel in #4204
- Phpunit: ignore timezone in date tests by @sreichel in #4284
- Added more PhpUnit tests by @sreichel in #4236
- PhpUnit: added tests by @sreichel in #4321
- PHPUnit: added tests by @sreichel in #4340
- Added test, ref #4352 by @sreichel in #4389
Cleanup
- Removed empty
Mage_Poll
config section by @sreichel in #4122 - Removed MTF by @sreichel in #4161
- Updated .gitignore, ref #4161 by @sreichel in #4167
- Remove
Mage_Sendfriend
by @sreichel in #4274 - PHPMD: remove unused private methods/fields by @sreichel in #4397
- Cleanup: removed broken
Mage_Core_Controller_Front_Router
by @sreichel in #4356 - Remove gitpod files by @sreichel in #4404
Docs
- Docs: Added section for PhpStorm (SCSS) file watcher by @sreichel in #4208
- Documentation v4 📝 - github.io page by @sreichel in #4156
- DOCs: update by @sreichel in #4349
Other
- CodeQL: updated workflow by @sreichel in #4172
- Added method to make use of
Mage_Core_Model_Security_HtmlEscapedString
easier by @sreichel in #4123 - Worklflow: update copyright monthly by @sreichel in #4176
- Updated Copyright by @github-actions in #4189
- Fixed some typos by @sreichel in #4200
- Preview PR in gitpod by @sreichel in #4175
- Updated Copyright by @github-actions in #4237
- Added polyfill-8.3/8.4 in Composer by @addison74 in #4268
- Updated zf1-future to 1.24.1 by @sreichel in #4278
- Better caching for phpstan workflow by @sreichel in #4269
- Updated Copyright by @github-actions in #4327
- Hotfix:
core_store.store_id
can benull
by @sreichel in #4330 - Bugfix: cant view order in customer account by @sreichel in #4345
- Bugfix: hide exception, ref #4303 by @sreichel in #4344
- Bugfix: fixed sitemap config depend nodes by @sreichel in #4369
- Fixed issue #4384 bug on not able to view order details in frontend. by @kiatng in #4385
- Updated Copyright by @github-actions in #4400
- Readme: fixed badges by @sreichel in #4413
Dependabot
- Bump squizlabs/php_codesniffer from 3.10.1 to 3.10.2 by @dependabot in #4109
- Bump friendsofphp/php-cs-fixer from 3.59.3 to 3.60.0 by @dependabot in #4127
- Bump phpstan/phpstan from 1.11.5 to 1.11.7 by @dependabot in #4090
- Bump phpseclib/phpseclib from 3.0.39 to 3.0.41 by @dependabot in #4154
- Bump friendsofphp/php-cs-fixer from 3.60.0 to 3.62.0 by @dependabot in #4153
- Bump friendsofphp/php-cs-fixer from 3.62.0 to 3.64.0 by @dependabot in #4178
- Bump phpstan/phpstan from 1.11.7 to 1.12.0 by @dependabot in #4177
- Bump tj-actions/changed-files from 44 to 45 by @dependabot in #4170
- Bump phpstan/phpstan from 1.12.1 to 1.12.2 by @dependabot in #4188
- Bump peter-evans/create-pull-request from 6 to 7 by @dependabot in #4193
- Bump symfony/polyfill-php81 from 1.30.0 to 1.31.0 by @dependabot in #4195
- Bump symfony/polyfill-php82 from 1.30.0 to 1.31.0 by @dependabot in #4194
- Bump symfony/polyfill-php80 from 1.30.0 to 1.31.0 by @dependabot in #4197
- Bump symfony/polyfill-php74 from 1.30.0 to 1.31.0 by @dependabot in #4198
- Bump phpstan/phpstan from 1.12.2 to 1.12.3 by @dependabot in #4196
- Bump phpseclib/phpseclib from 3.0.41 to 3.0.42 by @dependabot in #4222
- Bump squizlabs/php_codesniffer from 3.10.2 to 3.10.3 by @dependabot in #4221
- Bump composer/composer from 2.7.7 to 2.7.9 by @dependabot in #4234
- Bump composer/composer from 2.7.9 to 2.8.1 by @dependabot in #4253
- Bump phpstan/phpstan from 1.12.3 to 1.12.6 by @dependabot in #4252
- Bump rector/rector from 1.2.5 to 1.2.6 by @dependabot in #4254
- Bump rector/rector from 1.2.6 to 1.2.7 by @dependabot in #4271
- Bump macopedia/phpstan-magento1 from 1.0.7 to 1.0.8 by @dependabot in #4272
- Bump phpstan/phpstan from 1.12.6 to 1.12.7 by @dependabot in #4300
- Bump rector/rector from 1.2.7 to 1.2.8 by @dependabot in #4301
- Bump shardj/zf1-future from 1.24.1 to 1.24.2 by @dependabot in #4319
- Bump pelago/emogrifier from 7.2.0 to 7.3.0 by @dependabot in #4332
- Bump composer/composer from 2.8.1 to 2.8.2 by @dependabot in #4333
- Bump ezyang/htmlpurifier from 4.17.0 to 4.18.0 by @dependabot in #4331
- Bump symfony/process from 5.4.45 to 5.4.46 by @dependabot in #4336
- Bump rector/rector from 1.2.8 to 1.2.10 by @dependabot in #4343
- Bump phpstan/phpstan from 1.12.7 to 1.12.9 by @dependabot in #4342
- Bump composer/composer from 2.8.2 to 2.8.3 by @dependabot in #4366
- Bump squizlabs/php_codesniffer from 3.10.3 to 3.11.1 by @dependabot in #4367
- Bump macopedia/phpstan-magento1 from 1.0.8 to 1.1.0 by @dependabot in #4379
- Bump friendsofphp/php-cs-fixer from 3.64.0 to 3.65.0 by @dependabot in #4380
- Bump actions/setup-python from 4 to 5 by @dependabot in #4365
- Bump tinymce/tinymce from 7.5.1 to 7.6.0 by @dependabot in #4422
- Bump mklkj/tinymce-i18n from 24.11.25 to 24.12.9 by @dependabot in #4423
- Bump squizlabs/php_codesniffer from 3.11.1 to 3.11.2 by @dependabot in #4420
- Bump phpseclib/phpseclib from 3.0.42 to 3.0.43 by @dependabot in #4421
- Bump composer/composer from 2.8.3 to 2.8.4 by @dependabot in #4419
New Contributors
- @github-actions made their first contribution in #4189
- @S0FTWEX made their first contribution in #4125
- @pbaldauf made their first contribution in #4199
- @dannydnz made their first contribution in #4395
Full Changelog: v20.10.1...v20.11.0