You are here

function nr_fields_nr_settings_enable_private_fields_submit in Node registration 7

Submit handler for node_registration_registrations_settings_form().

Enables 'private fields' for this node/event. Creates a new node_registration bundle.

1 string reference to 'nr_fields_nr_settings_enable_private_fields_submit'
nr_fields_form_node_registration_registrations_settings_form_alter in submodules/nr_fields/nr_fields.module
Implements hook_form_FORM_ID_alter() for node_registration_registrations_settings_form();

File

submodules/nr_fields/nr_fields.module, line 41

Code

function nr_fields_nr_settings_enable_private_fields_submit($form, &$form_state) {
  $node = $form['#node'];
  $settings = $node->registration;

  // Create new registration bundle.
  $settings
    ->update(array(
    'private_fields' => 1,
  ));

  // Copy fields.
  $bundle = 'node_' . $node->nid;
  $instances = field_info_instances('node_registration', $node->type);
  foreach ($instances as $instance) {
    $instance['bundle'] = $bundle;
    field_create_instance($instance);
  }

  // Notify user.
  $uri = 'admin/structure/node_registration/manage/' . $bundle . '/fields';
  $link = l(t('Edit its fields here.'), $uri);
  drupal_set_message(t('Private fields created. !link', array(
    '!link' => $link,
  )));

  // Reset entities & menu routes.
  entity_info_cache_clear();
  menu_rebuild();
}