NitroPack 3.5.18 • OpenCart 3.0.x
12/10/2019
NOTE: Final version. No further versions will be released. For more information, check here: https://isenselabs.com/products/view/nitropack-complete-webstore-performance-optimization-framework
- Improvement: Added checks for URL filenames so that we don't do the raw checks if allow_url_fopen is disabled
- Improvement: Better OcModify compatibility
- Bug fix: Fix a scrolling issue on iPhone/iPad running on Journal theme
- Removed the PageSpeed score report widget from the dashboard


NitroPack 3.5.17 • OpenCart 3.0.x
10/24/2018

- Improvement: Better Internet Explorer compatibility
- Improvement: Clear cache on category edit
- Improvement: Add TTF, EOT and WOFF2 compression
- Improvement: Switch to v4 of the PageSpeed API
- Improvement: PHP binary in the POST data is now working fine with server secrity extensions
- Improvement: Better base CSS loading for faster rendering and reduced flickering (if any)
- Improvement: Add OcModify compatibility
- Improvement: Relative paths prefix will not be applied to empty url() CSS rules
- Improvement: Performance improvement in rendering the site when NitroPack's image lazy loader is enabled
- Improvement: Better handling of HTML code found after the closing BODY or HTML tags
- Improvement: Use the base CSS for category pages on the search pages
- Improvement: Better base CSS extraction method
- Improvement: Count affiliate tracking code clicks for cached pages
- Improvement: Better handling of image file names containing special characters in the image optimizer
- Improvement: Better compatibility with Windows based servers
- Improvement: Better UTF-8 support in the DOM parser
- Improvement: Attempt the creation of product to cachefile map only once instead of once per request
- Improvement: Handle incorrect Redis password gracefully
- Improvement: Better detection of minified resources
- Improvement: Better compatibility between Journal's image lazy loader and the one provided by NitroPack
- Improvement: Improved image dimension detection for the lazy loader
- Improvement: Better compatibility with SEO extensions
- Bug fix: Resolve an issue with duplicate entries for Journal's popup and header notice cookies when the same module is assigned to more than one layout
- Bug fix: Fix an issue in parsing HTML documents containing SVG elements
- Bug fix: Fix the SNI_server_name deprecation warning in the HTTP client
- Bug fix: Remove the use of create_function
- Bug fix: Remove catgorizr support since it is not detecting devices properly
- Bug fix: Resolve an issue in the DOM Parser's createElement() function
- Bug fix: Resolve an issue with many combined files being generated, when old ones can be reused
- Bug fix: Remove duplicate CRON entries
- Bug fix: Resolve and issue with base64 encoded images when the generic CDN is enabled
- Bug fix: Resolve a 'nesting level too deep' error
- Bug fix: Resolve an issue for pages without image tags, when lazy load is enabled


NitroPack 3.5.16 • OpenCart 3.0.x
04/05/2018

- Improvement: Make NitroPack's image lazy loading work better with Journal
- Improvement: Remove any BOM char when generating page cache
- Improvement: Better compatibility with ProductManager's bulk editing options
- Improvement: Bake in support for Journal's header notice and popup cookies
- Bug fix: Fix the relative URLs when extracting inline CSS
- Bug fix: Properly detect Journal's cookie names for the popups and header notices when precaching


NitroPack 3.5.15 • OpenCart 3.0.x
03/16/2018

- New Feature: AJAX cache
- allow certain routes to be cached even when requested via AJAX
- Improvement: Better first time visitor cache hit rate
- Improvement: Pre-caching no longer makes requests to non-cacheable pages
- Improvement: Pre-caching is now compatible with Journal2 popup and header notice
- Improvement: Simplified browser cache setup
- Improvement: General improvements in the way browser cache is handled
- Improvement: Add status check for the database cache in NitroPack's admin panel. The indicator will be red if there is an issue with the configuration or green if everything is working properly.
- Improvement: Precache the home page before checking the PageSpeed score. This should ensure more accurate results.
- Improvement: Add an option to configure the category depth for the pre-cache
- Improvement: Increase the range of resources that will get served from a configured CDN
- Improvement: Much better pre-caching algorithm
- Improvement: Update the default page cache expiration time to 30 days
- Improvement: Overall performance improvements
- Bug fix: Supported cookies now properly construct the cache filename
- Bug fix: Long-running CRON tasks were not sending out e-mails
- Bug fix: Fix an issue with reading attribute values in the DOM parser
- Bug fix: Fix an issue when there is only one image in the entire page
- Bug fix: Fix an issue with multiline script comments parsing in the DOM parser
- Bug fix: Fix the ProductManager compatibility
- Bug fix: Exclude caching for journal2/assets route by default. This helps fix sporadic issues with broken CSS and JS on Journal2
- Bug fix: Fix an issue with tab switching in the admin panel when jQuery does not recognize a selector properly


NitroPack 3.5.14 • OpenCart 3.0.x
12/18/2017

- Bug fix: Fix an issue with the gzdecode/gzinflate functions
- Bug fix: The NitroPack assets directory was getting rewritten to NITRO_ASSETS_FOLDER


NitroPack 3.5.13 • OpenCart 3.0.x
12/14/2017

- Bug fix: Fix an issue with detecting import statements in CSS when combining
- Bug fix: Fix the non-render-blocking loading of CSS and JavaScript under Safari when browser cache is present
- Bug fix: Fix the window.onload event when site is loading primarily from browser cache
- Bug fix: Displaying of errors is now disabled whenever NitroPack is active. This is to ensure there will be no compression issues.


NitroPack 3.5.12 • OpenCart 3.0.x
12/08/2017

- New Feature: Image lazy loading
- Improvement: Improved performance of the DOM parser
- Improvement: Automatically close unclosed CSS scopes when generating a combined CSS file
- Improvement: Switch to a better way of deferring CSS
- Improvement: Use NitroPack's temp directory instead of the system's temp to resolve rare permission issues
- Improvement: Minify the base CSS
- Improvement: Automatically disable Journal's cache while fetching image dimensions, so the image groups can be captured more accurately
- Bug fix: Fix an issue with the pre-caching when compression is enabled
- Bug fix: Fix an issue with the automatic image dimensions override when the same image dimensions are used in multiple modules on the same page.
- Bug fix: Display NitroPack's title properly when image dimension overrides are configured
- Bug fix: Fix an issue where NitroPack's initializer was being loading twice


NitroPack 3.5.11 • OpenCart 3.0.x
11/01/2017

- Improvement: Improve the automatic image dimensions detection
- Improvement: Properly encode image filenames with special characters when running image optimization
- Improvement: Improve the DB Singleton by adding support for custom DB ports
- Bug fix: Fix related to duplicate htaccess rules on sites with an empty default htaccess file
- Bug fix: Fix an issue in the CRON, related to clearing of the special offers


NitroPack 3.5.10 • OpenCart 3.0.x
10/11/2017

- Improvement: Improve the way we load CSS and JavaScript when both are moved to the bottom of the pages
- Improvement: Better PNG optimization
- Improvement: Unregister NitroPack's event handlers if NitroPack is disabled
- Bug fix: Fix jQuery from Google replacement


NitroPack 3.5.9 • OpenCart 3.0.x
09/27/2017

- New Feature: Add automatic image dimension detection, to help set the proper dimension overrides
- Improvement: Handle invalid HTTP responses in the HTTP client, when the server sends something invalid before the headers
- Improvement: Support OpenCart configs that do not have the DIR_APPLICATION defined as an absolute path
- Improvement: Better CRON command which should work on more servers out of the box
- Improvement: Add imagemagick to the image optimization tools for faster image optimization with results closer to the ones reported by Google's PageSpeed
- Improvement: Handle multibyte filenames when optimizing images
- Improvement: Proper handling of the tags in the DOM parser
- Improvement: Escape the session ID when checking for items in the cart to prevent SQL injection
- Improvement: Add 'MobileSafari' as a recognized UserAgent for mobile devices
- Improvement: Handle HTML, comments and CDATA after the closing HTML tag in the DOM parser, like Google Chrome does
- append the extra HTML to the body
- Improvement: Make the NOSCRIPT tags searchable with find() in the DOM parser
- Improvement: Make the base CSS extraction multistore aware
- Improvement: Disregard the protocol part from the page excludes for more natural way to configure these
- Bug fix: Include the http_response_code polyfill in the static resource handling functions
- Bug fix: Fix an issue in the StringIterator of the DOM parser when using peek near the end of the string


NitroPack 3.5.8 • OpenCart 3.0.x
07/20/2017

- Improvement: Better PNG optimization
- Bug fix: Fix an issue with clearing the DB cache when the storage engine is Redis
- Bug fix: Fix an error in the HTTP client when the same object is used for multiple requests to gzipped resources
- Bug fix: Check whether the getHeader function exists in the response class before using it to prevent errors if NitroPack's modification is not yet applied


NitroPack 3.5.7 • OpenCart 3.0.x
07/14/2017

- OpenCart 3.0.x compatibility
- Improvement: Responsive admin panel
- Bug fix: Fix the pre-minify functionality for CSS and JavaScript resources


