You are here

function _feeds_tamper_clone_tamper_plugins in Feeds Tamper 7

Additional submit handler for feeds_build_create_form().

See also

feeds_tamper_form_feeds_ui_create_form_alter()

1 string reference to '_feeds_tamper_clone_tamper_plugins'
feeds_tamper_form_feeds_ui_create_form_alter in feeds_tamper_ui/feeds_tamper_ui.module
Implements hook_form_BASE_FORM_ID_alter().

File

feeds_tamper_ui/feeds_tamper_ui.module, line 181
Feeds Tamper UI - Defines the user interface for Feeds Tamper.

Code

function _feeds_tamper_clone_tamper_plugins(array &$form, array &$form_state) {
  if (empty($form_state['values']['clone_tamper_plugins'])) {
    return;
  }
  $from_importer_id = isset($form['#from_importer']->id) ? $form['#from_importer']->id : '';
  if (!$from_importer_id) {
    return;
  }
  $tamper_plugins = feeds_tamper_load_by_importer($from_importer_id, FALSE);

  // Copy plugins to the new importer.
  foreach ($tamper_plugins as $tamper_plugin) {
    foreach ($tamper_plugin as $old_instance) {
      $new_instance = clone $old_instance;
      $id_parts = explode('-', $old_instance->id);

      // Normal id.
      if (count($id_parts) === 3) {
        $id_parts[0] = $form_state['values']['id'];
        $new_instance->id = implode('-', $id_parts);
      }
      else {
        $new_instance->id = $form_state['values']['id'] . '-' . implode('-', $id_parts);
      }
      $new_instance->importer = $form_state['values']['id'];
      $new_instance->export_type = NULL;
      $new_instance->type = t('Local');
      unset($new_instance->table);
      unset($new_instance->disabled);
      feeds_tamper_save_instance($new_instance);
    }
  }
}