I use ahah_helper on the node form witch has few taxonomies (including free tags). When ahah elements refreshes in the log I receive 4 same errors with different line number on the taxonomy.module:
Illegal offset type in modules/taxonomy/taxonomy.module on line 606
Investigating noticed thet this happens after this code:
// hack to stop taxonomy from resetting when the form is rebuilt
$form_state['node']['taxonomy'] = taxonomy_preview_terms($node);
Looks taxonomy_preview_terms() func is calling later by taxonomy module also. Cccurs php error because with term object works as with single value. Taxonomy module has condition to eliminate this:
if (!is_object(current($node->taxonomy))) {
$node->taxonomy = taxonomy_preview_terms($node);
}
but it fails because in my case first element is 'tags' array.
For fix this I move 'tags' element into the end of taxonomy array. So changed existing code to:
// hack to stop taxonomy from resetting when the form is rebuilt
$form_state['node']['taxonomy'] = taxonomy_preview_terms($node);
if($tags = $form_state['node']['taxonomy']['tags']){
unset($form_state['node']['taxonomy']['tags']);
$form_state['node']['taxonomy']['tags'] = $tags;
}
Also tested removing this peace of code - no issues received and looks taxonomy stored properly. Perhaps it can be removed?