You are here

farm_data_field.module in farmOS 7

Farm data field module.

File

modules/farm/farm_data_field/farm_data_field.module
View source
<?php

/**
 * @file
 * Farm data field module.
 */

/**
 * Implements hook_farm_fields_dynamic_bases().
 */
function farm_data_field_farm_fields_dynamic_bases() {
  return array(
    'field_farm_data' => array(
      'active' => 1,
      'cardinality' => 1,
      'deleted' => 0,
      'entity_types' => array(),
      'field_name' => 'field_farm_data',
      'indexes' => array(
        'format' => array(
          0 => 'format',
        ),
      ),
      'locked' => 0,
      'module' => 'text',
      'settings' => array(),
      'translatable' => 0,
      'type' => 'text_long',
    ),
  );
}

/**
 * Implements hook_farm_fields_dynamic_instances().
 */
function farm_data_field_farm_fields_dynamic_instances() {

  // Start an empty array of field instance definitions.
  $field_instances = array();

  // Get a list of log types.
  $log_types = log_types();

  // Get a list of asset types.
  $asset_types = farm_asset_types();

  // Iterate through the log and asset types to build an array of entity types
  // and bundles.
  $entity_types = array();
  foreach ($log_types as $bundle => $info) {
    $entity_types['log'][] = $bundle;
  }
  foreach ($asset_types as $bundle => $info) {
    $entity_types['farm_asset'][] = $bundle;
  }

  // Add a data field to each bundle.
  foreach ($entity_types as $entity_type => $bundles) {
    foreach ($bundles as $bundle) {
      $field_instances[] = array(
        'bundle' => $bundle,
        'default_value' => NULL,
        'deleted' => 0,
        'description' => t('The data field can be used to store arbitrary data on the log.'),
        'display' => array(
          'default' => array(
            'label' => 'above',
            'type' => 'hidden',
            'weight' => 0,
          ),
        ),
        'entity_type' => $entity_type,
        'field_name' => 'field_farm_data',
        'label' => t('Data'),
        'required' => 0,
        'settings' => array(
          'text_processing' => 0,
          'user_register_form' => FALSE,
        ),
        'widget' => array(
          'active' => 1,
          'module' => 'text',
          'settings' => array(
            'rows' => 5,
          ),
          'type' => 'text_textarea',
          'weight' => 0,
        ),
      );
    }
  }

  // Return the array of field instance definitions.
  return $field_instances;
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function farm_data_field_form_log_form_alter(&$form, &$form_state, $form_id) {

  // Hide the data field in log forms.
  if (!empty($form['field_farm_data'])) {
    $form['field_farm_data']['#access'] = FALSE;
  }
}

/**
 * Implements hook_form_FORM_ID_alter().
 */
function farm_data_field_form_farm_asset_form_alter(&$form, &$form_state, $form_id) {

  // Hide the data field in asset forms.
  if (!empty($form['field_farm_data'])) {
    $form['field_farm_data']['#access'] = FALSE;
  }
}