NitroPack 2.5.18 • OpenCart 2.0.x to 2.3.x
12/10/2019
NOTE: Final version. No further versions will be released. For more information, check here: https://isenselabs.com/products/view/nitropack-complete-webstore-performance-optimization-framework
- Bug fix: Fix a scrolling issue on iPhone/iPad running on Journal theme
- Removed the PageSpeed score report widget from the dashboard


NitroPack 2.5.17 • OpenCart 2.0.x to 2.3.x
10/24/2018

- Improvement: Better Internet Explorer compatibility
- Improvement: Clear cache on category edit
- Improvement: Add TTF, EOT and WOFF2 compression
- Improvement: Switch to v4 of the PageSpeed API
- Improvement: PHP binary in the POST data is now working fine with server secrity extensions
- Improvement: Better base CSS loading for faster rendering and reduced flickering (if any)
- Improvement: Add OcModify compatibility
- Improvement: Relative paths prefix will not be applied to empty url() CSS rules
- Improvement: Performance improvement in rendering the site when NitroPack's image lazy loader is enabled
- Improvement: Better handling of HTML code found after the closing BODY or HTML tags
- Improvement: Use the base CSS for category pages on the search pages
- Improvement: Better base CSS extraction method
- Improvement: Count affiliate tracking code clicks for cached pages
- Improvement: Better handling of image file names containing special characters in the image optimizer
- Improvement: Better compatibility with Windows based servers
- Improvement: Better UTF-8 support in the DOM parser
- Improvement: Attempt the creation of product to cachefile map only once instead of once per request
- Improvement: Handle incorrect Redis password gracefully
- Improvement: Better detection of minified resources
- Improvement: Better compatibility between Journal's image lazy loader and the one provided by NitroPack
- Improvement: Improved image dimension detection for the lazy loader
- Bug fix: Resolve an issue with duplicate entries for Journal's popup and header notice cookies when the same module is assigned to more than one layout
- Bug fix: Fix an issue in parsing HTML documents containing SVG elements
- Bug fix: Fix the SNI_server_name deprecation warning in the HTTP client
- Bug fix: Remove the use of create_function
- Bug fix: Remove catgorizr support since it is not detecting devices properly
- Bug fix: Resolve an issue in the DOM Parser's createElement() function
- Bug fix: Resolve an issue with many combined files being generated, when old ones can be reused
- Bug fix: Resolve and issue with base64 encoded images when the generic CDN is enabled
- Bug fix: Resolve a 'nesting level too deep' error
- Bug fix: Resolve an issue for pages without image tags, when lazy load is enabled


NitroPack 2.5.16 • OpenCart 2.0.x to 2.3.x
04/05/2018

- Improvement: Make NitroPack's image lazy loading work better with Journal
- Improvement: Remove any BOM char when generating page cache
- Improvement: Better compatibility with ProductManager's bulk editing options
- Improvement: Bake in support for Journal's header notice and popup cookies
- Bug fix: Fix the relative URLs when extracting inline CSS
- Bug fix: Properly detect Journal's cookie names for the popups and header notices when precaching


NitroPack 2.5.15 • OpenCart 2.0.x to 2.3.x
03/16/2018

- New Feature: AJAX cache
- allow certain routes to be cached even when requested via AJAX
- Improvement: Better first time visitor cache hit rate
- Improvement: Pre-caching no longer makes requests to non-cacheable pages
- Improvement: Pre-caching is now compatible with Journal2 popup and header notice
- Improvement: Simplified browser cache setup
- Improvement: General improvements in the way browser cache is handled
- Improvement: Add status check for the database cache in NitroPack's admin panel. The indicator will be red if there is an issue with the configuration or green if everything is working properly.
- Improvement: Precache the home page before checking the PageSpeed score. This should ensure more accurate results.
- Improvement: Add an option to configure the category depth for the pre-cache
- Improvement: Increase the range of resources that will get served from a configured CDN
- Improvement: Much better pre-caching algorithm
- Improvement: Update the default page cache expiration time to 30 days
- Improvement: Overall performance improvements
- Bug fix: Supported cookies now properly construct the cache filename
- Bug fix: Long-running CRON tasks were not sending out e-mails
- Bug fix: Fix an issue with reading attribute values in the DOM parser
- Bug fix: Fix an issue when there is only one image in the entire page
- Bug fix: Fix an issue with multiline script comments parsing in the DOM parser
- Bug fix: Fix the ProductManager compatibility
- Bug fix: Exclude caching for journal2/assets route by default. This helps fix sporadic issues with broken CSS and JS on Journal2
- Bug fix: Fix an issue with tab switching in the admin panel when jQuery does not recognize a selector properly


NitroPack 2.5.14 • OpenCart 2.0.x to 2.3.x
12/18/2017

- Bug fix: Fix an issue with the gzdecode/gzinflate functions
- Bug fix: The NitroPack assets directory was getting rewritten to NITRO_ASSETS_FOLDER


NitroPack 2.5.13 • OpenCart 2.0.x to 2.3.x
12/14/2017

- Bug fix: Fix an issue with detecting import statements in CSS when combining
- Bug fix: Fix the non-render-blocking loading of CSS and JavaScript under Safari when browser cache is present
- Bug fix: Fix the window.onload event when site is loading primarily from browser cache
- Bug fix: Displaying of errors is now disabled whenever NitroPack is active. This is to ensure there will be no compression issues.


NitroPack 2.5.12 • OpenCart 2.0.x to 2.3.x
12/08/2017

- New Feature: Image lazy loading
- Improvement: Improved performance of the DOM parser
- Improvement: Automatically close unclosed CSS scopes when generating a combined CSS file
- Improvement: Switch to a better way of deferring CSS
- Improvement: Use NitroPack's temp directory instead of the system's temp to resolve rare permission issues
- Improvement: Minify the base CSS
- Improvement: Automatically disable Journal's cache while fetching image dimensions, so the image groups can be captured more accurately
- Bug fix: Fix an issue with the pre-caching when compression is enabled
- Bug fix: Fix an issue with the automatic image dimensions override when the same image dimensions are used in multiple modules on the same page.
- Bug fix: Display NitroPack's title properly when image dimension overrides are configured


NitroPack 2.5.11 • OpenCart 2.0.x to 2.3.x
11/01/2017

- Improvement: Improve the automatic image dimensions detection
- Improvement: Properly encode image filenames with special characters when running image optimization
- Improvement: Improve the DB Singleton by adding support for custom DB ports
- Bug fix: Fix related to duplicate htaccess rules on sites with an empty default htaccess file
- Bug fix: Fix an issue in the CRON, related to clearing of the special offers


NitroPack 2.5.10 • OpenCart 2.0.x to 2.3.x
10/11/2017

- Improvement: Improve the way we load CSS and JavaScript when both are moved to the bottom of the pages
- Improvement: Better PNG optimization
- Bug fix: Fix the on-demand image optimization for OpenCart versions 2.3.0.x


NitroPack 2.5.9 • OpenCart 2.0.x to 2.3.x
09/27/2017

- New Feature: Add automatic image dimension detection, to help set the proper dimension overrides
- Improvement: Handle invalid HTTP responses in the HTTP client, when the server sends something invalid before the headers
- Improvement: Support OpenCart configs that do not have the DIR_APPLICATION defined as an absolute path
- Improvement: Better CRON command which should work on more servers out of the box
- Improvement: Add imagemagick to the image optimization tools for faster image optimization with results closer to the ones reported by Google's PageSpeed
- Improvement: Handle multibyte filenames when optimizing images
- Improvement: Proper handling of the tags in the DOM parser
- Improvement: Escape the session ID when checking for items in the cart to prevent SQL injection
- Improvement: Add 'MobileSafari' as a recognized UserAgent for mobile devices
- Improvement: Handle HTML, comments and CDATA after the closing HTML tag in the DOM parser, like Google Chrome does
- append the extra HTML to the body
- Improvement: Make the NOSCRIPT tags searchable with find() in the DOM parser
- Improvement: Make the base CSS extraction multistore aware
- Improvement: Disregard the protocol part from the page excludes for more natural way to configure these
- Bug fix: Include the http_response_code polyfill in the static resource handling functions
- Bug fix: Fix an issue in the StringIterator of the DOM parser when using peek near the end of the string


NitroPack 2.5.8 • OpenCart 2.0.x to 2.3.x
07/20/2017

- Improvement: Better PNG optimization
- Bug fix: Fix an issue with clearing the DB cache when the storage engine is Redis
- Bug fix: Fix an error in the HTTP client when the same object is used for multiple requests to gzipped resources
- Bug fix: Resolve an issue in the pre-minify functionality
- Bug fix: Resolve an issue where NitroPack will crash if it's PageCache modification is not applied


NitroPack 2.5.7 • OpenCart 2.0.x to 2.3.x
07/10/2017

