Index: vocabperms.module =================================================================== --- vocabperms.module (revision 1598) +++ vocabperms.module (working copy) @@ -150,7 +150,7 @@ } function _vocabperms_node_form_remove_field(&$field) { - global $user; + global $user, $defaults; $count = 0; foreach ($field as $vid => $elem) { if (is_int($vid)) { @@ -167,7 +167,11 @@ * are retained. Use a default value if available. Otherwise, use * the first option (which would be selected by default). */ - $value = isset($elem['#default_value']) ? $elem['#default_value'] : key($elem['#options']); + + // add support for Taxonomy Super Select + if (isset($elem['#default_value'])) $value = isset($elem['#default_value']) ? $elem['#default_value'] : key($elem['#options']); // standard + else $value = _vocabperms_tss_find_defaults($elem); // TSS + $field[$vid] = array( '#type' => 'value', '#value' => $value, @@ -258,3 +262,14 @@ } return $cache[$vid]; } + +// recursively called routine to go through taxionomy super select structure and look for default values +function _vocabperms_tss_find_defaults ($field) { + global $defaults; + foreach ($field as $key => $elem) { + if (is_int($key)) _vocabperms_tss_find_defaults ($elem); + if ($key == "#default_value" && $elem) $defaults[] = $elem; + } + return $defaults; +} +