~ubuntu-drupal-devs/ubuntu-drupal-header/7.x

« back to all changes in this revision

Viewing changes to udheader_settings.inc

  • Committer: Michael Lustfield
  • Date: 2010-11-15 19:37:07 UTC
  • Revision ID: michael@profarius.com-20101115193707-0tr2stf4e3zo06bo
Initial commit of module migration to Drupal 7.x. If it works perfect now, then no more commits. That is unlikely, however. :)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
// $Id$
 
3
 
 
4
/**
 
5
 * @file
 
6
 * Module Settings
 
7
 */
 
8
 
 
9
/**
 
10
 * Core settings function
 
11
 */
 
12
function udheader_admin_settings() {
 
13
  $tid = intval(arg(3)); // @deprecated arg()
 
14
  if ($tid > 0) {
 
15
    $edit = db_fetch_array(db_query('SELECT * FROM {udheader} WHERE tid = :tid', array(':tid' => $tid)));
 
16
    $output .= drupal_get_form('udheader_linkform', $edit, TRUE);
 
17
  }
 
18
  else {
 
19
    $output .= drupal_get_form('udheader_linkform', $edit, FALSE);
 
20
    $output .= t('<h2>Header Maps</h2>');
 
21
    $output .= udheader_view_list();
 
22
  }
 
23
  return $output;
 
24
}
 
25
 
 
26
/**
 
27
 * Build form to add/edit location links
 
28
 */
 
29
function udheader_linkform($form, &$form_state, $edit = array(), $individual = FALSE) {
 
30
  // Get available node types
 
31
  $node_types = node_type_get_names();
 
32
  $node_types['udheader_default'] .= 'Default';
 
33
 
 
34
  // Get left images
 
35
  $dir =  drupal_get_path('module', 'udheader') . "/images/left/";
 
36
  $handle = opendir($dir);
 
37
  while (false !== ($file = readdir($handle))) {
 
38
    if ($file != '.' && $file != '..') {
 
39
      $images['left'][$file] = $file;
 
40
    }
 
41
  }
 
42
  closedir($handle);
 
43
 
 
44
  // Get center images
 
45
  $dir =  drupal_get_path('module', 'udheader') . "/images/center/";
 
46
  $handle = opendir($dir);
 
47
  while (false !== ($file = readdir($handle))) {
 
48
    if ($file != '.' && $file != '..') {
 
49
      $images['center'][$file] = $file;
 
50
    }
 
51
  }
 
52
  closedir($handle);
 
53
 
 
54
  // Get right images
 
55
  $dir =  drupal_get_path('module', 'udheader') . "/images/right/";
 
56
  $handle = opendir($dir);
 
57
  while (false !== ($file = readdir($handle))) {
 
58
    if ($file != '.' && $file != '..') {
 
59
      $images['right'][$file] = $file;
 
60
    }
 
61
  }
 
62
  closedir($handle);
 
63
 
 
64
  $form = array();
 
65
 
 
66
  $c = $edit['tid'] > 0 ? FALSE : TRUE;
 
67
  $t = $edit['tid'] > 0 ? 'Edit' : 'Add';
 
68
  $form['udheader'] = array(
 
69
    '#type' => 'fieldset',
 
70
    '#title' => t($t . ' Header'),
 
71
    '#collapsible' => $c,
 
72
    '#collapsed' => $c,
 
73
    '#tree' => FALSE,
 
74
  );
 
75
  $form['udheader']['tid'] = array(
 
76
    '#type' => 'hidden',
 
77
    '#value' => $edit['tid'],
 
78
  );
 
79
  $form['udheader']['node'] = array(
 
80
    '#type' => 'select',
 
81
    '#title' => t('Node Type'),
 
82
    '#options' => $node_types,
 
83
    '#default_value' => t($edit['node']),
 
84
    '#description' => t('Select the node type which the header will be applied for.'),
 
85
  );
 
86
  $form['udheader']['left'] = array(
 
87
    '#type' => 'select',
 
88
    '#title' => t('Left Image'),
 
89
    '#options' => $images['left'],
 
90
    '#default_value' => t($edit['leftimg']),
 
91
    '#description' => t('Select the image to be used on the left side of the header.'),
 
92
  );
 
93
  $form['udheader']['center'] = array(
 
94
    '#type' => 'select',
 
95
    '#title' => t('Center Image'),
 
96
    '#options' => $images['center'],
 
97
    '#default_value' => t($edit['centerimg']),
 
98
    '#description' => t('Select the image to be used in the center of the header.'),
 
99
  );
 
100
  $form['udheader']['centertext'] = array(
 
101
    '#type' => 'textarea',
 
102
    '#title' => t('Text to be displayed in the center of the masthead'),
 
103
    '#default_value' => t($edit['centertext']),
 
104
  );
 
105
  $form['udheader']['right'] = array(
 
106
    '#type' => 'select',
 
107
    '#title' => t('Right Image'),
 
108
    '#options' => $images['right'],
 
109
    '#default_value' => t($edit['rightimg']),
 
110
    '#description' => t('Select the image to be used on the right side of the header.'),
 
111
  );
 
112
  $form['udheader']['righttext'] = array(
 
113
    '#type' => 'textarea',
 
114
    '#title' => t('Text to be displayed in the right part of the masthead'),
 
115
    '#default_value' => $edit['righttext'],
 
116
  );
 
117
  $form['udheader']['submit'] = array(
 
118
    '#type' => 'submit',
 
119
    '#value' => $edit['tid'] > 0 ? 'Update' : 'Add',
 
120
  );
 
121
 
 
122
  if ($individual) {
 
123
    $form['udheader']['delete'] = array(
 
124
      '#type' => 'submit',
 
125
      '#value' => 'Delete',
 
126
    );
 
127
  }
 
128
 
 
129
  return $form;
 
130
}
 