- New Feature: Added support for password protected Redis servers
- Improvement: Page cache files are no longer created if output buffer is empty.
- Improvement: Handle spaces in the CSS url() definition. Example url( test/file.jpg)
- Improvement: Check whether REQUEST_METHOD is present before trying to use it
- Improvement: Use our HTTP client to download the image optimization binaries instead of PHP's copy() function. This way the download works on systems that do not have allow_url_fopen enabled
- Improvement: Use zlib.inflate filter for decoding gzipped content in our HTTP client instead of buffering the whole respnse in memory. This should allow for large gzipped responses to be handled easily and without memory issues.
- Improvement: Use NitroPack's temp folder instead of the system one in our file listing library, because sometimes there are permission issues with the system temp
- Improvement: Better tag handling in the DOM parser
- Improvement: Included guetzli in the image optimization
- Improvement: Generate the filenames for files in the assets/ directory based on their content, not filename
- Improvement: Set HTTP response codes regardless of the HTTP version (a.k.a support HTTP/2)
- Improvement: When the CRON is configured to delete outdated cache files, also clear the page cache for products which had their special or discount expired 1 day ago. In effect these products will be automatically displayed with the correct price, when the promotion is over, istead of having to manually clear all page cache.
- Improvement: Display the server time in the CRON tab
- Improvement: Handle windows style resource path in the CSS ann JavaScript minifier
- Improvement: Updated the JavaScript minifier to its latest version
- Bug fix: Browser cache detection properly detects customer cookies based on HOST and URI, not on page cache filename.
- Bug fix: Fixed an issue with the loaded.temp file of the image optimizer
- Bug fix: Proper timeout detection in our HTTP client when reading from remotes
- Bug fix: Improved handling of location redirects in our HTTP client


NitroPack 2.5.6 • OpenCart 2.0.x to 2.3.x
03/20/2017

- Improvement: Better support for optional HTML tags and repeated HTML, HEAD and BODY tags
- Improvement: Automatically hide the JavaScript defer option if combine inline JavaScript is set to No, because in that case deferring JavaScript is automatically turned off, regardless of the setting
- Improvement: Make the maintenance mode notice globally visible in NitroPack's panel to better inform when page cache will not be active
- Improvement: A more reliable way to scan for image dimensions using cookies and handling responses that start with a BOM character
- Bug fix: Maintenance mode detection for multistores was not working
- now it is
- Bug fix: The image optimizer was not hooking properly in some cases
- Bug fix: Resolve an array to string conversion issue when clearing all caches


NitroPack 2.5.5 • OpenCart 2.0.x to 2.3.x
02/23/2017

- New Feature: Add recommended settings button
- New Feature: NitroSmush now supports lossy compression
- Bug fix: Header detection no loger throws errors
- Bug fix: get_headers warnings are now suppressed
- Bug fix: Fix the image optimizer log width
- Bug fix: Scripts in assets now properly generate a target only when source exists
- Bug fix: Fixed small typo in help text
- Bug fix: Resolve issues in the exclude functionality
- Bug fix: Getter of image dimensions now suppresses page cache with a cookie
- Bug fix: Fix an issue with detecting URLs which do not include hostname
- Bug fix: Image quality override bug fix
- Bug fix: Do not save cookie headers when making headers cache
- Bug fix: The HTML minification setting in the admin panel was not working
- Bug fix: Handle unescaped HTML sequences like


NitroPack 2.5.4 • OpenCart 2.0.x to 2.3.x
12/22/2016

- New feature: Add support for Redis as database cache engine
- Improvement: Add support for Bulk Product X-tra
- Improvement: Add support for all optional HTML tags in the DOM Parser
- Improvement: Add an option to remove the base CSS when the complete styles are loaded
- Improvement: In the browser class add support for location redirects which do not include the host
- Improvement: Do not require jQuery for the page cache widget
- Bug fix: Minification right column UI fixed
- Bug fix: Fix an issue in the cron pre-cache functionality
- Bug fix: Fix an issue in the browser cache


NitroPack 2.5.3 • OpenCart 2.0.x to 2.3.x
11/23/2016

- New feature: Add support for Memcached as a database cache engine
- Improvement: DOM Parser iterator peek() method no longer relies on substr()
- Improvement: Improved SSL support in the browser class
- Improvement: Better fallback in the base CSS logic
- Bug fix: The page cache widget gauge icon is now with inline display
- Bug fix: Admin panel now word-breaks long CSS routes
- Bug fix: Fix a bug with the upgrade logic when clear cache on product edit is enabled for the first time
- Bug fix: Debug logging for minification now creates log file only in case of an error
- Bug fix: Fix warning of ob_end_flush() for Apache SAPI
- Bug fix: Resolve an issue with HTML comments closed by --!> instead of -->
- Bug fix: Improved session start function
- Removed: Airplane icon removed from dashboard view


NitroPack 2.5.2 • OpenCart 2.0.x to 2.3.x
11/11/2016

- Improvement: Browser class improvement for better SSL support
- Improvement: Improve the way we hook to OpenCart and serve pagecache
- Improvement: Improve the way we show the cache widget
- Improvement: Non-blocking cache creation for PHP-FPM
- Improvement: Non-blocking cache creation for mod_php
- Improvement: Make the number for the 'times faster' text in the cache widget work when serving browser cache as well
- Improvement: Simplify CDN
- Improvement: Reduce the number of files in the package
- Improvement: Bug fix for the image CDN on newer versions of OpenCart
- Improvement: Add option to set custom PHP binary path for the CRON
- Improvement: Improved cron command which now passes the server name, so SMTP mail can work
- Bug fix: Mail class now properly detected for OpenCart 2.0.2.0
- Bug fix: Resolve an issue with duplicate product cache database entries
- Bug fix: Fix the raw Google PageSpeed result view


NitroPack 2.5.1 • OpenCart 2.0.x to 2.3.x
10/24/2016

- Improvement: Base CSS extract now strips CSS properties containing 'url'
- Improvement: Increased timeout of fetch image dimensions to 20 seconds
- Improvement: Better compatibility with customized OCMOD systems
- Improvement: Support for optional closing tags in the DOM Parser
- Improvement: Handle unclosed tags in the DOM Parser
- Improvement: Handle unmatched closing tags in the DOM Parser
- Bug fix: Image dimension check now checks for HTTP + HTTPS
- Bug fix: gzinflate now tested before inflating
- Bug fix: Fixed content length bug in the browser class
- Bug fix: Invalid route of fetch image dimensions is now fixed
- Bug fix: Fix an error when deciding whether a PNG is big or small
- Bug fix: Fix an issue where PageSpeed results were not being saved


NitroPack 2.5.0 • OpenCart 2.0.x to 2.3.x
10/14/2016

- New feature: Extract base CSS for better user experience when the the combined CSS is moved to the bottom of the pages
- New feature: Image dimensions override. This helps resolve the responsive themes' issues with the images
- Improvement: CRON binary is now automatically resolved with $(which php)
- Improvement: Add support for the latest version of iCustomFooter
- Improvement: Better exec() availablity check
- Improvement: Change a variable name to fix an issue with a modification which modifies the core loader class
- Bug fix: Fix an issue where outdated cache files were not properly deleted when exec() was enabled
- Bug fix: Fix an issue with the session detection
- Bug fix: Fix an endless loop in the NitroBrowser class when reading chunked responses
- Bug fix: Fix an issue with the image optimization of large PNG files


NitroPack 2.4.1 • OpenCart 2.3.0.2
08/09/2016

- Added compatibility with OpenCart 2.3.0.2


NitroPack 2.4.1 • OpenCart 2.0.x to 2.2.x
07/29/2016

- New feature: Ignored routes for the CDN
- Improvement: Improved multistore compatibility
- Improvement: Added a button to automatically optimize just the images reported by the PageSpeed service
- Improvement: Rework the image optimization JavaScript code for better network utilization and stability
- Improvement: If the page cache widget will never be shown, its AJAX code will now be excluded from the HTML
- Improvement: Clear cache on product insert/copy
- Improvement: Clear the search cache on product edit
- Improvement: Improved CDN compatibility with Journal
- Improvement: ProductManager compatibility
- Bug fix: Fix a bug in the error reporting of the CSS and JavaScript serving scripts
- Bug fix: Fix an issue which happens if HTTP_ACCEPT_ENCODING is not defined in the CSS and JavaScript serving scripts


NitroPack 2.4.0 • OpenCart 2.0.x to 2.2.x
07/06/2016

- New feature: Add option to choose whether to combine the inline JavaScript or not
- New feature: Add option to merge CSS media All and Screen
- New feature: Responsive theme optimization
- Improvement: Mail function made to work for all OC versions
- Improvement: Add support for the special exclude rules {{NitroPack}} in the alternative resources_fix_tool script
- Improvement: The DOM parser will not allow attribute overriding now
- Improvement: Add CORS headers when CDN is used
- Improvement: JavaScript based PageSpeed Refresh
- Improvement: Add support for a new constant to force CLI mode in the CRON script
- Bug fix: Fix for infinite loop in HTML precaching on some sites
- Bug fix: Fixed undefined constant VERSION issue when database engine is used outside of index.php
- Bug fix: Fix CSSLevel check in compression model
- Bug fix: Fix for the minification on Windows
- Bug fix: Fix when config_ssl is empty
- Bug fix: Fix for the error logging in the JavaScript and CSS handling scripts
- Bug fix: Fix an issue with self signed certificates
- Bug fix: Fix a bug in automatic language detection
- Bug fix: Fix for OC 2's api/* URLs
- Bug fix: Fix an issue when excluding inline scripts


NitroPack 2.3.9 • OpenCart 2.0.x to 2.2.x
04/12/2016

