function tripal_bulk_loader_modify_template_base_form_submit
2.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_modify_template_base_form_submit($form, &$form_state) |
3.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_modify_template_base_form_submit($form, &$form_state) |
1.x tripal_bulk_loader.admin.templates.inc | tripal_bulk_loader_modify_template_base_form_submit($form, &$form_state) |
Submit for tripal_bulk_loader_modify_template_base_form
Related topics
File
- tripal_bulk_loader/
includes/ tripal_bulk_loader.admin.templates.inc, line 481 - All functions in this file pertain to administrative management of bulk loader templates
Code
function tripal_bulk_loader_modify_template_base_form_submit($form, &$form_state) {
$save = TRUE;
$form_state['rebuild'] = TRUE;
if ($form_state['storage']['template_id']) {
$sql = "SELECT * FROM {tripal_bulk_loader_template} WHERE template_id=:template";
$result = db_query($sql, array(':template' => $form_state['storage']['template_id']))->fetchObject();
$form_state['storage']['template'] = unserialize($result->template_array);
}
$op = $form_state['values'][$form_state['clicked_button']['#name']];
// part of fix for 1st button set not working on records list (edit record, duplicate record, add field)
if ($form_state['clicked_button']['#name'] === 'zero') {
$form_state['clicked_button']['#name'] = '0';
}
switch ($op) {
// Initialize after template is chosen ----------------------------------------
case 'Edit Template':
$form_state['storage']['template_id'] = $form_state['values']['template_id'];
$sql = "SELECT * FROM {tripal_bulk_loader_template} WHERE template_id=:template";
$result = db_query($sql, array(':template' => $form_state['storage']['template_id']))->fetchObject();
$form_state['storage']['template'] = unserialize($result->template_array);
$form_state['storage']['template_name'] = $result->name;
// rebuild the record2priority for the $form_state['storage'] array
$form_state['storage']['record2priority'] = array();
foreach ($form_state['storage']['template'] as $priority => $record_array) {
if (!is_array($record_array)) {
continue;
}
$form_state['storage']['record2priority'][$record_array['record_id']] = $priority;
}
$form_state['rebuild'] = FALSE;
$form_state['redirect'] = 'admin/tripal/loaders/bulk/template/' . $form_state['storage']['template_id'] . '/edit';
break;
case 'Create Template':
$record = array(
'name' => $form_state['values']['new_template_name'],
'template_array' => serialize(array()),
'created' => time(),
'changed' => time()
);
$result = drupal_write_record('tripal_bulk_loader_template', $record);
$form_state['storage']['template_id'] = $record['template_id'];
$form_state['storage']['template_name'] = $record['name'];
$form_state['storage']['template'] = array();
$form_state['rebuild'] = FALSE;
$form_state['redirect'] = 'admin/tripal/loaders/bulk/template/' . $record['template_id'] . '/edit';
break;
// Save Reordered Records -----------------------------------------------------
case 'Save Order':
$new_template = $form_state['storage']['template'];
// unset old elements
$form_state['storage']['record2priority'] = array();
foreach ($new_template as $priority => $record_array) {
if (preg_match('/\d+/', $priority)) {
unset($new_template[$priority]);
}
}
//set elements in new order
foreach ($form_state['values']['records-data'] as $item) {
$new_template[$item['new_priority']] = $form_state['storage']['template'][$item['old_priority']];
$record_name = $new_template[$item['new_priority']]['record_id'];
$form_state['storage']['record2priority'][$record_name] = $item['new_priority'];
}
ksort($new_template);
$form_state['storage']['template'] = $new_template;
break;
case 'New Record/Field':
$template_id = $form_state['storage']['template_id'] ? $form_state['storage']['template_id'] : 'O';
$form_state['rebuild'] = FALSE;
$form_state['redirect'] = "admin/tripal/loaders/bulk/template/$template_id/add_record";
$save = FALSE;
break;
} //end of switch
// Save Template
if ($save) {
$record = array(
'template_id' => $form_state['storage']['template_id'],
'template_array' => serialize($form_state['storage']['template']),
'changed' => time()
);
drupal_write_record('tripal_bulk_loader_template', $record, array('template_id'));
drupal_set_message(t('Template Saved.'));
}
}