--- workflow.features_1.inc 2010-08-05 11:04:39.745153285 +0200 +++ workflow.features.inc 2010-08-05 12:06:13.613148692 +0200 @@ -175,7 +175,7 @@ function workflow_export_permissions($wi $permissions = workflow_permissions($wid); foreach ($permissions as $rid => $role) { - $exported_permissions[$role['name']] = $role; + $exported_permissions[addslashes($role['name'])] = $role; } return $exported_permissions; @@ -285,14 +285,24 @@ function workflow_revert_default($config $from = $states[$transition['from']]; $to = $states[$transition['to']]; $transitions[$from][$to][$user_roles_flip[$role_name]] = 1; + } } workflow_update_transitions($transitions); $types = $config->types; + $current_types = array(); + $ct = db_query("SELECT type FROM {workflow_type_map} WHERE wid = %d", $wid); + while($row = db_fetch_object($ct)){ + $current_types[$row->type] = $row->type; + } + $all_types = array_merge($types, $current_types); foreach ($types as $type) { $existing = workflow_get_workflow_for_type($type); - if (!$existing) { + if(!in_array($type, $types) && (!$existing || $existing == $wid)){ + db_query('DELETE FROM {workflow_type_map} WHERE type = "%s" && wid = %d', $type, $wid); + } + elseif (!$existing) { db_query('DELETE FROM {workflow_type_map} WHERE wid = %d', $wid); db_query('INSERT INTO {workflow_type_map} (type, wid) VALUES ("%s", %d)', $type, $wid); }