Code refactor, Performance & Security Improvements
- Added "Block Malicious Scripts in Images" feature to the LazyLoad.
Lazy load scans for all images anyway so now it also strips inline scripts and dangerous attribute from images to prevent XSS attacks. You can enable/disable this feature as well a logging of blocked scripts/attributes in Athlete2 / Theme Settings / General: "Block Malicious Scripts in Images", "Enable Logging for Malicious Scripts in Images"- Improved LazyLoad performance: reworked image replacement logic using a single-pass callback and multi-tier image dimension caching, significantly reducing memory overhead.
- The `AddBodyClass` observer now loads all required configuration values in a single pass instead of multiple individual calls.
- Requirejs Configs clean up
Removed path mapping for files rarely used from requirejs-config.js to not bloat it since it is loaded in first row during the page load. If you customized some of the theme files, make sure that they do not rely on the removed requirejs configs.- Introduced new ViewModels (`Customer` and `Request`) to handle logic previously residing in Helpers and Blocks. Marked numerous legacy(object manager based) methods in `SimpleTemplate`, `Template`, and `Helper` as deprecated. Most of the methods which still rely on object manager will be replaced with di injection and moved to view models or service classes.
If you did override blocks in theme/module xml makes sure to add approriate view models (if required. see original .xml's) to them. For now there is a fallback to helper in templates but it will be removed in future versions.- Improved accessibility for owl carousel navigation arrows
- Athlete2 Slideshow: Removed unused `ChildTemplate` block and constants.
- Product Slider: added caching to product collection
- Replaced Magento's matchMedia library with native js methods throughout the theme.
- Theme js clean up and imprvements: moved some of the code to dedicated scripts such as catalog or product page.
- Moved overlay search js to separate file and call it only if Overlay seach is enabled.
- Reworked login drop down/modal to prevent cached results. Its content now updated with js based on user state.
- Modals performance improvements
- Improved performance of sticky sidebar js
- Replaced hoverIntent library on drop down to native methods.
- Carousel Module: Fixed an issue where unique identifier validation incorrectly flagged existing carousels during updates.
- Fixed: Added a check to prevent division by zero errors when a product price is 0 in "Sale Price Difference".
- Fixed: condition to show filters on catalog page.
- Code refactor: Moving from Helper "God" class and massive object manager usage. Marked numerous legacy methods in `SimpleTemplate`, `Template`, and `Helper` as deprecated.
- Introduced new View Models: CmsProcessor, ConfigProvider, Customer, RenderCssViewModel, StoreInfo, UrlProvider.
- Refactored the Admin Notification Feed: Improved general flow, added locks, ssl for curl and changed trigger to admin login to improve performance. It will now trigger feed check only once, even if it fails to fetch the data.
- Removed require_js.phtml template hack and replaced it with RemoveRequireJsConfigs plugin which only triggers during requirejs-config build.
Use observer to define which of configs to remove for each module. See Observer/RemoveRequireJsConfigs as an example.
- Requirejs Configs clean up
Removed path mapping for files rarely used from requirejs-config.js to not bloat it since it is loaded in first row during the page load. If you customized some of the theme files, make sure that they do not rely on the removed requirejs configs.- RequireJS configurations for Owl Carousel and Catalog Ajax are now conditionally removed on server-side when these features are disabled, reducing unnecessary script loading. Previously it was added as condition directly in requirejs-config.js.
- Improved categories fetch performance.
- Various improvements in mage menu js (frontend). Remove usage of heavy libraries and dependencies (matchMedia, jquery widget, velocity, perfect scrollbar).
- Disable "Perfect Scrollbar" in Olegnax / Mega Menu / Configuration to use new and optimized version of mega menu. Version with perfect scroll was left as fallback.
- Js Split and Clean up - mega menu now comes with various verion of js based on global mega menu settings to reduce unused js.
- "Simple menu" option - enable it (Olegnax / Mega Menu / Configuration) if you do not use wide drop downs with custom positioning.
- Refactored the module to use a Model-based architecture. Moved business logic from the `Helper` into specialized `Brand`, `Attribute`, and `ImageFile` models.
- Persistent Caching: Implemented a new persistent file mapping cache for brand images, reducing disk globbing and improving load times.
- Added a new console command `bin/magento olegnax:brandslider:warm-cache` to pre-generate brand image mapping caches for faster loading.
- Grid CSS was removed from Less files and now generated in templates to reduce global css.
- Remove dependency on jquery ui effect fron brand slider js
- Refactored module Less files into a more modular structure.
- Moved inline styles to dynamic css for CSP compatibility
- Moved quickview page related css to separate file and only request it inside of the quickview.
- Quickview modal js now loaded on first click on quickview button instead of during page load.
- Refactored controllers to use modern Action Interfaces to enhance security and compatibility.
- Added standard Magento delete confirmation dialogs to the Admin UI for Groups and Slides.
- Slight improvements in frontend performance. Disabled next page preload during page load by default.
- Removed type declaration in listAjax plugin to fix compatibility issues with 3rd party modules.
- Fixed stock sorting order when MSI is enabled, so "out of stock" product are rendered after "in stock" products.
- Removed type declaration in listAjax plugin to fix compatibility issues with 3rd party modules.
Added a new console command to process image options in theme settings to fix Magento 2.4.7-p1+ validation errors.
- Most of the file was update to implement improvements from the main theme. Kepp it in mind if you made customizations.
- Menu js now only on first click on menu toggle.
- Removed next/prev arrows from loading instead of hiding it.
Important! This command will change records in database so make sure to make a database backup before run it.
Run 'bin/magento athlete2:settings:images' command if you face "Invalid file name" error during theme settings save. You can add --dry-run param to check which images it will process, e.g.: 'bin/magento athlete2:settings:images --dry-run'.
Layered Navigation
- Fixed missing grid items animation after LESS changes in Magento 2.4.8.
- Fixed Owl Carousel dots alignment option after LESS changes in Magento 2.4.8.
- Fixed subcategories slider widget not showing settings due to an incorrect dependency.
- Fixed "Show Filter"(Sidebar) toggle now being hidden on 1-column catalog pages (filters are moved to a slideout on such pages and already have a toggle).
- Added missing disableSwatchForOutOfStockProducts method in the swatch renderer, which was introduced in previous Magento versions.
- Improved vertical alignment of Compare and Wishlist buttons in Quickview when they appear below the Add to Cart button.
- Quickview now loads the product page in the parent window instead of within a modal on redirect.
- Removed unused MSI dependencies from the Layered Navigation module.
- Added an option to sort by stock, which is disabled by default. When enabled, out-of-stock products appear after in-stock products.
- Reworked "Sort by Out of Stock" feature to ensure compatibility with other modules, sorting, and filters.
Magento 2.4.8 Compatibility
Plese note: A large number of .less files have been updated in both the theme and modules due to the stricter LESS preprocessor in Magento 2.4.8.
Core Module
Performance improvements
Added "tiny" and inline versions of Owl Carousel CSS. The "tiny" version includes only core styles since the theme handling visual styling.
Improvements
Language switcher now uses an <img> tag instead of background image
Removed outdated CSS vendor prefixes
Added caching for lazy load image placeholders
Reworked logo implementation using the <picture> tag
Fixes
Reviews link now correctly opens the tab (when reviews are placed in a tab)
"Hide sidebar" option now only hides it on pages with filters
Other
Addressed some PHP deprecation warnings
- Fixed PHP 8.3 deprecation errors
- Fixed show/hide filters toggle does not work after content update with ajax
- Fixed has-active class is missing in menu (previously moved in Magento from php to js)
- Fixed loop option for self hosted vide on product page
- Fixes properly replace fotorama image placeholder after gallery loaded in quickview (only noticeable when images have transparent background)
- Fixed swatch renderer error when price difference is disabled
- Reworked "to top" js to improve performance
- Fixed "hide-on-tablet" class in mobile theme (was limited to 1024px)
- Mobile slideout now always open first section (with menu) when clicked on menu toggle (navigation item in header)
- Fixed missing padding in active filters when hide sidebar is enabled
https://athlete2.com/documentation/changelog.html#v1.8.0.7no change log for this version current
- Various minor js optimizations
- Added: sale price difference labl for configurable products
- Added: sync price on sticky add to cart block (with product info block)
- Added: fake countdown now saves first visit to calc elapsed time instead of start over on each page load.
- Reworked countdown so now all widgets use the same global timer instead of creating new timer for each countdown. Aswell as other minor optimizations.
- Stock info block now shows for MSI products even if it can't get base stock value
- Fixed: Mega menu, exclude from all categories if there hidden menu items
- Fixed: thumb carousel arrows does not work if dots are disabled
- Fixed: thumb carousel dots styles are now generated (for widgets) even if they are disabled for catalog.
- Fixed: menu drop down font size option
- Fixed: magento default widget tempalte
- Fixed: More/less expand from general settigns. Max height now set properly.
- Updated core module to version 1.3.4.5 (does not affect theme functionality so it is optional)
- Added: option to hide newsletter in footer
- Added: option to set closable sidebar closed by default.
- Added: separate font size options for mega menu 2nd level items
- MegaMenu active menu items are now highlighted via js since in Magento 2.4.7 it was removed from php side.
- Fixed: MegaMenu item with toggle does not open link on second click due to new wrapper in 1.8
- Fixed: passed proper css selector for blog listing lazy load
- Fixed: Sale price difference label double currency conversion
- Fixed: missing sale price difference label in Magento 2.3.3 patch
- Updated Core module to 1.3.4.3 version which includes css escaper method (does not required by the theme)
- Various fixes for theme appearance options
- Minor css fixes
Hot Fixes and Improvements
Improvements:
Fixes:
- Changed the way total sold amount is collected for stock info block to improve performance
- Added max width to fotorama placeholder image when vertical thumbnails are enabled to prevent image shift when gallery is loaded
- Infinite slide widget now allows zero values for rotate option
- Removed text from small screen sizes from social share icon on product page, when its position is in title.
- fotorama gallery shift in quickview due to new styles in 2.4.7
- Added new font, gap and padding options for small screen sizes for Subcategory widgets.
- MSI related classes are now loaded on demand and so the MSI modules not longer required to be installed.
- Fixed: image_with_borders template in 2.4.x patches missing height variable error.
- Fixed: amasty xsearch patch missing variable error
- Fixed: language switcher "no-move" template (used in footer on Fi demo) does not open modal on mobile
- Fixed: stock info wrong product used. Changed the way a stock info block gets the current product.
- Fixed: heredoc variable for move mobile block reposnsible for moving blocks below the main info block when any of the block a positioned below the gallery on desktop
- Fixed: brands bordered grid on small screens, left side border line was missing.
- Fixed: Patches for magento 2.3.3 and 2.3.4 - recently viewed widget missing title.
- Fixed: Related/upsells layout 6 for patches for magento 2.3.3 and 2.3.4
- Fixed: Magento generate classes for product thumbnails based on product id. This can cause issues when there are product blocks with the same products but different image sizes (e.g. list and grid layouts). Now class names will be based on sizes also.
- Fixed: Breadcrumbs missing categories in path on product page
- Fixed: possible issue with images on product edit page in admin panel on lower version of Magento
- Fixed: css only product gallery for magento below 2.4
- Fixed: subcategories widget images wrong path on lower version of Magento
- Fixed: login modal button is locked when recaptcha enabled
https://athlete2.com/documentation/changelog.html#v1.8.0.1