1 |
7e1f3b13
|
l.morris
|
<?php
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
function dwca_export_views_menu() {
|
5 |
|
|
|
6 |
|
|
$items = array();
|
7 |
|
|
|
8 |
|
|
$items['admin/config/system/views_dwca_export'] = array(
|
9 |
|
|
'title' => 'DarwinCore Archive (DwC-A) export mapping module',
|
10 |
|
|
'description' => t('Allow a use to select views for DwC-A and map terms to those views to create the metadata file meta.xml for the DwC-A archive.'),
|
11 |
|
|
'page callback' => 'drupal_get_form',
|
12 |
|
|
//'page arguments' => array('dwca_export_views_config_form'),
|
13 |
|
|
'page arguments' => array('dwca_export_views_wizard'),
|
14 |
|
|
'access arguments' => array('access DwC-A export settings'),
|
15 |
|
|
'type' => MENU_NORMAL_ITEM,
|
16 |
|
|
//'file' => 'dwca_export.admin.inc'
|
17 |
|
|
);
|
18 |
|
|
|
19 |
|
|
return $items;
|
20 |
|
|
}
|
21 |
|
|
|
22 |
|
|
/**
|
23 |
|
|
* Form function, called by drupal_get_form()
|
24 |
|
|
* in dwca_export_menu().
|
25 |
|
|
*/
|
26 |
|
|
function dwca_export_views_config_form($form, &$form_state) {
|
27 |
|
|
|
28 |
|
|
global $base_url;
|
29 |
|
|
|
30 |
|
|
$form['dwca_export_info'] = array(
|
31 |
|
|
'#markup' => '<p>Select the views to map to dwca terms.'
|
32 |
|
|
.'</p>'
|
33 |
|
|
);
|
34 |
|
|
|
35 |
|
|
$form['dwca_export_view_mapping'] = dwca_export_views_select_view_form();
|
36 |
|
|
//$form['dwca_export_view_mapping'] = views_get_all_views();
|
37 |
|
|
|
38 |
|
|
$form['#submit'][] = 'dwca_export_views_config_form_submit';
|
39 |
|
|
//lorna remove we don't want the save configuration button
|
40 |
|
|
//return system_settings_form($form);
|
41 |
|
|
return $form;
|
42 |
|
|
}
|
43 |
|
|
function dwca_export_views_select_view_form() {
|
44 |
|
|
|
45 |
|
|
$allviews = views_get_all_views();
|
46 |
|
|
|
47 |
|
|
$views = array(
|
48 |
|
|
'#type' => 'fieldset',
|
49 |
|
|
'#title' => t('DwC-A views'),
|
50 |
|
|
//'#tree' => TRUE,
|
51 |
|
|
);
|
52 |
|
|
|
53 |
|
|
foreach($allviews as $view){
|
54 |
53f41060
|
l.morris
|
// select only the views that are prefixed with dwca_export for the form
|
55 |
7e1f3b13
|
l.morris
|
if(substr($view->name, 0, 11) == 'dwca_export' && substr($view->name, 0, 23) != 'dwca_export_description'){
|
56 |
|
|
|
57 |
|
|
$dwca_filename = $view->name;
|
58 |
|
|
$views[$dwca_filename] = array(
|
59 |
|
|
//$form[$dwca_filename] = array(
|
60 |
|
|
'#type' => 'checkbox',
|
61 |
|
|
'#title' => t($dwca_filename),
|
62 |
|
|
'#description' => t('select view for ' . $dwca_filename),
|
63 |
|
|
|
64 |
|
|
);
|
65 |
|
|
|
66 |
|
|
}
|
67 |
|
|
}
|
68 |
|
|
|
69 |
|
|
$savedvariables = variable_get('VIEWS_MAP');
|
70 |
|
|
|
71 |
|
|
/*foreach ($savedvariables as $key => $value) {
|
72 |
|
|
|
73 |
|
|
echo "VALUE saved" . $value;
|
74 |
|
|
echo $savedvariables[$key];
|
75 |
|
|
print_r(t('key ') . $key . t('key ') . $value);
|
76 |
|
|
}*/
|
77 |
|
|
//$meta_string = file_get_contents('http://www.google.com/');
|
78 |
53f41060
|
l.morris
|
//drupal_set_message(t('The meta - is ') . $meta_string);
|
79 |
7e1f3b13
|
l.morris
|
//print_r($meta_string);
|
80 |
|
|
return $views;
|
81 |
|
|
}
|
82 |
|
|
|
83 |
|
|
function _dwca_export_views_steps() {
|
84 |
|
|
return array(
|
85 |
|
|
1 => array(
|
86 |
|
|
'form' => 'dwca_export_views_config_form',
|
87 |
|
|
),
|
88 |
|
|
2 => array(
|
89 |
|
|
'form' => 'dwca_export_views_fields_form',
|
90 |
|
|
),
|
91 |
|
|
);
|
92 |
|
|
}
|
93 |
|
|
/**
|
94 |
|
|
* Returns form elements for the 'location info' page of the wizard. This is the
|
95 |
|
|
* second step of the wizard. This step asks for a textfield value: a City. This
|
96 |
|
|
* step also includes a validation declared later.
|
97 |
|
|
*
|
98 |
|
|
* @ingroup form_example
|
99 |
|
|
*/
|
100 |
|
|
function dwca_export_views_fields_form($form, &$form_state) {
|
101 |
|
|
|
102 |
|
|
$form = array(
|
103 |
|
|
'#type' => 'fieldset',
|
104 |
|
|
'#title' => t('Field to DwC-A term mapping'),
|
105 |
|
|
);
|
106 |
|
|
|
107 |
06c73997
|
l.morris
|
$form['dwca_export_info'] = array(
|
108 |
|
|
'#markup' => '<p>Click on a view name below to expand the form to map field names to terms in DwC-A. </p>'
|
109 |
|
|
.'</p>'
|
110 |
|
|
);
|
111 |
|
|
|
112 |
7e1f3b13
|
l.morris
|
//TODO create an array containing the terms for the core and each extension
|
113 |
|
|
|
114 |
53f41060
|
l.morris
|
$views = _dwca_export_views_meta_xml_map();
|
115 |
7e1f3b13
|
l.morris
|
|
116 |
|
|
$count = 0;
|
117 |
|
|
$savedvariables = variable_get('VIEWS_MAP');
|
118 |
|
|
|
119 |
|
|
//lorna TODO create a collapsable form for each view
|
120 |
|
|
// A FORM OF FORMS
|
121 |
|
|
foreach ($savedvariables as $key => $value) {
|
122 |
|
|
|
123 |
|
|
//print_r(t('key') . $key . t(' value') . $value);
|
124 |
|
|
|
125 |
|
|
$view = views_get_view($value);
|
126 |
|
|
//////////////////print_r(t('key') . $key . t(' value') . $value);
|
127 |
|
|
|
128 |
|
|
$collapsed = 1;
|
129 |
|
|
if($count == 0) {
|
130 |
|
|
$collapsed = 0;
|
131 |
|
|
}
|
132 |
|
|
$form[$value] = array(
|
133 |
|
|
'#type' => 'fieldset',
|
134 |
|
|
'#title' => $value,
|
135 |
06c73997
|
l.morris
|
//'#size' => 30,
|
136 |
7e1f3b13
|
l.morris
|
//'#collapsible' => $collapsed,
|
137 |
|
|
//'#collapsed' => $collapsed,
|
138 |
|
|
//'#tree' => $collapsed,
|
139 |
06c73997
|
l.morris
|
'#collapsible' => 1,
|
140 |
|
|
'#collapsed' => 1,
|
141 |
|
|
'#tree' => 1,
|
142 |
|
|
|
143 |
7e1f3b13
|
l.morris
|
);
|
144 |
|
|
// check whether there is a view named with this value
|
145 |
|
|
//if($view) {
|
146 |
|
|
//$fields = $view->display_handler->get_field_labels();
|
147 |
|
|
$fields =$view->display['default']->display_options['fields'];
|
148 |
|
|
|
149 |
|
|
$field_index = 0;
|
150 |
|
|
foreach ($fields as $field_key => $field_label) {
|
151 |
|
|
|
152 |
|
|
//display the field_keys as the names of each text box in this form
|
153 |
53f41060
|
l.morris
|
|
154 |
06c73997
|
l.morris
|
//drupal_set_message(t('value') . $value . t('value and field_index ') . $field_index);
|
155 |
7e1f3b13
|
l.morris
|
|
156 |
|
|
$form[$value][$field_key] = array(
|
157 |
|
|
'#type' => 'textfield',
|
158 |
|
|
'#title' => $field_key,
|
159 |
|
|
'#description' => t('Enter the DwC-A term for the field - ' . $field_key),
|
160 |
06c73997
|
l.morris
|
'#default_value' => $views[$value][$field_index],
|
161 |
|
|
'#size' => 30,
|
162 |
|
|
'#collapsible' => 1,
|
163 |
|
|
'#collapsed' => 1,
|
164 |
|
|
'#tree' => 1,
|
165 |
7e1f3b13
|
l.morris
|
);
|
166 |
|
|
|
167 |
|
|
$field_index++;
|
168 |
53f41060
|
l.morris
|
}
|
169 |
|
|
}
|
170 |
|
|
$count++;
|
171 |
|
|
return $form;
|
172 |
|
|
}
|
173 |
|
|
|
174 |
|
|
function _dwca_export_views_meta_xml_update($field_term_map){
|
175 |
|
|
|
176 |
|
|
//convert the field_term_map to an array of terms. The order of the terms corresponds to the
|
177 |
|
|
//order in the meta.xml. We don't need the keys (view field names)
|
178 |
|
|
|
179 |
|
|
$term_array = array();
|
180 |
06c73997
|
l.morris
|
|
181 |
|
|
foreach ($field_term_map as $key => $value) {
|
182 |
|
|
|
183 |
fe095dd7
|
l.morris
|
$term_array[$key] = array();
|
184 |
|
|
|
185 |
|
|
//drupal_set_message(t(' THE key... ') . $key);
|
186 |
06c73997
|
l.morris
|
//if the value is an array with key names dwca_export_
|
187 |
|
|
if ( (array) $value === $value ) {
|
188 |
|
|
|
189 |
|
|
foreach ($value as $key2 => $value2) {
|
190 |
|
|
|
191 |
fe095dd7
|
l.morris
|
/////////drupal_set_message(t(' THE key2... ') . $key2);
|
192 |
06c73997
|
l.morris
|
//$term_array[] = $key;
|
193 |
fe095dd7
|
l.morris
|
//////////////////////////////////////////////$term_array[$key] = array();
|
194 |
06c73997
|
l.morris
|
if (substr($key, 0, 11) == 'dwca_export') {
|
195 |
|
|
|
196 |
|
|
$term_array[$key][] = $value2;
|
197 |
|
|
}
|
198 |
|
|
}
|
199 |
fe095dd7
|
l.morris
|
}
|
200 |
|
|
|
201 |
06c73997
|
l.morris
|
}
|
202 |
53f41060
|
l.morris
|
|
203 |
|
|
//check if the array size is the same as the number of fields in the meta.xml for either the
|
204 |
|
|
//core or the particular extension
|
205 |
|
|
|
206 |
|
|
//if the view has more fields than the default meta.xml we can add a node to the meta.xml
|
207 |
06c73997
|
l.morris
|
//TODO: Need to work this out.
|
208 |
53f41060
|
l.morris
|
|
209 |
|
|
//if the view has less fields we could either leave them blank e.g. <field index="21" term=""/>
|
210 |
|
|
//or simply remove them
|
211 |
|
|
|
212 |
|
|
$xml_file = drupal_get_path('module', 'dwca_export') . '/static/meta.xml';
|
213 |
|
|
$meta_string = simplexml_load_file($xml_file);
|
214 |
|
|
|
215 |
|
|
$meta_string->core->files->location[0] = 'classification.txt';
|
216 |
|
|
|
217 |
|
|
$core_string = $meta_string->core->files->location[0];
|
218 |
|
|
$classification_view_name = "dwca_export_" . substr($core_string, 0, -4);
|
219 |
|
|
|
220 |
06c73997
|
l.morris
|
//the first position in the dwca is always the id and this doesn't point to a term so use the empty string
|
221 |
53f41060
|
l.morris
|
$views[$classification_view_name][0] = '';
|
222 |
|
|
|
223 |
|
|
//set the core node of the meta.xml with dwca_export_classifcation values from the form
|
224 |
fe095dd7
|
l.morris
|
//currently we're relying on the order of fields in the view to correspond to the order of fields in the meta.xml
|
225 |
53f41060
|
l.morris
|
|
226 |
|
|
//in the meta.xml id index="0" fields start at index 1
|
227 |
|
|
$index = 1;
|
228 |
|
|
|
229 |
|
|
foreach($meta_string->core->field as $field)
|
230 |
|
|
{
|
231 |
|
|
$term = (string)$field[@term];
|
232 |
fe095dd7
|
l.morris
|
|
233 |
|
|
if (isset($term_array['dwca_export_classification'][$index])) {
|
234 |
|
|
$field[@term] = $term_array['dwca_export_classification'][$index];
|
235 |
|
|
}
|
236 |
|
|
|
237 |
53f41060
|
l.morris
|
$index++;
|
238 |
|
|
//$views[$classification_view_name][] = $term;
|
239 |
|
|
}
|
240 |
|
|
|
241 |
06c73997
|
l.morris
|
|
242 |
fe095dd7
|
l.morris
|
|
243 |
|
|
//only modify the extensions which have been modified in the form
|
244 |
53f41060
|
l.morris
|
foreach($meta_string->extension as $extension)
|
245 |
|
|
{
|
246 |
|
|
//echo $extension->files->location[0] . "\n";
|
247 |
fe095dd7
|
l.morris
|
$extension_string = $extension->files->location[0] . "\n";
|
248 |
53f41060
|
l.morris
|
$extension_view_name = "dwca_export_" . substr($extension_string, 0, -5);
|
249 |
|
|
//echo "The ext view name is:" . $classification_view_name . "\n";
|
250 |
fe095dd7
|
l.morris
|
//drupal_set_message(t(' THE ext view name is ') . $extension_view_name);
|
251 |
|
|
|
252 |
|
|
if ( array_key_exists($extension_view_name, $term_array)) {
|
253 |
53f41060
|
l.morris
|
$views[$extension_view_name][0] = '';
|
254 |
fe095dd7
|
l.morris
|
|
255 |
|
|
$index2 = 1;
|
256 |
|
|
|
257 |
|
|
foreach($extension->field as $field2)
|
258 |
|
|
{
|
259 |
|
|
$term = (string)$field2[@term];
|
260 |
|
|
//$views[$extension_view_name][] = $term;
|
261 |
|
|
if (isset($term_array[(string)$extension_view_name][$index2])) {
|
262 |
|
|
$field2[@term] = $term_array[(string)$extension_view_name][$index2];
|
263 |
|
|
}
|
264 |
|
|
$index2++;
|
265 |
|
|
}
|
266 |
7e1f3b13
|
l.morris
|
}
|
267 |
|
|
}
|
268 |
53f41060
|
l.morris
|
|
269 |
|
|
// Saving the whole modified XML to a new filename
|
270 |
fe095dd7
|
l.morris
|
$meta_string->asXml('updated_meta.xml');
|
271 |
06c73997
|
l.morris
|
//$meta_string->asXml($xml_file);
|
272 |
7e1f3b13
|
l.morris
|
|
273 |
fe095dd7
|
l.morris
|
//drupal_set_message(t('VALUES: <pre>@result</pre>', array('@num' => 1, '@result' => print_r($term_array, TRUE))));
|
274 |
53f41060
|
l.morris
|
}
|
275 |
|
|
|
276 |
|
|
//TODO Lorna - could we modify this method with a boolean to indicate whether we want to create the map or whether we want to modify the xml with values in the map
|
277 |
|
|
function _dwca_export_views_meta_xml_map(){
|
278 |
|
|
|
279 |
|
|
//TODO: Should we store the map in the database so we don't need to keep reading in the XML file?
|
280 |
|
|
//static $file_map;
|
281 |
|
|
//if(!isset($file_map)){
|
282 |
|
|
//$file_map = variable_get(FILE_MAP);
|
283 |
|
|
//}
|
284 |
|
|
$views = array();
|
285 |
|
|
|
286 |
|
|
//create a 2D array so that each extension or view name points to an array of terms
|
287 |
|
|
$meta_string = simplexml_load_file(drupal_get_path('module', 'dwca_export') . '/static/meta.xml');
|
288 |
|
|
//simplexml_load_string()
|
289 |
|
|
|
290 |
|
|
$core_string = $meta_string->core->files->location[0];
|
291 |
|
|
$classification_view_name = "dwca_export_" . substr($core_string, 0, -4);
|
292 |
|
|
echo $classification_view_name;
|
293 |
|
|
|
294 |
|
|
//the first postion in the dwca is always the id and this doesn't point to a term so use the empty string
|
295 |
|
|
$views[$classification_view_name][0] = '';
|
296 |
|
|
|
297 |
|
|
foreach($meta_string->core->field as $field)
|
298 |
|
|
{
|
299 |
|
|
$term = (string)$field[@term];
|
300 |
|
|
|
301 |
|
|
//$views[$classification_view_name][$term_array] = array($term);
|
302 |
|
|
$views[$classification_view_name][] = $term;
|
303 |
|
|
|
304 |
|
|
}
|
305 |
|
|
|
306 |
|
|
foreach($meta_string->extension as $extension)
|
307 |
|
|
{
|
308 |
|
|
//echo $extension->files->location[0] . "\n";
|
309 |
|
|
$extension_string = $extension->files->location[0] . "\n";
|
310 |
|
|
|
311 |
|
|
$extension_view_name = "dwca_export_" . substr($extension_string, 0, -5);
|
312 |
|
|
//echo "The ext view name is:" . $extension_view_name . "\n";
|
313 |
|
|
$views[$extension_view_name][0] = '';
|
314 |
|
|
|
315 |
|
|
foreach($extension->field as $field)
|
316 |
|
|
{
|
317 |
|
|
$term = (string)$field[@term];
|
318 |
|
|
$views[$extension_view_name][] = $term;
|
319 |
|
|
}
|
320 |
|
|
}
|
321 |
|
|
|
322 |
|
|
foreach($meta_string->children() as $child)
|
323 |
|
|
{
|
324 |
|
|
// core or extension
|
325 |
|
|
//foreach($child->children() as $child2)
|
326 |
|
|
//{
|
327 |
|
|
// core or extension
|
328 |
|
|
//echo $child2->getName() . ": " . $child2 . "<br />";
|
329 |
|
|
//}
|
330 |
|
|
|
331 |
|
|
|
332 |
|
|
}
|
333 |
|
|
//$result = $meta_string->xpath("//archive/core/files/location");
|
334 |
|
|
//foreach ($result_array as )
|
335 |
|
|
|
336 |
|
|
return $views;
|
337 |
7e1f3b13
|
l.morris
|
}
|
338 |
|
|
|
339 |
|
|
function dwca_export_views_wizard($form, &$form_state) {
|
340 |
|
|
|
341 |
|
|
// Initialize a description of the steps for the wizard.
|
342 |
|
|
if (empty($form_state['step'])) {
|
343 |
|
|
$form_state['step'] = 1;
|
344 |
|
|
|
345 |
|
|
// This array contains the function to be called at each step to get the
|
346 |
|
|
// relevant form elements. It will also store state information for each
|
347 |
|
|
// step.
|
348 |
|
|
$form_state['step_information'] = _dwca_export_views_steps();
|
349 |
|
|
}
|
350 |
|
|
$step = &$form_state['step'];
|
351 |
|
|
drupal_set_title(t('DwC-A to views mapping: Step @step', array('@step' => $step)));
|
352 |
|
|
//lorna
|
353 |
|
|
//drupal_set_message(t('Extensible Wizard: Step @step', array('@step' => $step)));
|
354 |
|
|
|
355 |
|
|
// Call the function named in $form_state['step_information'] to get the
|
356 |
|
|
// form elements to display for this step.
|
357 |
|
|
$form = $form_state['step_information'][$step]['form']($form, $form_state);
|
358 |
|
|
|
359 |
|
|
// Show the 'previous' button if appropriate. Note that #submit is set to
|
360 |
|
|
// a special submit handler, and that we use #limit_validation_errors to
|
361 |
|
|
// skip all complaints about validation when using the back button. The
|
362 |
|
|
// values entered will be discarded, but they will not be validated, which
|
363 |
|
|
// would be annoying in a "back" button.
|
364 |
|
|
if ($step > 1) {
|
365 |
|
|
$form['prev'] = array(
|
366 |
|
|
'#type' => 'submit',
|
367 |
|
|
'#value' => t('Previous'),
|
368 |
|
|
'#name' => 'prev',
|
369 |
|
|
'#submit' => array('dwca_export_views_wizard_previous_submit'),
|
370 |
|
|
'#limit_validation_errors' => array(),
|
371 |
|
|
);
|
372 |
|
|
}
|
373 |
|
|
|
374 |
|
|
// Show the Next button only if there are more steps defined.
|
375 |
|
|
if ($step < count($form_state['step_information'])) {
|
376 |
|
|
// The Next button should be included on every step
|
377 |
|
|
$form['next'] = array(
|
378 |
|
|
'#type' => 'submit',
|
379 |
|
|
'#value' => t('Next'),
|
380 |
|
|
'#name' => 'next',
|
381 |
|
|
'#submit' => array('dwca_export_views_wizard_next_submit'),
|
382 |
|
|
);
|
383 |
|
|
}
|
384 |
|
|
else {
|
385 |
|
|
// Just in case there are no more steps, we use the default submit handler
|
386 |
|
|
// of the form wizard. Call this button Finish, Submit, or whatever you
|
387 |
|
|
// want to show. When this button is clicked, the
|
388 |
|
|
// dwca_export_views_wizard_submit handler will be called.
|
389 |
|
|
$form['finish'] = array(
|
390 |
|
|
'#type' => 'submit',
|
391 |
|
|
'#value' => t('Finish'),
|
392 |
|
|
);
|
393 |
|
|
}
|
394 |
|
|
|
395 |
|
|
// Include each validation function defined for the different steps.
|
396 |
|
|
if (function_exists($form_state['step_information'][$step]['form'] . '_validate')) {
|
397 |
|
|
$form['next']['#validate'] = array($form_state['step_information'][$step]['form'] . '_validate');
|
398 |
|
|
}
|
399 |
|
|
|
400 |
|
|
return $form;
|
401 |
|
|
}
|
402 |
|
|
function dwca_export_views_wizard_next_submit($form, &$form_state) {
|
403 |
|
|
$current_step = &$form_state['step'];
|
404 |
|
|
$form_state['step_information'][$current_step]['stored_values'] = $form_state['values'];
|
405 |
|
|
|
406 |
|
|
if ($current_step < count($form_state['step_information'])) {
|
407 |
|
|
|
408 |
|
|
// lorna save the values for the first step
|
409 |
|
|
if ($current_step == 1) {
|
410 |
|
|
_dwca_export_views_step1_submit($form, &$form_state);
|
411 |
|
|
}
|
412 |
|
|
$current_step++;
|
413 |
|
|
if (!empty($form_state['step_information'][$current_step]['stored_values'])) {
|
414 |
|
|
$form_state['values'] = $form_state['step_information'][$current_step]['stored_values'];
|
415 |
|
|
|
416 |
|
|
|
417 |
|
|
}
|
418 |
|
|
else {
|
419 |
|
|
$form_state['values'] = array();
|
420 |
|
|
}
|
421 |
|
|
$form_state['rebuild'] = TRUE; // Force rebuild with next step.
|
422 |
|
|
return;
|
423 |
|
|
}
|
424 |
|
|
}
|
425 |
|
|
function dwca_export_views_wizard_previous_submit($form, &$form_state) {
|
426 |
|
|
$current_step = &$form_state['step'];
|
427 |
|
|
$form_state['step_information'][$current_step]['stored_values'] = $form_state['values'];
|
428 |
|
|
if ($current_step > 1) {
|
429 |
|
|
$current_step--;
|
430 |
|
|
$form_state['values'] = $form_state['step_information'][$current_step]['stored_values'];
|
431 |
|
|
}
|
432 |
|
|
$form_state['rebuild'] = TRUE;
|
433 |
|
|
}
|
434 |
|
|
|
435 |
|
|
|
436 |
|
|
function _dwca_export_views_step1_submit($form, &$form_state) {
|
437 |
|
|
//function dwca_export_views_wizard_submit($form, &$form_state) {
|
438 |
|
|
|
439 |
|
|
$variables = $form_state['input'];
|
440 |
|
|
$save_variables = '';
|
441 |
|
|
$views_map = variable_get('VIEWS_MAP');
|
442 |
|
|
$views_to_map = array();
|
443 |
|
|
|
444 |
|
|
foreach ($variables as $key => $value) {
|
445 |
|
|
|
446 |
|
|
if(substr($key, 0, 11) == 'dwca_export'){
|
447 |
|
|
|
448 |
|
|
if ($value == 1) {
|
449 |
|
|
$views_to_map[] = $key;
|
450 |
|
|
//drupal_set_message(t('MAPPING VALUE ') . $value);
|
451 |
|
|
}
|
452 |
|
|
|
453 |
|
|
}
|
454 |
|
|
}
|
455 |
|
|
|
456 |
|
|
//save a map of the views the user want to change in the database
|
457 |
|
|
variable_del('VIEWS_MAP');
|
458 |
|
|
variable_set('VIEWS_MAP', $views_to_map);
|
459 |
|
|
|
460 |
|
|
$savedvariables = variable_get('VIEWS_MAP');
|
461 |
|
|
|
462 |
|
|
//foreach ($variables as $key => $value) {
|
463 |
|
|
|
464 |
|
|
//echo $key . ": " . $value . "...";
|
465 |
|
|
//print_r(t('keys ') . $key . t('values ') . $value);
|
466 |
|
|
//}
|
467 |
|
|
//drupal_set_message(t('The classification view is ') . $save_variables);// . '<pre>' . print_r($form_state,true) . '</pre>');//$save_variables);
|
468 |
|
|
}
|
469 |
|
|
|
470 |
|
|
// And now comes the magic of the wizard, the function that should handle all the
|
471 |
|
|
// inputs from the user on each different step.
|
472 |
|
|
/**
|
473 |
|
|
* Wizard form submit handler.
|
474 |
|
|
* - Saves away $form_state['values']
|
475 |
|
|
* - Process all the form values.
|
476 |
|
|
*
|
477 |
|
|
* This demonstration handler just do a drupal_set_message() with the information
|
478 |
|
|
* collected on each different step of the wizard.
|
479 |
|
|
*
|
480 |
|
|
* @param $form
|
481 |
|
|
* @param $form_state
|
482 |
|
|
*
|
483 |
|
|
* @ingroup form_example
|
484 |
|
|
*/
|
485 |
|
|
function dwca_export_views_wizard_submit($form, &$form_state) {
|
486 |
|
|
$current_step = &$form_state['step'];
|
487 |
|
|
$form_state['step_information'][$current_step]['stored_values'] = $form_state['values'];
|
488 |
|
|
|
489 |
|
|
// In this case we've completed the final page of the wizard, so process the
|
490 |
|
|
// submitted information.
|
491 |
|
|
foreach ($form_state['step_information'] as $index => $value) {
|
492 |
|
|
// Remove FAPI fields included in the values (form_token, form_id and form_build_id
|
493 |
|
|
// This is not required, you may access the values using $value['stored_values']
|
494 |
|
|
// but I'm removing them to make a more clear representation of the collected
|
495 |
|
|
// information as the complete array will be passed through drupal_set_message().
|
496 |
|
|
unset($value['stored_values']['form_id']);
|
497 |
|
|
unset($value['stored_values']['form_build_id']);
|
498 |
|
|
unset($value['stored_values']['form_token']);
|
499 |
53f41060
|
l.morris
|
|
500 |
|
|
|
501 |
|
|
//drupal_set_message(t('INFO COLLECTED @result'), array('@result' => print_r($value['stored_values'], TRUE)));
|
502 |
|
|
|
503 |
7e1f3b13
|
l.morris
|
|
504 |
|
|
// Now show all the values.
|
505 |
53f41060
|
l.morris
|
if ($index == 2) {
|
506 |
|
|
_dwca_export_views_meta_xml_update($value['stored_values']);
|
507 |
|
|
//drupal_set_message(t('Step @num collected the following values: <pre>@result</pre>', array('@num' => $index, '@result' => print_r($value['stored_values'], TRUE))));
|
508 |
7e1f3b13
|
l.morris
|
}
|
509 |
|
|
}
|
510 |
53f41060
|
l.morris
|
}
|
511 |
7e1f3b13
|
l.morris
|
|
512 |
|
|
|