- Improvement: Better OpenCart 2.2.x compatibility
- Improvement: Improvements in the DOM parser for even better support of boolean tag attributes
- Improvement: Improvements in the DOM parser for documents starting with


NitroPack 2.3.8 • OpenCart 2.x
03/14/2016

- Improvement: Improvements in the DOM parser for better quote matching in script tags
- Improvement: Improvements in the DOM parser for better support of boolean tag attributes
- Bug fix: Fix an issue with language and currency switching


NitroPack 2.3.7 • OpenCart 2.x
02/26/2016

- Improvement: Improvements in the DOM parser


NitroPack 2.3.6 • OpenCart 2.x
02/23/2016

- Improvement: Better cache synchronization when using CRON
- Improvement: Better mobile support
- Improvement: Use the client's user agent in fetchRemoteContent() if possible
- Improvement: Reduce the number of database queries
- Improvement: Faster cache checks
- Improvement: The inline CSS and JavaScript excludes now support the {{NitroPack}} tags
- Bug fix: Fix an issue with the casing of the type attribute on the script tags
- Bug fix: Fix an issue with extracted inline styles
- Bug fix: Fix an issue with empty script tags
- Bug fix: Fix an issue with missing argument to the minify() function
- Bug fix: Fix an issue for OpenCart 2.1.0.1 when there are items in the cart
- Bug fix: Fix an issue with the browser cache when and the supported cookies
- Bug fix: Fix an issue when there are more than one instances of the or tags
- Bug fix: Fix an issue in the DOM parser with empty spaces between attribute names and their values
- Bug fix: "The Keep HTML comments" option was not working. It is now.
- Deprecated: The support for Rackspace CDN via FTP is now deprecated


NitroPack 2.3.5 • OpenCart 2.x
02/03/2016

- New feature: Add option to choose whether to exclude resources from minification/combination if they reside on third party servers
- New feature: Add support for special {{NitroPack}} tags in the fields for CSS and JavaScript minification excludes. This allows for further control over the system which optimizes these resources
- Improvement: Rework all "goto" calls for better PHP 5.2.x compatibility
- Improvement: Lower the timeout when optimizing images to prevent the connection from being terminated before the job is done
- Improvement: Switch to timeout based logic when clearing the cache to prevent the connection from being terminated before the job is done
- Improvement: Regard the different media attribute values when combining the CSS files
- Improvement: Regard Suhosin when checking whether the exec() function is enabled
- Bug fix: Fix an issue with the DOM parser when uppercase tags are present
- Bug fix: Fix an issue with the DOM parser when comments in inline tags are present


NitroPack 2.3.4 • OpenCart 2.x
01/22/2016

- Improvement: Use base64 to encode the GET parameters for the page cache widget, in order to handle more .htaccess configurations
- Improvement: Do not extract script tags which are not JavaScript
- Bug fix: Fix an issue with the browser cache and currency switching
- Bug fix: Fix an issue with caching non-HTML content
- Bug fix: Fix an issue with the DOM parser which causes problems on Firefox


NitroPack 2.3.3 • OpenCart 2.x
01/20/2016

- New feature: Option to skip the minification step for files ending in *.min.{css,js}
- New feature: Option to set cookies which you'd like to be regarded in the page cache
- Improvement: Faster minification when CDN is enabled
- Improvement: Better mobile device detection
- Improvement: Remove the executable binaries of the image optimizer and download them on demand
- Improvement: Add support for config_local.php file, which will help preserve the config after upgrade
- Bug fix: Fix an issue with the image optimizer where the filesize() function is called on file which does not exist


NitroPack 2.3.2 • OpenCart 2.x
01/15/2016

- New feature: Option to chose whether to place the excluded CSS files before/after the minified ones
- Bug fix: undefined function passesPageCacheValidation() in core.php
- Bug fix: losing CSS styles when CRON job is configured
- Bug fix: fix an issue while getting the content of local resources
- Bug fix: fix an issue in the DOM parser for self-closing tags and unmatched closing tags


NitroPack 2.3.1 • OpenCart 2.x
01/06/2016

- Bug fix: undefined function passesPageCacheValidation()
- Bug fix: PHP 5.3 compatibility


NitroPack 2.3 • OpenCart 2.x
12/17/2015

- New feature: Option to detect inline CSS styles
- New feature: Option to move the extracted styles to the bottom of the page
- Improvement: Improved CSS and JavaScript detection algorithm
- Improvement: Improved PNG optimization
- Improvement: Improved clear cache mechanism
- Improvement: Better XCache support
- Bug fix: Other bug fixes and improvements
- Bug fix: Compatibility fixes for OpenCart 2.1.0.1


NitroPack 2.2.2 • OpenCart 2.x
10/26/2015

- Compatibility fixes for OpenCart 2.1.0.1


NitroPack 2.2.1 • OpenCart 2.0.x
09/18/2015

- New feature: Added .htaccess compression for .woff files
- Improvement: For better compatibility, changed name of GET parameter when refreshing Page Cache score
- Bug fix: TRUNCATE TABLE issue on Save now fixed


NitroPack 2.2 • OpenCart 2.0.x
09/14/2015

- New feature: Clear database cache now works for Memcache
- New feature: Image cookies can be now removed with NitroPack
- Improvement: PageSpeed refresh can be switched on/off from config.php
- Improvement: NitroSmush now logs errors in a separate file for easier debugging
- Improvement: .htaccess check for admin panel is now more reliable
- Improvement: .htaccess chech for admin panel can be switched on/off from config.php
- Improvement: Better Jounral2 compatibility out of the box
- Improvement: Added a warning in PageCache that it is not available whenever Maintenance mode is enabled
- Improvement: Added a notification in Delte Cache on Product Edit to enable it only if the MySQL user has CREATE, TRUNCATE and ALTER permissions.
- Improvement: Added try {} catch(){} wrap for combined JavaScript code for easier debugging and more stability
- Improvement: NitroBrowser class now used in fetchRemoteContent function
- Improvement: nitro_product_cache table now contains expiration fields and expired results are automatically cleared on product edit
- Improvement: Improved stability of JS minifier
- Improvement: When cached file is created, delete corresponding entries in nitro_product_cache
- Improvement: Better error reporting of compression scripts in assets/ folder
- Improvement: System information now shows more adequate data
- Improvement: Product pages can also get pre-cached with a setting in the NitroPack config.php file
- Change: NITRO_DEFAULT_EXCLUDES now defaults to FALSE, since it is needed in only a few themes
- Change: Bottom of page positioning and DEFER in the JavaScript minification are now recommended
- Change: Amazon CDN is now configured with Generic CDN feature. Resources can be automatically pulled by Amazon
- Bug fix: loading.gif in admin panel now loads from a custom image instead of front end
- Bug fix: Fixed front widget displaying on pages without cache
- Bug fix: NitroSmush lock file now properly deleted when existing
- Bug fix: getOpenCartSetting() function now returns appropriate values in case of more than 1 row for the same setting and same store
- Bug fix: Store front widget was causing issues with margin and padding on a few themes
- Bug fix: JS and CSS files are now properly fetched for combining
- Bug fix: NitroSmush progress iteration now moved at the beginning of the smushing script
- Bug fix: NitroPack HTML minification now takes into consideration isNitroEnabled()
- Bug fix: Added NitroBrowser class to the installation files


NitroPack 2.1.1 • OpenCart 2.0.x
04/22/2015

- Bug fixes


NitroPack 2.1 • OpenCart 2.0.x
04/15/2015

- Bug fix: Front-page widget display bug
- Bug fix: Disable browser caching for 404 resources
- Bug fix: Clear database entries for cache files on product edit
- Bug fix: Clear the product to cache file database table in the cron task
- Bug fix: Multiple fixes in the JavaScript and CSS detection algorithms
- Improvement: Quick page cache reset after updating the settings
- Improvement: Error 500 protection when modifying the .htaccess file
- Improvement: Do not show the Nitro link in the menu if the current user does not have access permissions
- Improvement: Detect if OpenCart's native GZIP compression is enabled and act accordingly
- Improvement: Handle JavaScript errors when PageSpeed information cannot be fetched
- Improvement: Use the object oriented way to access Memcache
- Improvement: Disable NitroPack for any renamed (and default) admin directory
- Feature: New faster and better image optimization mechanism
- Feature: On-The-Fly image optimization
- Feature: PersistentCart compatibility
- Other minor bug fixes and improvements


NitroPack 2.0.1 • OpenCart 2.0.x
12/18/2014

- Bug fix: Front-page widget display bug
- Bug fix: CDN files search infinite loop fixed
- Bug fix: NitroPack smusher temp image path names now allow to search for exif data
- Bug fix: CRON job now properly detects OpenCart version
- Bug fix: install.php script now works on OC 2.0.1.x
- Other minor bug fixes
- Change: /assets/style.php and /assets/script.php now return a 404 status code when file is not found
- Change: nitro_product_cache table is automatically truncated when Page cache is cleared
- Improvement: Mobile detection
- Improvement: CSS files detection now detects paths containing "stylesheet/cssminify1.php"


NitroPack 1.8.18 • OpenCart 1.5.2.x to 1.5.6.x
12/10/2019
NOTE: Final version. No further versions will be released. For more information, check here: https://isenselabs.com/products/view/nitropack-complete-webstore-performance-optimization-framework
- Removed the PageSpeed score report widget from the dashboard


