You are here

function flexiform_element_group_clone_groups in Flexiform 7

Clone the groups between two flexiforms.

Parameters

string $original: The machine name of the original flexiform.

string $new: The machine name of the new flexiform.

2 calls to flexiform_element_group_clone_groups()
flexiform_element_group_flexiform_form_clone_groups_submit in flexiform_element_group/flexiform_element_group.module
Form submission handler to clone all the form groups.
flexiform_webform_form_submit in flexiform_webform/flexiform_webform.admin.inc
Form API submit callback for the type form.

File

flexiform_element_group/flexiform_element_group.module, line 100
Provide groups on flexiform.

Code

function flexiform_element_group_clone_groups($original, $new) {
  $groups = field_group_info_groups('flexiform', $original, 'form');

  // Prepare storage with ctools.
  ctools_include('export');
  foreach ($groups as $group) {
    $new_group = clone $group;
    unset($new_group->id);
    unset($new_group->table);
    unset($new_group->export_type);
    unset($new_group->type);
    $new_group->bundle = $new;
    $new_group->identifier = "{$new_group->group_name}|flexiform|{$new}|form";

    // Save and enable it in ctools
    ctools_export_crud_save('field_group', $new_group);
    ctools_export_crud_enable('field_group', $new_group->identifier);
  }
}