aboutsummaryrefslogtreecommitdiff
path: root/exif_helper/exif_helper.module
blob: e19ca5f196f7f78a91f0055c94ec95a9bc853524 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
// $Id: exif_helper.module,v 1.1.2.2 2010/03/19 22:17:00 rapsli Exp $

/**
 * @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);
}