NitroPack 1.8.17 • OpenCart 1.5.2.x to 1.5.6.x
10/24/2018

- Improvement: Better Internet Explorer compatibility
- Improvement: Clear cache on category edit
- Improvement: Add TTF, EOT and WOFF2 compression
- Improvement: Switch to v4 of the PageSpeed API
- Improvement: PHP binary in the POST data is now working fine with server secrity extensions
- Improvement: Better base CSS loading for faster rendering and reduced flickering (if any)
- Improvement: Relative paths prefix will not be applied to empty url() CSS rules
- Improvement: Performance improvement in rendering the site when NitroPack's image lazy loader is enabled
- Improvement: Better handling of HTML code found after the closing BODY or HTML tags
- Improvement: Use the base CSS for category pages on the search pages
- Improvement: Better base CSS extraction method
- Improvement: Count affiliate tracking code clicks for cached pages
- Improvement: Better handling of image file names containing special characters in the image optimizer
- Improvement: Better compatibility with Windows based servers
- Improvement: Better UTF-8 support in the DOM parser
- Improvement: Attempt the creation of product to cachefile map only once instead of once per request
- Improvement: Handle incorrect Redis password gracefully
- Improvement: Better detection of minified resources
- Improvement: Better compatibility between Journal's image lazy loader and the one provided by NitroPack
- Improvement: Improved image dimension detection for the lazy loader
- Bug fix: Resolve an issue with duplicate entries for Journal's popup and header notice cookies when the same module is assigned to more than one layout
- Bug fix: Fix mysql_connect deprecation warning on older OpenCart 1.x versions
- Bug fix: Fix an issue in parsing HTML documents containing SVG elements
- Bug fix: Fix the SNI_server_name deprecation warning in the HTTP client
- Bug fix: Remove the use of create_function
- Bug fix: Remove catgorizr support since it is not detecting devices properly
- Bug fix: Resolve an issue in the DOM Parser's createElement() function
- Bug fix: Resolve an issue with many combined files being generated, when old ones can be reused
- Bug fix: Resolve and issue with base64 encoded images when the generic CDN is enabled
- Bug fix: Resolve a 'nesting level too deep' error
- Bug fix: Resolve an issue for pages without image tags, when lazy load is enabled


NitroPack 1.8.16 • OpenCart 1.5.2.x to 1.5.6.x
04/05/2018

- Improvement: Make NitroPack's image lazy loading work better with Journal
- Improvement: Remove any BOM char when generating page cache
- Improvement: Better compatibility with ProductManager's bulk editing options
- Improvement: Bake in support for Journal's header notice and popup cookies
- Bug fix: Fix the relative URLs when extracting inline CSS
- Bug fix: Properly detect Journal's cookie names for the popups and header notices when precaching


NitroPack 1.8.15 • OpenCart 1.5.2.x to 1.5.6.x
03/16/2018

- New Feature: AJAX cache
- allow certain routes to be cached even when requested via AJAX
- Improvement: Better first time visitor cache hit rate
- Improvement: Pre-caching no longer makes requests to non-cacheable pages
- Improvement: Pre-caching is now compatible with Journal2 popup and header notice
- Improvement: Simplified browser cache setup
- Improvement: General improvements in the way browser cache is handled
- Improvement: Add status check for the database cache in NitroPack's admin panel. The indicator will be red if there is an issue with the configuration or green if everything is working properly.
- Improvement: Precache the home page before checking the PageSpeed score. This should ensure more accurate results.
- Improvement: Add an option to configure the category depth for the pre-cache
- Improvement: Increase the range of resources that will get served from a configured CDN
- Improvement: Much better pre-caching algorithm
- Improvement: Update the default page cache expiration time to 30 days
- Improvement: Overall performance improvements
- Bug fix: Supported cookies now properly construct the cache filename
- Bug fix: Long-running CRON tasks were not sending out e-mails
- Bug fix: Fix an issue with reading attribute values in the DOM parser
- Bug fix: Fix an issue when there is only one image in the entire page
- Bug fix: Fix an issue with multiline script comments parsing in the DOM parser
- Bug fix: Fix the ProductManager compatibility
- Bug fix: Exclude caching for journal2/assets route by default. This helps fix sporadic issues with broken CSS and JS on Journal2
- Bug fix: Fix an issue with tab switching in the admin panel when jQuery does not recognize a selector properly


NitroPack 1.8.14 • OpenCart 1.5.2.x to 1.5.6.x
12/18/2017

- Bug fix: Fix an issue with the gzdecode/gzinflate functions
- Bug fix: The NitroPack assets directory was getting rewritten to NITRO_ASSETS_FOLDER
- Bug Fix: Fix an issue where Journal was reported as not being installed


NitroPack 1.8.13 • OpenCart 1.5.2.x to 1.5.6.x
12/14/2017

- Bug fix: Fix an issue with detecting import statements in CSS when combining
- Bug fix: Fix the non-render-blocking loading of CSS and JavaScript under Safari when browser cache is present
- Bug fix: Fix the window.onload event when site is loading primarily from browser cache
- Bug fix: Displaying of errors is now disabled whenever NitroPack is active. This is to ensure there will be no compression issues.


NitroPack 1.8.12 • OpenCart 1.5.2.x to 1.5.6.x
12/08/2017

- New Feature: Image lazy loading
- Improvement: Improved performance of the DOM parser
- Improvement: Automatically close unclosed CSS scopes when generating a combined CSS file
- Improvement: Switch to a better way of deferring CSS
- Improvement: Use NitroPack's temp directory instead of the system's temp to resolve rare permission issues
- Improvement: Minify the base CSS
- Improvement: Automatically disable Journal's cache while fetching image dimensions, so the image groups can be captured more accurately
- Bug fix: Fix an issue with the pre-caching when compression is enabled
- Bug fix: Fix an issue with the automatic image dimensions override when the same image dimensions are used in multiple modules on the same page.
- Bug fix: Display NitroPack's title properly when image dimension overrides are configured


NitroPack 1.8.11 • OpenCart 1.5.2.x to 1.5.6.x
11/01/2017

- Improvement: Improve the automatic image dimensions detection
- Improvement: Properly encode image filenames with special characters when running image optimization
- Improvement: Improve the DB Singleton by adding support for custom DB ports
- Bug fix: Fix related to duplicate htaccess rules on sites with an empty default htaccess file
- Bug fix: Fix an issue in the CRON, related to clearing of the special offers


NitroPack 1.8.10 • OpenCart 1.5.2.x to 1.5.6.x
10/11/2017

- Improvement: Improve the way we load CSS and JavaScript when both are moved to the bottom of the pages
- Improvement: Better PNG optimization


NitroPack 1.8.9 • OpenCart 1.5.2.x to 1.5.6.x
09/27/2017

- New Feature: Add automatic image dimension detection, to help set the proper dimension overrides
- Improvement: Handle invalid HTTP responses in the HTTP client, when the server sends something invalid before the headers
- Improvement: Support OpenCart configs that do not have the DIR_APPLICATION defined as an absolute path
- Improvement: Better CRON command which should work on more servers out of the box
- Improvement: Add imagemagick to the image optimization tools for faster image optimization with results closer to the ones reported by Google's PageSpeed
- Improvement: Handle multibyte filenames when optimizing images
- Improvement: Proper handling of the tags in the DOM parser
- Improvement: Escape the session ID when checking for items in the cart to prevent SQL injection
- Improvement: Add 'MobileSafari' as a recognized UserAgent for mobile devices
- Improvement: Handle HTML, comments and CDATA after the closing HTML tag in the DOM parser, like Google Chrome does
- append the extra HTML to the body
- Improvement: Make the NOSCRIPT tags searchable with find() in the DOM parser
- Improvement: Make the base CSS extraction multistore aware
- Improvement: Disregard the protocol part from the page excludes for more natural way to configure these
- Bug fix: Include the http_response_code polyfill in the static resource handling functions
- Bug fix: Fix an issue in the StringIterator of the DOM parser when using peek near the end of the string


NitroPack 1.8.8 • OpenCart 1.5.2.x to 1.5.6.x
07/20/2017

- Improvement: Better PNG optimization
- Bug fix: Fix an issue with clearing the DB cache when the storage engine is Redis
- Bug fix: Fix an error in the HTTP client when the same object is used for multiple requests to gzipped resources
- Bug fix: Resolve an issue in the pre-minify functionality


NitroPack 1.8.7 • OpenCart 1.5.2.x to 1.5.6.x
07/10/2017

