My problem is that the second vocabulary (vid==2, tid=={3,7}) allows multiple selection, whereas the first vocabulary (vid==1, tid==1) does not. The way the underlying form_select() called by taxonomy_form() seems to work is that it uses a subarray for the field only if multiple selection is allowed. This
There isn't a good way to match up those sub-subarrays with the vid to which
In my fiddling with folksonomy, I know what you're talking about. The taxonomy form doesn't, in any instance, give a damn about the vid. The ONLY effect of choosing "Multiple select" is the UI element: there is no underlying code that actually checks to make sure only $n terms were passed for a particular $vid. As a bug, "Multiple select is determined by form UI, not logic." With that said, the $vid isn't required for taxonomy_save to work. To the underlying code, all it cares about is the $nid and the $tid, which get saved into term_data. The $vid isn't required for this - the $tids are unique so you can always find the $vid later on in life. The subarray you're seeing is just a side-effect of the "Multiple select" option; the "no good way to match up with the $vid" is entirely "by design". If you're really insanely interested in the $vid, you could use the _nodeapi on 'validate' to enforce your own checks: look over each $tid, find the matching $vid, and check against vocabulary.multiple, and form_set_error if you received more than you expected.
they point, so simple conditional logic inside my foreach{} loop is not going to be feasible if the site administrator has associated more than one multi-term-
I'm not sure why you actually /need/ the $vid. -- Morbus Iff ( you are nothing without your robot car, NOTHING! ) Culture: http://www.disobey.com/ and http://www.gamegrene.com/ Spidering Hacks: http://amazon.com/exec/obidos/ASIN/0596005776/disobeycom icq: 2927491 / aim: akaMorbus / yahoo: morbus_iff / jabber.org: morbus