New Template vmBasic
The new template is written by Spyros Petrakis and is kept simple to enable easy modification. It works fast out of the box and is written fully in Bootstrap 5. Mobile ready and simple to configure. Natively supported OPC.
The new layout system of VirtueMart allows you to use different bootstrap layouts and this now comes into play. The layout files of the vmBasic are integrated in the core as files with the prefix bs5-, meaning these basic layouts can easily be used in any other bootstrap 5 templates. This means VirtueMart has arrived in the Bootstrap 5 world finally. Special Virtuemart css classes are reduced, so it is also easier to learn. This should increase the out of the box useablity of templates for VirtueMart. The Bootstrap 5 layout is set for Joomla 5 automatically. Existing layout overrides are kept.
Rough times behind, calm waters ahead, let's sail into the future.
The last few years have been characterised by constant changes in the software environment of VirtueMart. Yeah, I know, I have written this often already, but it really had a massive impact from j3 to j4 to j4.2 to mysql strict mode to php8.0 to php8.2 to bootstrap 5. The errors for the mysql strict mode and PHP8.2 were unpleasant to find. The prior big advantage to use PHP was the simple type juggling, but that has become much stricter and as a result we had to remove a lot small inconsistences in the code. For example, before it was allowed to initialise a variable with false (boolean) and to set it later to "all" (string). Now it must be initialised as string directly. The mysql strict mode created similar problems. Storing of strings formed as integer like "7" were stored correctly before, but now it must be a correct integer.
This created a lot of work, but the mysql strict mode existed for years and the new strict php types just follow developer languages like Java or C, so there are no hidden surprises. After our changes these modernisations should now be catered for. Joomla 5 will be supported the next 3 years at least. There is no release date yet for PHP 9 and the known changes are mostly covered (PHP8 Warnings will become fatals, so we did our homework already to 98%). The development for Bootstrap 6 has not even started yet (officially) and they say a new version would take at least 5 years. This means these problems cannot appear again in this massive way. This is good news especially for shops who were forced to frequently update their template over the last years.
Interesting new features for shopowners
- New bootstrap 5 frontend template (vmbasic)
- Moved vmbasic bs5 views and assets in the core folders
- Frontend Template system checks now also in media/templates/site/yourTemplate/com_virtuemart... for ressources, this means common joomla 5 templates should work as expected (by VirtuePlanet.com)
- Added storing and loading of user addresss to cart for native OPC
- New media type webp by vdweb.cz and alxgan https://forum.virtuemart.net/index.php?topic=151601.0 and tagarrison (fancybox)
- Enhanced feature recommend a friend, ask a question, call for price, there is now a new option, which allows to use this function only as customer who already bought
Enhancements (or fixes)
- Enhanced the user switcher (started with a bug in some templates)
- Userfields in the array can now be accessed by name, this makes it a lot easier to controll a form or output of an address
- Added manufacturer and manufacturer images for category views with set manufacturerId cart view,
- Added "text/csv" to safe mime types. So we can use the vm file uploader also for csv files
- Enhanced autochecker of the cart to work also with text fields (for the native OPC)
- Enhancements for multi image uploading and enhanced image recognition by a community member
- Changed loading of user data in the backend, loaded before only BT form, it checks now for published, but not cart attributs
- Added language switcher and vendor module to public svn
- Function deleteOldPendingOrder changed rules, it deletes P and U state now, if an orderId is given in the cart.
- It is possible to set an OrderId for the cart
- Enhanced PayPal Checkout; Button loader with asnchron fetch
- Enhanced PayPal Checkout; Disabled trigger plgVmOnUpdateOrderPayment completly. Problem, doing a partial refund on PayPal sets the R Order status, which triggers this function, which does a complete refund.
- PayPal removed old debugs, cleaned debug mode, less logging
- HandlePaymentUserCancel sets the order status now on P NOT C anylonger.
- Enhanced the invoice download button. Appears now also if the pdf is not rendered (because it is then rendered for the download)
- Enhanced info messages if safe path is missing
- Fixed display of shipment/payment in order/invoice, if something went wrong (fallback to method name)
- Enhancement for xml update files
Fixes
- vDispatcher adjusted to Joomla 5 by stAn of RuposTel, this means that the recaptcha works again for joomla 5 and also other j4/j5 plugin
- Fix for the styling of invalid checkboxes and tos on checkout page.
- Fixing the "customer_notified" record broke the comments in the mail.
- Fixes for userfields display
- vmURI urlencode replacement for PHP8 created a loop accidently
- #__virtuemart_order_histories table, increased order_status_code to char 3
- Removed js note in cart "unreachable code"
- userfields enhanced function getUserFields, added switch to give query (without ordering by)
- userfields $_fld->type == 'webaddress' returns an URL as <a> html element
- spwizard added function_exists('str_contains') for people using php 7
- Fixed dragndrop for the product view product sorting (by AH)
- Important fix, so that editing an order executes the same filters, actions for userfields like coming from the cart
- Important fix for storing of customfields. Due accidently using the same variable name, it could happen, that the wrong customfield was set
- during the foreach loop on the looped array.
- VmUploader shows for admins a complete path and for users just the file name after successful upload
- Smaller fix in mediahandler to prevent folders used as image
- Enhanced the vmtable, addloggable directly adds setInteger enhanced product table, added variables to be cast to integer
- Removed old arrays in userfields
- Invoice_locked should be fixed. Considers the object/array problem now
- Fix for category dropdown as tree
- fixed product model getNeighborProducts if there is no extra "where", can happen if a shop shows only productdetails
- Increased varchars of column layout of the product table