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);
}
}