The i18nsync module synchronizes taxonomies before synchronizing fields, but during the field synchronization, it loads the node and does a node_save(). The node_load() is loaded a cached version of the node, and thus, when the node_save() is over-writing the taxonomy terms that were synchronized in the taxonomy synchronization.
You would hope that the solution would be as simple as passing the $reset flag to the node_load() of the translation nodes. However, because taxonomy caches it's values in static variables that aren't reset by node_load's reset, you have to actually manually get the current taxonomy values.
This problem appears solved in Drupal 7.x with drupal_static_reset(), but lingers in along in 5.x and 6.x.
Comment | File | Size | Author |
---|---|---|---|
taxcache.patch | 1.03 KB | douggreen |
Comments
Comment #1
greg.harveyEdit: Just read your post properly. Sorry. You note that taxonomy.module ignores the node_load reset. I am having this problem too. Looking at your patch.
node_load($nid, NULL, TRUE)
in Drupal 5.x and 6.x will reset the static. TheTRUE
being a variable called$reset
which clears the cache. =)Comment #2
Jose Reyero CreditAttribution: Jose Reyero commentedSee #626858: Internationalization 5.x Maintenance Policy. Approaching end of support..
Also experimental modules won't be supported anymore so consider upgrading to 6.x.
Comment #3
jiv_e_old CreditAttribution: jiv_e_old commentedRelated issues:
http://drupal.org/node/605182
http://drupal.org/node/594004
http://drupal.org/node/767104