- New Feature: Added support for password protected Redis servers
- Improvement: Page cache files are no longer created if output buffer is empty.
- Improvement: Handle spaces in the CSS url() definition. Example url( test/file.jpg)
- Improvement: Check whether REQUEST_METHOD is present before trying to use it
- Improvement: Use our HTTP client to download the image optimization binaries instead of PHP's copy() function. This way the download works on systems that do not have allow_url_fopen enabled
- Improvement: Use zlib.inflate filter for decoding gzipped content in our HTTP client instead of buffering the whole respnse in memory. This should allow for large gzipped responses to be handled easily and without memory issues.
- Improvement: Use NitroPack's temp folder instead of the system one in our file listing library, because sometimes there are permission issues with the system temp
- Improvement: Better tag handling in the DOM parser
- Improvement: Included guetzli in the image optimization
- Improvement: Generate the filenames for files in the assets/ directory based on their content, not filename
- Improvement: Set HTTP response codes regardless of the HTTP version (a.k.a support HTTP/2)
- Improvement: When the CRON is configured to delete outdated cache files, also clear the page cache for products which had their special or discount expired 1 day ago. In effect these products will be automatically displayed with the correct price, when the promotion is over, istead of having to manually clear all page cache.
- Improvement: Display the server time in the CRON tab
- Improvement: Handle windows style resource path in the CSS ann JavaScript minifier
- Improvement: Updated the JavaScript minifier to its latest version
- Bug fix: Browser cache detection properly detects customer cookies based on HOST and URI, not on page cache filename.
- Bug fix: Fixed an issue with the loaded.temp file of the image optimizer
- Bug fix: Proper timeout detection in our HTTP client when reading from remotes
- Bug fix: Improved handling of location redirects in our HTTP client


NitroPack 1.8.6 • OpenCart 1.5.2.x to 1.5.6.x
03/20/2017

- Improvement: Better support for optional HTML tags and repeated HTML, HEAD and BODY tags
- Improvement: Automatically hide the JavaScript defer option if combine inline JavaScript is set to No, because in that case deferring JavaScript is automatically turned off, regardless of the setting
- Improvement: Make the maintenance mode notice globally visible in NitroPack's panel to better inform when page cache will not be active
- Improvement: A more reliable way to scan for image dimensions using cookies and handling responses that start with a BOM character
- Bug fix: Maintenance mode detection for multistores was not working
- now it is
- Bug fix: Resolve an array to string conversion issue when clearing all caches


NitroPack 1.8.5 • OpenCart 1.5.2.x to 1.5.6.x
02/23/2017

- New Feature: Add recommended settings button
- New Feature: NitroSmush now supports lossy compression
- Bug fix: Header detection no loger throws errors
- Bug fix: get_headers warnings are now suppressed
- Bug fix: Fix the image optimizer log width
- Bug fix: Scripts in assets now properly generate a target only when source exists
- Bug fix: Fixed small typo in help text
- Bug fix: Resolve issues in the exclude functionality
- Bug fix: Getter of image dimensions now suppresses page cache with a cookie
- Bug fix: Fix an issue with detecting URLs which do not include hostname
- Bug fix: Image quality override bug fix
- Bug fix: Do not save cookie headers when making headers cache
- Bug fix: The HTML minification setting in the admin panel was not working
- Bug fix: Handle unescaped HTML sequences like


NitroPack 1.8.4 • OpenCart 1.5.2.x to 1.5.6.x
12/22/2016

- New feature: Add support for Redis as database cache engine
- Improvement: Add support for all optional HTML tags in the DOM Parser
- Improvement: Add an option to remove the base CSS when the complete styles are loaded
- Improvement: In the browser class add support for location redirects which do not include the host
- Improvement: Do not require jQuery for the page cache widget
- Bug fix: Minification right column UI fixed
- Bug fix: Fix an issue in the cron pre-cache functionality
- Bug fix: Fix an issue in the browser cache


NitroPack 1.8.3 • OpenCart 1.5.2.x to 1.5.6.x
11/23/2016

- New feature: Add support for Memcached as a database cache engine
- Improvement: DOM Parser iterator peek() method no longer relies on substr()
- Improvement: Improved SSL support in the browser class
- Improvement: Better fallback in the base CSS logic
- Bug fix: The page cache widget gauge icon is now with inline display
- Bug fix: Admin panel now word-breaks long CSS routes
- Bug fix: Fix a bug with the upgrade logic when clear cache on product edit is enabled for the first time
- Bug fix: Debug logging for minification now creates log file only in case of an error
- Bug fix: Fix warning of ob_end_flush() for Apache SAPI
- Bug fix: Resolve an issue with HTML comments closed by --!> instead of -->
- Bug fix: Improved session start function
- Removed: Airplane icon removed from dashboard view


NitroPack 1.8.2 • OpenCart 1.5.2.x to 1.5.6.x
11/11/2016

- Improvement: Browser class improvement for better SSL support
- Improvement: Improve the way we hook to OpenCart and serve pagecache
- Improvement: Improve the way we show the cache widget
- Improvement: Non-blocking cache creation for PHP-FPM
- Improvement: Non-blocking cache creation for mod_php
- Improvement: Make the number for the 'times faster' text in the cache widget work when serving browser cache as well
- Improvement: Simplify CDN
- Improvement: Reduce the number of files in the package
- Improvement: Add option to set custom PHP binary path for the CRON
- Improvement: Improved cron command which now passes the server name, so SMTP mail can work
- Bug fix: Resolve an issue with duplicate product cache database entries
- Bug fix: Fix the raw Google PageSpeed result view


NitroPack 1.8.1 • OpenCart 1.5.2.x to 1.5.6.x
10/24/2016

- Improvement: Base CSS extract now strips CSS properties containing 'url'
- Improvement: Increased timeout of fetch image dimensions to 20 seconds
- Improvement: Better compatibility with customized OCMOD systems
- Improvement: Support for optional closing tags in the DOM Parser
- Improvement: Handle unclosed tags in the DOM Parser
- Improvement: Handle unmatched closing tags in the DOM Parser
- Bug fix: Image dimension check now checks for HTTP + HTTPS
- Bug fix: gzinflate now tested before inflating
- Bug fix: Fixed content length bug in the browser class
- Bug fix: Invalid route of fetch image dimensions is now fixed
- Bug fix: Fix an error when deciding whether a PNG is big or small
- Bug fix: Fix an issue where PageSpeed results were not being saved


NitroPack 1.8.0 • OpenCart 1.5.2.x to 1.5.6.x
10/14/2016

- New feature: Extract base CSS for better user experience when the the combined CSS is moved to the bottom of the pages
- New feature: Image dimensions override. This helps resolve the responsive themes' issues with the images
- Improvement: CRON binary is now automatically resolved with $(which php)
- Improvement: Better exec() availablity check
- Improvement: Change a variable name to fix an issue with a modification which modifies the core loader class
- Bug fix: Fix an issue where outdated cache files were not properly deleted when exec() was enabled
- Bug fix: Fix an issue with the session detection
- Bug fix: Fix an endless loop in the NitroBrowser class when reading chunked responses
- Bug fix: Fix an issue with the image optimization of large PNG files


NitroPack 1.7.1 • OpenCart 1.5.2.x to 1.5.6.x
07/29/2016

- New feature: Ignored routes for the CDN
- Improvement: Improved multistore compatibility
- Improvement: Added a button to automatically optimize just the images reported by the PageSpeed service
- Improvement: Rework the image optimization JavaScript code for better network utilization and stability
- Improvement: If the page cache widget will never be shown, its AJAX code will now be excluded from the HTML
- Improvement: Clear cache on product insert/copy
- Improvement: Clear the search cache on product edit
- Improvement: ProductManager compatibility
- Bug fix: Fix a bug in the error reporting of the CSS and JavaScript serving scripts
- Bug fix: Fix an issue which happens if HTTP_ACCEPT_ENCODING is not defined in the CSS and JavaScript serving scripts


NitroPack 1.7.0 • OpenCart 1.5.2.x to 1.5.6.x
07/06/2016

- New feature: Add option to choose whether to combine the inline JavaScript or not
- New feature: Add option to merge CSS media All and Screen
- New feature: Responsive theme optimization
- Improvement: Mail function made to work for all OC versions
- Improvement: Add support for the special exclude rules {{NitroPack}} in the alternative resources_fix_tool script
- Improvement: The DOM parser will not allow attribute overriding now
- Improvement: Add CORS headers when CDN is used
- Improvement: JavaScript based PageSpeed Refresh
- Improvement: Add support for a new constant to force CLI mode in the CRON script
- Bug fix: Fix for infinite loop in HTML precaching on some sites
- Bug fix: Fixed undefined constant VERSION issue when database engine is used outside of index.php
- Bug fix: Fix CSSLevel check in compression model
- Bug fix: Fix for the minification on Windows
- Bug fix: Fix when config_ssl is empty
- Bug fix: Fix for the error logging in the JavaScript and CSS handling scripts
- Bug fix: Fix an issue with self signed certificates
- Bug fix: Fix a bug in automatic language detection
- Bug fix: Fix for OC 2's api/* URLs
- Bug fix: Fix an issue when excluding inline scripts


NitroPack 1.6.9 • OpenCart 1.5.2.x to 1.5.6.x
04/12/2016

- Improvement: Improvements in the DOM parser for even better support of boolean tag attributes
- Improvement: Improvements in the DOM parser for documents starting with


NitroPack 1.6.8 • OpenCart 1.5.2.x to 1.5.6.x
03/14/2016

- Improvement: Improvements in the DOM parser for better quote matching in script tags
- Improvement: Improvements in the DOM parser for better support of boolean tag attributes
- Bug fix: Fix an issue with language and currency switching


NitroPack 1.6.7 • OpenCart 1.5.2.x to 1.5.6.x
02/26/2016

