line 377 in profile_taxonomy (version = "6.x-1.4") reads:

db_query("UPDATE {profile_values} SET value = '%s' WHERE fid = %d AND value REGEXP '%s'",
            $term->name, $reference->fid, "(, )?$old_term_name(, )?");

This line clobbers the "other" fields that live in the serialized array in the column 'value' in table profile_values. Thereby, you loose anything but the taxonomy term that's being updated. And it unserializes the array.

I wasn't sure which module to file this under, but I'm guessing it would be the responsibility of profile_checkboxes, since it's using a deviation from the original purpose of the column in the table. Meaning serialized array is a deviation and thus, the other modules don't know/don't expect it.

I marked this critical since users will loose data without knowing it. I didn't file anything under profile_taxonomy.

Hope this helps,
aklump

Comments

johnhanley’s picture

You raise a legitimate issue, but it's not exactly a bug per se. It's more of an incompatibility between the two modules. As you said, Profile Checkboxes deviates from the intended usage of the value column and obviously can't prevent other modules from overwriting the serialize array value.

I'm certainly open to suggestions for developing a workaround, but it might come down to having to make a choice between the two modules.

codejuggler’s picture

I'm seeing the same error - I just updated the spelling for a single taxonomy term and it has deleted all the info for every user that used that setting.

I'm also finding that a view that used the taxonomy term as a filter is now also broken - the updated term is never found.

Seems like the modules should be marked as incompatible.

johnhanley’s picture

Status: Active » Closed (won't fix)

I'm sorry to hear about your data loss.

The fault ultimately is with Profile Checkboxes because it hijacks the value table column for an untended purpose.

This is or isn't a bug depending on one's perspective, but at this point in the life cycle of Drupal 6 it's highly unlikely going to change.