You are here

single_image.module in Single Image Formatter 7

Main file for sinagle_image formatter module.

File

single_image.module
View source
<?php

/**
 * @file
 * Main file for sinagle_image formatter module.
 */

/**
 * Implements hook_field_formatter_info().
 */
function single_image_field_formatter_info() {
  $formatters = array(
    'single_image' => array(
      'label' => t('Single Image'),
      'field types' => array(
        'image',
      ),
      'settings' => array(
        'image_style' => '',
        'image_link' => '',
        'single_image_delta' => '',
      ),
    ),
  );
  return $formatters;
}

/**
 * Implements hook_field_formatter_settings_form().
 */
function single_image_field_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {

  // Get default
  $element = image_field_formatter_settings_form($field, $instance, $view_mode, $form, $form_state);
  $display = $instance['display'][$view_mode];
  $settings = $display['settings'];
  $element['single_image_delta'] = array(
    '#title' => t('Image to display'),
    '#description' => t('Chose which image number to display.'),
    '#type' => 'textfield',
    '#default_value' => $settings['single_image_delta'],
    '#empty_option' => t('Random'),
    '#element_validate' => array(
      'element_validate_integer_positive',
    ),
  );
  return $element;
}

/**
 * Implements hook_field_formatter_settings_summary().
 */
function single_image_field_formatter_settings_summary($field, $instance, $view_mode) {
  $display = $instance['display'][$view_mode];
  $settings = $display['settings'];
  $summary = image_field_formatter_settings_summary($field, $instance, $view_mode);
  $summary .= '<br />' . T('Image to display: @number', array(
    '@number' => $settings['single_image_delta'],
  ));
  return $summary;
}

/**
 * Implements hook_field_formatter_view().
 */
function single_image_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();
  if ($items) {
    $delta = $display['settings']['single_image_delta'];
    $which = isset($items[$delta]) ? $delta : array_rand($items);
    $items = array(
      $items[$which],
    );
    $element = image_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display);
  }
  return $element;
}