Applies to all versions.
Please do not do this:
Code:
SET @configuration_group_id=0;
SELECT @configuration_group_id:=configuration_group_id
FROM configuration_group
WHERE configuration_group_title= 'My Mod Name'
LIMIT 1;
DELETE FROM configuration WHERE configuration_group_id = @configuration_group_id;
DELETE FROM configuration_group WHERE configuration_group_id = @configuration_group_id;
If the mod has never been installed before, there is no such configuration group, so you wind up deleting configuration group 0.
This produces the problem described in this thread:
http://www.zen-cart.com/forum/showthread.php?t=170483
To avoid this, just have a separate "uninstall.sql" file and don't include the cleanup statements in your install.sql file.
You can tell that configuration group 0 has been deleted by looking at a product with a text field in your catalog product info page. You'll see something like this:
<input type="text" name="id[TEXT_PREFIX72]" size="32" maxlength="300" value="" id="attrib-72-0" />
instead of something like this:
<input type="text" name="id[txt_72]" size="32" maxlength="300" value="" id="attrib-72-0" />
A better way to structure your SQL if you want to clean up before you add config entries (provided by @Numinix):
Code:
SELECT @configuration_group_id:=configuration_group_id
FROM configuration_group
WHERE configuration_group_title= 'YOUR-FEATURE-NAME'
LIMIT 1;
DELETE FROM configuration WHERE configuration_group_id = @configuration_group_id AND configuration_group_id != 0;
DELETE FROM configuration_group WHERE configuration_group_id = @configuration_group_id AND configuration_group_id != 0;
Bookmarks