function ocupload_change_files_status in One Click Upload 7.2
Same name and namespace in other branches
- 7 ocupload.module \ocupload_change_files_status()
Custom form submit. Change status uploaded files to "permanent".
1 string reference to 'ocupload_change_files_status'
- ocupload_form_alter in ./
ocupload.module - Implements hook_form_alter().
File
- ./
ocupload.module, line 219
Code
function ocupload_change_files_status($form, &$form_state) {
$form_id = $form['#form_id'];
if (isset($_SESSION['ocupload'][$form_id])) {
module_load_include('inc', 'ocupload');
$fields_map = array(
'user_profile_form' => array(
'signature[value]' => 'signature',
),
);
drupal_alter('ocupload_fields_map', $fields_map, $form, $form_state);
$permanent_files = array();
foreach ($_SESSION['ocupload'][$form_id] as $field_name => $files) {
$form_state_field_name = isset($fields_map[$form_id][$field_name]) ? $fields_map[$form_id][$field_name] : $field_name;
$field_value = _ocupload_field_value_by_html_name($form_state, $form_state_field_name);
if (!$field_value) {
continue;
}
foreach ($files as $fid => $file_info) {
// Check file in text
if (strpos($field_value, $file_info['url']) !== FALSE) {
// Change file status to permanent
$file = file_load($fid);
$file->status = FILE_STATUS_PERMANENT;
file_save($file);
// Attach file to field
$file_extension = _ocupload_get_file_extension($file_info['uri']);
$template = _ocupload_get_appropriate_template($file_extension);
if ($template->field && isset($form['#entity_type']) && isset($form['#bundle']) && isset($form_state['values'][$template->field])) {
$form_state['values'][$template->field][LANGUAGE_NONE][] = array(
'fid' => $file->fid,
'display' => 0,
'_weight' => 100,
);
}
unset($_SESSION['ocupload'][$form_id][$field_name][$fid]);
$permanent_files[] = $file;
}
}
}
if ($permanent_files) {
drupal_alter('ocupload_saved_data', $permanent_files, $form, $form_state);
}
// Write unused files in log and status message
if ($_SESSION['ocupload'][$form_id]) {
$temp_files = array();
foreach ($_SESSION['ocupload'][$form_id] as $field_name => $files) {
foreach ($files as $fid => $file_info) {
if (!$file_info['noticed']) {
$temp_files[] = l($file_info['url'], $file_info['url']);
$_SESSION['ocupload'][$form_id][$field_name][$fid]['noticed'] = TRUE;
}
}
}
if ($temp_files) {
$temp_files_list = theme('item_list', array(
'items' => $temp_files,
));
drupal_set_message(t('The following files are not used in text and will be deleted: !files', array(
'!files' => $temp_files_list,
)), 'warning');
watchdog('ocupload', 'The following files are not used in text and will be deleted: !files', array(
'!files' => $temp_files_list,
), WATCHDOG_NOTICE);
}
}
_ocupload_clean_session();
}
}