- Improvement: Improvements in the DOM parser


NitroPack 1.6.5 • OpenCart 1.5.2.x to 1.5.6.x
02/03/2016

- New feature: Add option to choose whether to exclude resources from minification/combination if they reside on third party servers
- New feature: Add support for special {{NitroPack}} tags in the fields for CSS and JavaScript minification excludes. This allows for further control over the system which optimizes these resources
- Improvement: Rework all "goto" calls for better PHP 5.2.x compatibility
- Improvement: Lower the timeout when optimizing images to prevent the connection from being terminated before the job is done
- Improvement: Switch to timeout based logic when clearing the cache to prevent the connection from being terminated before the job is done
- Improvement: Regard the different media attribute values when combining the CSS files
- Improvement: Regard Suhosin when checking whether the exec() function is enabled
- Bug fix: Fix an issue with the DOM parser when uppercase tags are present
- Bug fix: Fix an issue with the DOM parser when comments in inline tags are present


NitroPack 1.6.6 • OpenCart 1.5.2.x to 1.5.6.x
02/23/2016

- Improvement: Better cache synchronization when using CRON
- Improvement: Better mobile support
- Improvement: Use the client's user agent in fetchRemoteContent() if possible
- Improvement: Reduce the number of database queries
- Improvement: Faster cache checks
- Improvement: The inline CSS and JavaScript excludes now support the {{NitroPack}} tags
- Bug fix: Fix an issue with the casing of the type attribute on the script tags
- Bug fix: Fix an issue with extracted inline styles
- Bug fix: Fix an issue with empty script tags
- Bug fix: Fix an issue with missing argument to the minify() function
- Bug fix: Fix an issue for OpenCart 2.1.0.1 when there are items in the cart
- Bug fix: Fix an issue with the browser cache when and the supported cookies
- Bug fix: Fix an issue when there are more than one instances of the or tags
- Bug fix: Fix an issue in the DOM parser with empty spaces between attribute names and their values
- Bug fix: "The Keep HTML comments" option was not working. It is now.
- Deprecated: The support for Rackspace CDN via FTP is now deprecated


NitroPack 1.6.4 • OpenCart 1.5.2.x to 1.5.6.x
01/22/2016

- Improvement: Use base64 to encode the GET parameters for the page cache widget, in order to handle more .htaccess configurations
- Improvement: Do not extract script tags which are not JavaScript
- Bug fix: Fix an issue with the browser cache and currency switching
- Bug fix: Fix an issue with caching non-HTML content
- Bug fix: Fix an issue with the DOM parser which causes problems on Firefox


NitroPack 1.6.3 • OpenCart 1.5.2.x to 1.5.6.x
01/20/2016

- New feature: Option to skip the minification step for files ending in *.min.{css,js}
- New feature: Option to set cookies which you'd like to be regarded in the page cache
- Improvement: Faster minification when CDN is enabled
- Improvement: Better mobile device detection
- Improvement: Remove the executable binaries of the image optimizer and download them on demand
- Improvement: Add support for config_local.php file, which will help preserve the config after upgrade
- Bug fix: Fix an issue with the image optimizer where the filesize() function is called on file which does not exist


NitroPack 1.6.2 • OpenCart 1.5.2.x to 1.5.6.x
01/15/2016

- New feature: Option to chose whether to place the excluded CSS files before/after the minified ones
- Bug fix: undefined function passesPageCacheValidation() in core.php
- Bug fix: losing CSS styles when CRON job is configured
- Bug fix: fix an issue while getting the content of local resources
- Bug fix: fix an issue in the DOM parser for self-closing tags and unmatched closing tags


NitroPack 1.6.1 • OpenCart 1.5.2.x to 1.5.6.x
01/06/2016

- Bug fix: undefined function passesPageCacheValidation()
- Bug fix: PHP 5.3 compatibility


NitroPack 1.6 • OpenCart 1.5.2.x to 1.5.6.x
12/17/2015

- New feature: Option to detect inline CSS styles
- New feature: Option to move the extracted styles to the bottom of the page
- Improvement: Improved CSS and JavaScript detection algorithm
- Improvement: Improved PNG optimization
- Improvement: Improved clear cache mechanism
- Improvement: Better XCache support
- Bug fix: Other bug fixes and improvements


NitroPack 1.5.1 • OpenCart 1.5.2.x to 1.5.6.x
09/18/2015

- New feature: Added .htaccess compression for .woff files
- Improvement: For better compatibility, changed name of GET parameter when refreshing Page Cache score
- Bug fix: TRUNCATE TABLE issue on Save now fixed


NitroPack 1.5 • OpenCart 1.5.2.x to 1.5.6.x
09/14/2015

- New feature: Clear database cache now works for Memcache
- New feature: Image cookies can be now removed with NitroPack
- Improvement: PageSpeed refresh can be switched on/off from config.php
- Improvement: NitroSmush now logs errors in a separate file for easier debugging
- Improvement: .htaccess check for admin panel is now more reliable
- Improvement: .htaccess chech for admin panel can be switched on/off from config.php
- Improvement: Better Jounral2 compatibility out of the box
- Improvement: Added a warning in PageCache that it is not available whenever Maintenance mode is enabled
- Improvement: Added a notification in Delte Cache on Product Edit to enable it only if the MySQL user has CREATE, TRUNCATE and ALTER permissions.
- Improvement: Added try {} catch(){} wrap for combined JavaScript code for easier debugging and more stability
- Improvement: NitroBrowser class now used in fetchRemoteContent function
- Improvement: nitro_product_cache table now contains expiration fields and expired results are automatically cleared on product edit
- Improvement: Improved stability of JS minifier
- Improvement: When cached file is created, delete corresponding entries in nitro_product_cache
- Improvement: Better error reporting of compression scripts in assets/ folder
- Improvement: System information now shows more adequate data
- Improvement: Product pages can also get pre-cached with a setting in the NitroPack config.php file
- Change: NITRO_DEFAULT_EXCLUDES now defaults to FALSE, since it is needed in only a few themes
- Change: Bottom of page positioning and DEFER in the JavaScript minification are now recommended
- Change: Amazon CDN is now configured with Generic CDN feature. Resources can be automatically pulled by Amazon
- Bug fix: loading.gif in admin panel now loads from a custom image instead of front end
- Bug fix: Fixed front widget displaying on pages without cache
- Bug fix: NitroSmush lock file now properly deleted when existing
- Bug fix: getOpenCartSetting() function now returns appropriate values in case of more than 1 row for the same setting and same store
- Bug fix: Store front widget was causing issues with margin and padding on a few themes
- Bug fix: JS and CSS files are now properly fetched for combining
- Bug fix: NitroSmush progress iteration now moved at the beginning of the smushing script
- Bug fix: NitroPack HTML minification now takes into consideration isNitroEnabled()


NitroPack 1.4.2 • OpenCart 1.5.2.x to 1.5.6.x
04/22/2015

- Bug fixes


NitroPack 1.4.1 • OpenCart 1.5.2.x to 1.5.6.x
04/15/2015

- Bug fixes


NitroPack 1.4 • OpenCart 1.5.2.x to 1.5.6.x
04/08/2015

- Bug fix: Front-page widget display bug
- Bug fix: Disable browser caching for 404 resources
- Bug fix: Clear database entries for cache files on product edit
- Bug fix: Clear the product to cache file database table in the cron task
- Bug fix: Multiple fixes in the JavaScript and CSS detection algorithms
- Improvement: Quick page cache reset after updating the settings
- Improvement: Error 500 protection when modifying the .htaccess file
- Improvement: Do not show the Nitro link in the menu if the current user does not have access permissions
- Improvement: Detect if OpenCart's native GZIP compression is enabled and act accordingly
- Improvement: Handle JavaScript errors when PageSpeed information cannot be fetched
- Improvement: Use the object oriented way to access Memcache
- Improvement: Disable NitroPack for any renamed (and default) admin directory
- Feature: New faster and better image optimization mechanism
- Feature: On-The-Fly image optimization
- Feature: PersistentCart compatibility
- Other minor bug fixes and improvements


NitroPack 1.3.7 • OpenCart 1.5.2.x to 1.5.6.x
12/18/2014

- Bug fix: Front-page widget display bug
- Bug fix: CDN files search infinite loop fixed
- Bug fix: nitro_db.php now uses vQmod resolving
- Bug fix: NitroPack smusher temp image path names now allow to search for exif data
- Bug fix: CRON job now properly detects OpenCart version
- Bug fix: nitro_pagecache.xml vQmod parsing was failing on some servers
- Other minor bug fixes
- Change: /assets/style.php and /assets/script.php now return a 404 status code when file is not found
- Change: nitro_product_cache table is automatically truncated when Page cache is cleared
- Improvement: Mobile detection
- Improvement: CSS files detection now detects paths containing "stylesheet/cssminify1.php"


NitroPack 1.3.6 • OpenCart 1.5.2.x to 1.5.6.x
11/19/2014

