You are here

function upload_element_session_handler in Upload element 6

The core storage handler for keeping the correct state of the element in between form submissions/AHAH requests.

Parameters

string $op Operation key.:

array $form The upload_element element.:

mixed $file File object or empty string:

Return value

mixed File object or NULL depending on the $op.

1 call to upload_element_session_handler()
form_type_upload_element_value in ./upload_element.module
This is the core function that handles the uploading and workflow of the submitted files.

File

./upload_element.module, line 556
A module that provides two new elements to the FAPI for file handling.

Code

function upload_element_session_handler($op, &$form, $file = '') {
  $name = $form['#name'];
  $form_build_id = $form['#post']['form_build_id'];
  $session_files =& $_SESSION['files']['upload_element'][$form_build_id];
  switch ($op) {
    case 'revert':
      unset($session_files[$name]);
      if (is_object($session_files[$name . '_default'])) {
        $session_files[$name . '_default']->submit_action = UPLOAD_ELEMENT_NONE;
      }
      break;
    case 'value':
      $file = isset($session_files[$name]) ? $session_files[$name] : $session_files[$name . '_default'];
      return is_object($file) ? $file : '';
    case 'restore':

    // delete op only applies to default file that is stored in the session
    case 'delete':
      $submit_action = $op == 'restore' ? UPLOAD_ELEMENT_NONE : UPLOAD_ELEMENT_DELETE;
      $session_files[$name . '_default']->submit_action = $submit_action;
      unset($session_files[$name]);
      if (is_object($form['#default_value'])) {
        $form['#default_value']->submit_action = $submit_action;
      }
      break;
    case 'store':
      if (is_object($session_files[$name . '_default'])) {
        $file->submit_action = UPLOAD_ELEMENT_REPLACE;
        $file->original_fid = $session_files[$name . '_default']->fid;
      }
      else {
        $file->submit_action = UPLOAD_ELEMENT_NEW;
      }
      $session_files[$name] = $file;
      return $file;
  }
}