Hi,
i see that after each VM Update the link in the backend will be removed. So I must rebuild it from hand every time. That is not very comfortable.
I look around in extension table and found only one point which could trigger this bug. I searched for "com_virtuemart" on the extension table and found 2 entries.
The first element is "Xmap - Virtuemart Plugin" with a lower id as VM. After this i have search the vm admin entry on the menu table an saw the menu was linked to the "Xmap - Virtuemart Plugin" and not to VM.
I think the problem with the menu is that Vm on a update search for the first entry on extension table and link it to the menu entry. That is the reason why the entry disapears.
I have changed the id from the "Xmap - Virtuemart Plugin" to a higher as Vm and now the menu doesn't disappear after a update.
So can anyone fix the update script that it search not only for the element field eg add the type and or name field.
hope that can help anybody
We use
$q = 'DELETE FROM `#__menu` WHERE `menutype` = "main" AND
(`link`="index.php?option=com_virtuemart" OR `alias`="virtuemart" )';
What do you suggest?
Sry for my late reply but today i tried to install 2.0.24 and the menu point was disappears again...
In the attachment you can see my extensions and there is a Xmap version with the id 10003 which is lower as the VM id.
If this is lower as the VM-ID i get this problem. And the VM menu point gets removed after a update.
What has had worked for me is to uninstall Xmap and VM. After this it is important to remove all plugins from this components and install it again but first VM and then Xmap.
[attachment cleanup by admin]
hm, maybe deletion is working correct and the issue happens during recreation?
maybe joomla gets this (from virtuemart.xml line 48)
<menu img="../components/com_virtuemart/assets/images/vmgeneral/menu_icon.png">COM_VIRTUEMART</menu>
and finds "com_virtuemart" (from disabled Xmap virtuemart-plugin) in table "_extensions"
and gives wrong extension_id number to VM-Link in table "_menu"
so either joomla should check, if type = component in table "_extensions"
or VM - plugins should not use "com_virtuemart" (maybe "com_xmap_virtuemart")
just for info:
table _extensions
extension_id name type element enabled
10001 xmap package pkg_xmap 1
10002 Xmap - Content Plugin plugin com_content 1
10003 Xmap - Virtuemart Plugin plugin com_virtuemart 0
10014 virtuemart component com_virtuemart 1
10015 virtuemart_allinone component com_virtuemart_allinone 1
Quote from: gogo123 on October 31, 2013, 17:53:58 PM
10003 Xmap - Virtuemart Plugin plugin com_virtuemart 0
Thank you very much. I think that is the answer of the question why if often does not work correctly. Caused by 3rd party plugins using wrong convention.
maybe the delete-code could go to an uninstall file
or something like:
if update/upgrade -> do nothing
else -> delete-code
might work?