} elseif ($fields['validator'] == 'custom') {
     $fields['validator'] = "custom";
     $fields['validation_rule'] = trim($fields['validation_rule']);
 } else {
     include TOOLKIT . '/util.validators.php';
     $fields['validator'] = intval($fields['validator']);
     $fields['validation_rule'] = NULL;
 }
 if ($fields['type'] == 'checkbox') {
     $fields['default_state'] = isset($fields['default_state']) ? 'checked' : 'unchecked';
 } else {
     $fields['default_state'] = 'na';
 }
 include_once TOOLKIT . "/class.customfieldmanager.php";
 $CustomFieldManager = new CustomFieldManager($Admin);
 $CustomField =& $CustomFieldManager->create();
 $CustomField->set('id', $field_id);
 foreach ($fields as $key => $val) {
     $CustomField->set($key, $val);
 }
 if ($CustomField->commit()) {
     $Admin->rebuildWorkspaceConfig();
     $Admin->flush_cache(array("entries", "customfields"));
     ###
     # Delegate: Edit
     # Description: After editing a customfield. ID is provided.
     $CampfireManager->notifyMembers('Edit', CURRENTPAGE, array('customfield_id' => $field_id));
     if (@array_key_exists("save", $_POST['action'])) {
         General::redirect($Admin->getCurrentPageURL() . "&id=" . $field_id . "&_f=saved");
     }
     General::redirect(URL . "/symphony/?page=/structure/customfields/");