131
 
 
132
/**
 
133
 * Build list of existing linked locations
 
134
 */
 
135
function udheader_view_list() {
 
136
  $imgmaps = db_query('SELECT * FROM {udheader}');
 
137
  $rows = array();
 
138
  $headers = array('Node Type', 'Left Image', 'Center Image', 'Right Image', 'Edit');
 
139
 
 
140
  while ($imgmap = db_fetch_object($imgmaps)) {
 
141
    $tid = strval($imgmap->tid);
 
142
    array_push($rows, array(
 
143
      t($imgmap->node),
 
144
      t($imgmap->leftimg),
 
145
      t($imgmap->centerimg),
 
146
      t($imgmap->rightimg),
 
147
      l(t('edit'), 'admin/config/udheader/' . $tid),
 
148
    )
 
149
    );
 
150
  }
 
151
  return theme('table', array('header' => $headers, 'rows' => $rows));
 
152
}
 
153
 
 
154
/**
 
155
 * Add/Delete/Update location link to database
 
156
 */
 
157
function udheader_linkform_submit($form, &$form_state) {
 
158
 
 
159
  $form_state['redirect'] = 'admin/config/udheader';
 
160
 
 
161
  $op  = $form_state['clicked_button']['#post']['op'];
 
162
  $tid = $form_state['clicked_button']['#post']['tid'];
 
163
  $node = $form_state['clicked_button']['#post']['node'];
 
164
  $left = $form_state['clicked_button']['#post']['left'];
 
165
  $center = $form_state['clicked_button']['#post']['center'];
 
166
  $centertext = $form_state['clicked_button']['#post']['centertext'];
 
167
  $right = $form_state['clicked_button']['#post']['right'];
 
168
  $righttext = $form_state['clicked_button']['#post']['righttext'];
 
169
 
 
170
  // Update
 
171
  if ($op == 'Update') {
 
172
    // TODO Please review the conversion of this statement to the D7 database API syntax.
 
173
    /* db_query('UPDATE {udheader} SET node="%s", leftimg="%s", centerimg="%s", centertext="%s", rightimg="%s", righttext="%s" WHERE tid=%d', $node, $left, $center, $centertext, $right, $righttext, $tid) */
 
174
    $rslt = db_update('udheader')
 
175
  ->fields(array(
 
176
    'node' => $node,
 
177
    'leftimg' => $left,
 
178
    'centerimg' => $center,
 
179
    'centertext' => $centertext,
 
180
    'rightimg' => $right,
 
181
    'righttext' => $righttext,
 
182
  ))
 
183
  ->condition('tid', $tid)
 
184
  ->execute();
 
185
  }
 
186
 
 
187
  // Delete
 
188
  if ($op == 'Delete') {
 
189
    // TODO Please review the conversion of this statement to the D7 database API syntax.
 
190
    /* db_query('DELETE FROM {udheader} WHERE tid=%d', $tid) */
 
191
    $rslt = db_delete('udheader')
 
192
  ->condition('tid', $tid)
 
193
  ->execute();
 
194
  }
 
195
 
 
196
  // Add
 
197
  if ($op == 'Add') {
 
198
    // TODO Please review the conversion of this statement to the D7 database API syntax.
 
199
    /* db_query('INSERT INTO {udheader} (node, leftimg, centerimg, centertext, rightimg, righttext) VALUES ("%s", "%s", "%s", "%s", "%s", "%s")', $node, $left, $center, $centertext, $right, $righttext) */
 
200
    $rslt = $id = db_insert('udheader')
 
201
  ->fields(array(
 
202
    'node' => $node,
 
203
    'leftimg' => $left,
 
204
    'centerimg' => $center,
 
205
    'centertext' => $centertext,
 
206
    'rightimg' => $right,
 
207
    'righttext' => $righttext,
 
208
  ))
 
209
  ->execute();
 
210
  }
 
211
 
 
212
  // Check Result
 
213
  if ('1' == $rslt) {
 
214
    drupal_set_message(t('Record modification made.'));
 
215
    return TRUE;
 
216
  }
 
217
  else {
 
218
    trigger_error(t('Record modification failed.'));
 
219
    return FALSE;
 
220
  }
 
221
}