You are here

function flexiform_webform_ui_get_clone_form in Flexiform 7

1 string reference to 'flexiform_webform_ui_get_clone_form'
FlexiformWebformUIController::hook_menu in flexiform_webform/flexiform_webform.admin.inc
Provides definitions for implementing hook_menu().

File

flexiform_webform/flexiform_webform.module, line 329
Module provides simple webform functionality.

Code

function flexiform_webform_ui_get_clone_form($entity_type, $entity, $op = 'clone', $form_state = array()) {
  $form_id = 'flexiform_webform_form';

  // Do not use drupal_get_form(), but invoke drupal_build_form() ourself so
  // we can prepulate the form state.
  $form_state['wrapper_callback'] = 'entity_ui_main_form_defaults';
  $form_state['entity_type'] = 'flexiform_webform';
  form_load_include($form_state, 'inc', 'entity', 'includes/entity.ui');
  $entity = clone $entity;
  $entity->id = FALSE;
  $entity->cloned_from = $entity->webform;
  $entity->webform = FALSE;
  $entity->is_new = TRUE;
  $entity->status = ENTITY_CUSTOM;

  // We don't pass the entity type as first parameter, as the implementing
  // module knows the type anyway. However, in order to allow for efficient
  // hook_forms() implementiations we append the entity type as last argument,
  // which the module implementing the form constructor may safely ignore.
  // @see entity_forms()
  $form_state['build_info']['args'] = array(
    $entity,
    $op,
    $entity_type,
  );
  return drupal_build_form($form_id, $form_state);
}