- Bug fix: CRON job had a bug locating the OpenCart config.php file on some servers
- Bug fix: Generic CDN bug fix for the OpenCart images
- Bug fix: NitroPack is now compatible with the mysql database engine
- Other minor bug fixes
- Improvement: Smusher now bypasses images with corrupt names
- Improvement: Local CRON job command is now displayed in the admin panel
- Improvement: Improved compatibility with Journal 2
- Improvement: Improved compatibility with SEO MEGA PACK
- Improvement: Cache deleting process is now faster
- Feature: Added out-of-the-box compatibility with YMM


NitroPack 1.3.5 • OpenCart 1.5.2.x to 1.5.6.x
11/07/2014

- Bug fix: Minifier bug fixed on stores with SEO url's
- Improvement: Added Last-Modified header to .htaccess modification rules for images


NitroPack 1.3.4 • OpenCart 1.5.2.x to 1.5.6.x
11/07/2014

- Improvement: The W/H attributes detection now captures more images
- Improvement: Smusher updated to detect images on servers without support for the exif_imagetype() function
- Bug fix: Minifier now correctly finds inline styles and scripts on stores without a tag


NitroPack 1.3.3 • OpenCart 1.5.2.x to 1.5.6.x
11/06/2014

- Feature: Added option to keep HTML comments in the HTML minifier
- Change: Moved NitroPack folder permissions to a constant NITRO_FOLDER_PERMISSIONS
- Improvement: CDN uploader now has better detection of cached images
- Improvement: The OpenCart system cache delete function is now using NitroPack functions, instead of native OpenCart functions
- Improvement: exec() function detection now returns more accurate results
- Bug fix: Remote CSS and JavaScript fetching is now working for URL's beginning with "index.php?"
- Bug fix: Fixed logic with NitroPack include files
- Bug fix: Fixed a compatibility issue with SEO MEGA pack images
- Bug fix: Image W/H attributes detection is fixed
- Bug fix: Fixed compatibility issues with Journal theme
- Bug fix: Yahoo! smusher fixes


NitroPack 1.3.2 • OpenCart 1.5.2.x to 1.5.6.x
10/31/2014

- Change: Added a check for the Nitro minifier, which is compatible with PHP 5.3+
- Bug fix: Server hangs after clicking "Save changes" in admin panel
- Bug fix: fonts.googleapis.com is always excluded from the improved JS and CSS minifiers
- Other smaller bug fixes.


NitroPack 1.3.1 • OpenCart 1.5.2.x to 1.5.6.x
10/29/2014

- Bug fixes
- Feature: Image pre-caching before uploading to CDN


NitroPack 1.3 • OpenCart 1.5.2.x to 1.5.6.x
10/28/2014

- Feature: Pre-caching introduced
- Feature: Local CRON jobs introduced
- Feature: Remote CRON jobs introduced
- Feature: Product-specific PageCache clearing is now introduced
- Feature: Extracted JavaScript can be placed on top or bottom of page
- Feature: Pre-minify introduced
- This will save CPU usage and time
- Feature: Response headers from dynamic CSS and JavaScript files are now cached as well
- Feature: Added Global CDN URL (Useful for users with MaxCDN)
- Feature: Added SEO MEGA PACK compatibility for images
- Change: CSS and JavaScript combination is now independent from the minification
- Change: Refactored and improved the Minify functions
- Change: Browser Cache and Compression are now disabled, when NitroPack is disabled
- Improvement: NitroPack cache file name is saved in the $GLOBALS for faster access.
- Improvement: .htaccess rewrite logic improved
- Improvement: All CDN uploaders are working identically. Known issues fixed.
- Bug fix: Minify temp folder is now cleared as well
- Bug fix: Fixed CURL file attachments for PHP 5.5+
- Bug fix: Deprecated mysql_ functions are now fixed to mysqli_
- Bug fix: copy() function bug fixed
- Bug fix: Memcache no longer keeps many unclosed connections
- Bug fix: Maintenance mode fixed. NitroPack is now disabled while Maintenance mode is running.
- Bug fix: Google page speed report trailing slash bug fixed
- Other small bug fixes.


NitroPack 1.2.1 • OpenCart 1.5.2.x to 1.5.6.x
06/04/2014

- Change: Removed the ETag browser caching option
- Change: Removed the DEFLATE .htaccess compression
- Change: Added more detailed explanations of the NitroPack fields
- Change: Improved the Amazon uploader to work on slower file systems
- Feature: Added an option to exclude inline tags
- Bug fix: posix_getpwuid() is now checked for existence before usage
- Bug fix: The NitroWidget now deletes the cache if no more than 1 POST parameters exist
- Bug fix: Added missing code to resources_fix_tool.php
- Bug fix: Resolved redirect loop bug in admin panel
- Bug fix: NitroPack is now fully compatible with iCustomFooter and iWatermark
- Bug fix: Added custom error handlers in the DB cache function and assets compression scripts
- Bug fix: Resolved redirect loop in front page in Maintenance mode
- Bug fix: Added a check before each session_start()
- Bug fix: HTML Compression fixed
- Bug fix: Fixed images CDN rewrite vQmod by adding 2 more rules for compatibility
- Bug fix: Added date_default_timezone_set() in the assets compression scripts


NitroPack 1.2 • OpenCart 1.5.2.x to 1.5.6.x
04/29/2014

- Feature: Shoppica2 mobile compatibility
- Feature: The Amazon S3 CDN option now supports huge list of files
- Feature: Make use of the "Expires" header and compression in Amazon S3
- Feature: Added bucket per resource type in Amazon S3
- Feature: Ability to enable/disable specific NitroPack vQmod files
- Feature: Compatibility with the Journal theme
- Feature: Handle dynamic/external CSS and JavaScript files
- Feature: Include the imported CSS resources when combining the CSS files
- Feature: Compatibility with the SEO MegaPack module
- Feature: Support the native affiliate system of OpenCart
- Feature: Automatically detect renamed admin directory and disable NitroPack in it
- Bug fix: Handle SEO URLs ending in .htm or .html
- Bug fix: Make the Expire time option work
- Bug fix: Handle CSS or JavaScript files with the same name, but in different directories
- Bug fix: The minification and compression options for HTML are now taking into account their global switches
- Bug fix: When smushing images if the url_fopen is not enabled fallback to using curl
- Bug fix: When clearing the cache, truncate the folders instead of deleting them
- Bug fix: Generate consistent cache filename during runtime
- Bug fix: Handle empty lines in the exclude lists
- Bug fix: with the NitroPack's system cache option
- Bug fix: The page speed widget now shows under all browsers
- Bug fix: Change language when the browser cache option is enabled
- Bug fix: Error caused by the chmod() function


NitroPack 1.1.1 • OpenCart 1.5.2.x to 1.5.6.x
01/13/2014

- Bug fix: Fixes related to the experimental functionality for combining and minification


NitroPack 1.1 • OpenCart 1.5.2.x to 1.5.6.x
12/20/2013

- Feature: Automatic CSS and JS detection in the header
- Feature: Handle conditional GET requests (serve only the 304 header when appropriate)
- Feature: Ability to chose which images to be smushed.
- Feature: Infinite smush log
- Feature: Progress bar in the smusher
- Feature: Add information about the php user in the system information provided by NitroPack
- Bug fix: Include in the eAccelerator feature description a note that works only for eAccelerator versions up to 0.9.5.x, since the user cache functions functionality has been removed in 0.9.6.
- Bug fix: The smusher should update the total files field when "Smush" button is clicked
- Bug fix: The smusher should smush in chunks sent by the client (the timeout issue)
- Bug fix: The ignored URL box should trim the text (for spaces and newlines)
- Bug fix: RackSpace PHP _jsCleanComments = false
- Bug fix: Database cache issue for the admin panel.
- Bug fix: Cached 404 pages later resulted in status code 200
- Bug fix: Fixed the alternative database cache engines to use TTL, since they cannot be cleared.
- Bug fix: In top.php in serveCacheIfNecessary, there is a check if (!isset($_SESSION)). Replaced with if (!session_id())
- Bug fix: On product edit, clear ALL of the Nitro cache, not just the page cache.
- Bug fix: Compatibility with iWatermark
- Bug fix: Compatibility with OMF


NitroPack 1.0.3 • OpenCart 1.5.2.x to 1.5.6.x
09/27/2013

- Feature: RackSpace CDN integration
- Feature: Disable NitroPack for specific pages by URL with support of wildcards
- Feature: Smush.it now has a stop button and shows real-time statistics
- Bug fix: Minification of resources with appended get parameters
- Bug fix: Long cache file names issue, now using md5, in NITRO_MODE set to Production
- Bug fix: SSL issue in page cache and minifaction fixed
- Bug fix: Undefined index: success fixed on clearing cache
- Bug fix: mods.cache file is now deleted when the vQmod cache is cleared by NitroPack
- Bug fix: Smush.it fixes
- Bug fix: Firefox gauges not appearing
- Bug fix: Compression of resources with upper-case-written filetypes (like .JPG)


NitroPack 1.0.2 • OpenCart 1.5.2.x to 1.5.6.x
08/02/2013

- Added Google API Key
- Added System information window
- Added Google raw results check
- Added exec() fallbacks for servers that do not support it
- Added Smush.it progress log
- Added OpenCart Gzip compression check
- Bug fixes


NitroPack 1.0.1 • OpenCart 1.5.2.x to 1.5.6.x
07/31/2013

- Bug fixes



  Go Back