You are here

function farm_import_feeds_tamper_plugin in farmOS 7

Helper function for generating standardized tamper plugin definitions.

Parameters

string $entity_type: The entity type.

string $bundle: The entity bundle.

string $source: The name of the Feeds source (column header in CSV imports).

string $plugin: The Feeds Tamper plugin machine name.

mixed $value: A value to provide as input to certain plugins (ie: default_value).

Return value

object Returns a Feeds Tamper plugin object.

5 calls to farm_import_feeds_tamper_plugin()
farm_crop_feeds_tamper_default_alter in modules/farm/farm_crop/farm_crop.module
Implements hook_feeds_tamper_default_alter().
farm_import_feeds_tamper_default in modules/farm/farm_import/farm_import.feeds_tamper_default.inc
Implements hook_feeds_tamper_default().
farm_livestock_feeds_tamper_default_alter in modules/farm/farm_livestock/farm_livestock.module
Implements hook_feeds_tamper_default_alter().
farm_log_input_feeds_tamper_default_alter in modules/farm/farm_log/farm_log_input/farm_log_input.module
Implements hook_feeds_tamper_default_alter().
farm_soil_test_feeds_tamper_default_alter in modules/farm/farm_soil/farm_soil_test/farm_soil_test.module
Implements hook_feeds_tamper_default_alter().

File

modules/farm/farm_import/farm_import.module, line 157
Farm import module.

Code

function farm_import_feeds_tamper_plugin($entity_type, $bundle, $source, $plugin, $value = NULL) {

  // Build the importer machine name.
  $importer = $entity_type . '_' . $bundle;

  // Generate a machine name from the source.
  $source_machine = feeds_tamper_make_machine($source);

  // Build the tamper plugin ID.
  $id = $importer . '-' . $source_machine . '-' . $plugin;

  // Build the description and settings based on the plugin type.
  $plugin_type = $plugin;
  switch ($plugin_type) {

    // Boolean.
    case 'boolean_default_true':
      $plugin_type = 'boolean_default';
      $description = 'Convert to boolean (with default)';
      $settings = array(
        'default_value' => TRUE,
      );
      break;
    case 'boolean_default_false':
      $plugin_type = 'boolean_default';
      $description = 'Convert to boolean (with default)';
      $settings = array(
        'default_value' => FALSE,
      );
      break;

    // Explode.
    case 'explode':
      $description = 'Explode';
      $settings = array(
        'separator' => ',',
        'limit' => '',
        'real_separator' => ',',
      );
      break;

    // Find and replace.
    case 'find_replace':
      $description = 'Find replace';
      $settings = array(
        'find' => !empty($value['find']) ? $value['find'] : '',
        'replace' => !empty($value['replace']) ? $value['replace'] : '',
        'case_sensitive' => 0,
        'word_boundaries' => 0,
        'whole' => 0,
        'regex' => FALSE,
        'func' => 'str_ireplace',
      );
      break;

    // Required.
    case 'required':
      $description = 'Required field';
      $settings = array(
        'invert' => 0,
        'log' => 1,
      );
      break;

    // String to Unix timestamp.
    case 'strtotime':
      $description = 'String to Unix timestamp';
      $settings = array();
      break;

    // Unix timestamp to date.
    case 'timetodate':
      $description = 'Unix timestamp to Date';
      $settings = array(
        'date_format' => 'Y-m-d',
      );
      break;

    // Trim whitespace.
    case 'trim':
      $description = 'Trim';
      $settings = array(
        'mask' => '',
        'side' => 'trim',
      );
      break;

    // Empty defaults.
    default:
      $description = '';
      $settings = array();
  }

  // Build the plugin.
  $feeds_tamper = new stdClass();
  $feeds_tamper->disabled = FALSE;

  /* Edit this to true to make a default feeds_tamper disabled initially */
  $feeds_tamper->api_version = 2;
  $feeds_tamper->id = $id;
  $feeds_tamper->importer = $importer;
  $feeds_tamper->source = $source;
  $feeds_tamper->plugin_id = $plugin_type;
  $feeds_tamper->settings = $settings;
  $feeds_tamper->weight = 0;
  $feeds_tamper->description = $description;

  // Return the plugin.
  return $feeds_tamper;
}