You are here

exif_helper.module in Exif 6

Intention of this little module: exif.module needs to have a weight of -10 at least it has to be processed before CCK is processed, so that EXIF information can be taken from the fields and be written into the CCK fields.

Problem: We don't want to display the emty fields on node creation, since they are reserved for exif information -> we don't want to confuse users with this, so are going to make them hidden -> Information needs to be processed AFTER CCK.

Solution: Creating a new little module.

File

exif_helper/exif_helper.module
View source
<?php

/**
 * @file Intention of this little module: exif.module needs to have a weight of -10
 * at least it has to be processed before CCK is processed, so that EXIF information
 * can be taken from the fields and be written into the CCK fields.
 *
 * Problem: We don't want to display the emty fields on node creation, since they are
 * reserved for exif information -> we don't want to confuse users with this, so are
 * going to make them hidden -> Information needs to be processed AFTER CCK.
 *
 * Solution: Creating a new little module.
 */
function exif_helper_menu() {
  $items['admin/settings/exif/visibility'] = array(
    'title' => 'visibility',
    'page callback' => 'drupal_get_form',
    'page arguments' => array(
      'exif_helper_settings_form',
    ),
    'access arguments' => array(
      'administer site configuration',
    ),
    'description' => t('Some visibility settings'),
    'access callback' => 'user_access',
    'type' => MENU_LOCAL_TASK,
  );
  return $items;
}

/**
 * implementation of hook_form_alter
 * @param $form_id
 * @param $form
 */
function exif_helper_form_alter(&$form, $form_state, $form_id) {
  if ($form['#id'] != 'node-form') {
    return;
  }
  $ar_keys = array();
  foreach ($form as $key => $value) {
    $ar_keys[] = array(
      'field_name' => $key,
    );
  }
  $exif = _exif_get_class();
  $ar_exif_fields = $exif
    ->getExifFields($ar_keys);
  $node = $form['#node'];
  if ($node->nid > 0 && variable_get('exif_helper_show_on_update', 0) == 0 || !isset($node->nid) && variable_get('exif_helper_show_on_creation', 0) == 0) {
    foreach ($ar_exif_fields as $variable) {
      $form["field_" . $variable['section'] . "_" . $variable['tag']]['#type'] = 'hidden';
    }
  }
}

/**
 * Form definition for the admin of the helper module
 */
function exif_helper_settings_form() {
  $form['exif_helper'] = array(
    '#value' => t('When a user creates a node by default the CCK information will not be shown.
    This doesn\'t make any sense and would only confuse the user. The values for those fields
    is taken from the picture it-self. Nevertheless the information is visibile when you display
    the node just plain or through views or whatever. We are just talking here about the actual
    creation form'),
  );
  $form['exif_helper_show_on_creation'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show CCK Fields on Node-Creation form'),
    '#default_value' => variable_get('exif_helper_show_on_creation', 0),
  );
  $form['exif_helper_show_on_update'] = array(
    '#type' => 'checkbox',
    '#title' => t('Show CCK Fields on Node-Update form'),
    '#default_value' => variable_get('exif_helper_show_on_update', 0),
  );
  return system_settings_form($form);
}

Functions

Namesort descending Description
exif_helper_form_alter implementation of hook_form_alter
exif_helper_menu @file Intention of this little module: exif.module needs to have a weight of -10 at least it has to be processed before CCK is processed, so that EXIF information can be taken from the fields and be written into the CCK fields.
exif_helper_settings_form Form definition for the admin of the helper module