New stable release candidate vm 3.4.2.9966 released, complete list of changes

Started by Milbo, October 08, 2018, 09:44:35 AM

Previous topic - Next topic

Milbo

The problem started with a small change to the Joomla updater, which required us to write a system plugin for third-party VirtueMart plugins. But of course a few third-party developers did the same thing (one of them gave us the code instead of providing his own) and so we encountered several plugins trying to load the VirtuemartConfig class before the updater could load the config class from the new installation files. So the updater got the wrong paths. Normally this wouldn't be a big deal as long as the correct SQL files are loaded, because most of the installation functions are based on those of the installation program.

But one of the big design changes in VM 3.4 was to use the Joomla class loader. The old VirtueMartConfig classes didn't register the new classes and all old 'if class not exists' constructions were removed, so some users had missing classes when they updated the core program. We are sorry about that.

We noticed this problem a few months ago and updated the system installer to check if there is an update and set the correct path. But we overlooked the point that third-party system plugins can already be loaded and that our system plugin is usually updated later (most people update the core first, then AIO). So users who updated got the problem that the updater loaded the wrong SQL files. The simple fix was to use the installation files to update again, or to run our tool (usually for developers only) "Install or if necessary update tables". This was the reason why we changed the installation files within 2 days of the release. The new installer now always uses the correct directory and it is no longer dependent on the loaded VirtueMart config class. In addition, the classes are re-registered in the Joomla class loader with the correct path. Third party vendors should update their system plugins by loading the VirtueMartConfig class in the same way as ours.

r9962
Fix for vendor list (Fallback for multilang was missing)
---------------------
r9961
- fixed bug of double encrypted fields in case of table loaded with language fallback
- Enhanced installation of language tables (fullinstaller, normal install, language change)
---------------------
r9955
- backend category listing, added strip_tags to category_description (invalid html in the description could break the list layout)
- removed accidently set comment at trigger plgVmOnStoreInstallPluginTable (customs) and added an if so that the trigger is only executed when a custom with plugin is stored
- added allIds to fillVoidProduct to avoid notices
- readded function _getCustomPrice
---------------------
r9954
- VmConfig the option "Use Global Configuration" displays now the language tag of the global configuration
- installer, removed COM_VM_INSTALL_VMCONFIG_ALREADY_LOADED
---------------------
r9953
added function vRequest::vmHtmlEntities and used it anywhere in product edit (replaced old htmlentities respectivly htmlspecialchars)
---------------------
r9952
Fixed order tracking mode
---------------------
r9951
Paypal Smart Buttons added label, language, ...
---------------------
r9950
- sendVmMail: more robust code
---------------------
r9949
Fixed 404 handling, 404 is now set in the header
---------------------
r9944
eway: fixes in payment currency
---------------------
r9943
Eway uses an AJAX page using the JSONP submission script State code sent to Eway countrycode + state code payment currency fixed
---------------------
r9939
- Moved vmDefines outside config
- Important fix for the country/state checker again, when no state/country userfield was published
- Userfields, cart address should show now the country in the right language
- order status was sometimes in invoice mail not correctly translated
---------------------
Should I fix your bug, please support the VirtueMart project and become a member
______________________________________
Extensions approved by the core team: http://extensions.virtuemart.net/


aninka

I did the update today and now when I log in to my Joomla administration site, I get the menus and a blank page.  there is the "Error 1242 subquery returns mor than 1 row" none of the menu options are working and VM is totally missing from all the menus.
I can't work out what to do, the front end of the website is working fine but I can't access anything on the backend including updating customer orders. 

Please help, I think this issue happened when the VM aio was being updated as it was all working well before that.

Please help, running Joomla 3.8.13 PHP 7.0.32 Virtuemart latest version updated today but can't access to tell you what version it is.  :'(

GJC Web Design

GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

aninka

thanks but that is not working either using https://www.yoursite.com/administrator/index.php?option=com_virtuemart gives me the same result.   a white page with the top admin menu that doesn't work. 

How else can I fix this?

StefanSTS

--
Stefan Schumacher
www.jooglies.com - VirtueMart Invoice Layouts

Please use only stable versions with even numbers for your live shop! Use Alpha versions only if you know what risk you are taking.

aninka

Thanks but would installing this wipe out my data, media files, settings etc?  and how do I install it if I can't access the Joomla administration section?



GJC Web Design

Data is never touched in upgrades/down grades

the white screen is a fatal error

read here and find what it is  http://forum.virtuemart.net/index.php?topic=117042.0

everything is fixable

GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

GJC Web Design

Quoteand how do I install it if I can't access the Joomla administration section?

so NOTHING is visible in the Joomla admin?
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

Studio 42

If you cannot modify the config, you should edit the configuration.php file in the Jomla root folder and set public $error_reporting = 'maximum';

welrachid

Hi Guys.
im using a custombuild component to make the life of a shopowner easier. I have a controller in which i have tasks that all rely on this old
      if (!class_exists ('shopFunctionsF'))
         require(VMPATH_SITE . DS . 'helpers' . DS . 'shopfunctionsf.php');

Apparently DS is no longer defined, so i changed this to DIRECTORY_SEPARATOR
VMPATH_SITE is also not defined, so i cant get classes loaded correctly.

this means that:
$orderModel=VmModel::getModel('orders');
gives me a Fatal error.

Is there a place where i can see how its supposed to be done?
this probably means i need to change a lot of internal plugins to make them work correctly..
(Was working correctly in 3.2.14)

Thanks.
Best regards,
Wel

aninka

no, nothing is showing except the normal joomla menu but the menu options are not working at all.  The Virtuemart menu options are missing from the menu, they won't load. 

It is the update that broke it, particularly the aio update, everything was fine until then.

not sure how I can install the previous version without Joomla working. 

The only other option I can think of is to restore from yesterday's back up but I will loose my customer information and the orders that came through today. 

Any help at this stage would be great, please

GJC Web Design

I do something like this is external comps

      if (!class_exists( 'VmConfig' )) {
      require(JPATH_ADMINISTRATOR.DIRECTORY_SEPARATOR.'components'.DIRECTORY_SEPARATOR.'com_virtuemart'.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'config.php');
      VmConfig::loadConfig();
}

Max will probably have a fit though..  ;)
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

GJC Web Design

QuoteAny help at this stage would be great, please


Quotethe white screen is a fatal error

read here and find what it is  http://forum.virtuemart.net/index.php?topic=117042.0


??????

and the error is?
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

welrachid

Quote from: GJC Web Design on October 10, 2018, 15:00:05 PM
I do something like this is external comps

      if (!class_exists( 'VmConfig' ))
      require(JPATH_ADMINISTRATOR.DIRECTORY_SEPARATOR.'components'.DIRECTORY_SEPARATOR.'com_virtuemart'.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'config.php');
      VmConfig::loadConfig();
}

Max will probably have a fit though..  ;)

Thanks. Works like a charm. it was missing "{"
Best regards,
Wel