Author Topic: An error has occurred.  (Read 1712 times)

Milbo

  • Virtuemart Projectleader
  • Administrator
  • Super Hero
  • *
  • Posts: 10283
  • VM3.9 Eagle Owl
    • VM3 Extensions
  • VirtueMart Version: VirtueMart 3 on joomla 3
Re: An error has occurred.
« Reply #15 on: June 27, 2022, 12:21:51 pm »
Updated to Version 4 and got this:

Quote
An error has occurred.
0 Call to undefined method TableProducts::setDateFields()

It is a new function of the table and it is only called in tables. So it looks like, sometimes the installer loaded already the old vmtable without the function. But in theory that should not happen and so I do not know how to prevent that.

the vm plugin is loaded before the installation, it should load the file from the installer path. Maybe that works sometimes incorrectly. Or some other plugin loads the vm config before, so you get old files. In this case, just install vm again.


Should I fix your bug, please support the VirtueMart project and become a member
______________________________________
Extensions approved by the core team: http://extensions.virtuemart.net/

MAD King

  • Jr. Member
  • **
  • Posts: 417
  • Supporter Membership - Gold
  • VirtueMart Version: Always the Latest
Re: An error has occurred.
« Reply #16 on: June 27, 2022, 14:03:07 pm »
Rather to attack Jumbo you should thank him that he took the time to help to give a solution and get together with him to get his code into core. No one else here did.
Your response was unnecessary.

Thank you, Jumbo, again.


He just does not write it in the dev chat ... so pure luck if it comes into the next core, or not.

 I also do not understand the difference. at begin no layout is set, so it must use the "else" case runs through the "!isset(VmView::$bs)) case. So I do not understand how it makes a difference if you load it always. I just placed it below the
Code: [Select]
if(isset($layouts[$name])){
return $layouts[$name];
} else {
case, so that it is not checked if it should return an already cached layout, which again means, that the if(!isset(VmView::$bs)){ was done.
Joomla! 3.10.10
VirtueMart 4.0.6 10690

Jumbo!

  • 3rd party VirtueMart Developer
  • Full Member
  • *
  • Posts: 826
  • Full-stack Web Developer
    • www.virtueplanet.com
  • VirtueMart Version: Always latest
Re: An error has occurred.
« Reply #17 on: June 27, 2022, 18:15:54 pm »
He just does not write it in the dev chat ... so pure luck if it comes into the next core, or not.

 I also do not understand the difference. at begin no layout is set, so it must use the "else" case runs through the "!isset(VmView::$bs)) case. So I do not understand how it makes a difference if you load it always. I just placed it below the
Code: [Select]
if(isset($layouts[$name])){
return $layouts[$name];
} else {
case, so that it is not checked if it should return an already cached layout, which again means, that the if(!isset(VmView::$bs)){ was done.

We have already discussed it in the dev chat. You have also included the changes in the next update. Probably you forgot. :)