You are here

function upload_default_avatar_submit in Upload default avatar (user picture) 7

Submit functoin: 1. remove old image 2. move valid image to pictures destination 3. assign new image to 'user_picture_default'

_state

Parameters

$form:

1 string reference to 'upload_default_avatar_submit'
upload_default_avatar_form_user_admin_settings_alter in ./upload_default_avatar.module
Implements hook_form_BASE_FORM_ID_alter().

File

./upload_default_avatar.module, line 81
upload_default_avatar.module

Code

function upload_default_avatar_submit(&$form, &$form_state) {

  // If we have new image move it to pictures destination
  if (!empty($form_state['values']['user_picture_default_upload'])) {
    $picture = $form_state['values']['user_picture_default_upload'];

    // Force delete prev file from everywhere, I mean all image styles caches
    // Files can be with the same extension and with differ.
    if (variable_get('upload_default_avatar_fid')) {
      $prevpicture = file_load(variable_get('upload_default_avatar_fid'));
      file_usage_delete($prevpicture, 'upload_default_avatar', 'user', '0');
      file_delete($prevpicture, $force = TRUE);
    }
    if (is_numeric($picture->fid)) {

      // Save image permanently
      if (!$picture->status) {
        $info = image_get_info($picture->uri);
        $picture_directory = file_build_uri(variable_get('user_picture_path', 'pictures'));

        // Prepare the pictures directory.
        file_prepare_directory($picture_directory, FILE_CREATE_DIRECTORY);
        $destination = file_stream_wrapper_uri_normalize($picture_directory . '/picture-default.' . $info['extension']);

        // Move the temporary file into the final location.
        if ($picture = file_move($picture, $destination, FILE_EXISTS_REPLACE)) {
          $picture->filename = 'picture-default.' . $info['extension'];
          $picture->status = FILE_STATUS_PERMANENT;
          file_save($picture);
          file_usage_add($picture, 'upload_default_avatar', 'user', '0');

          // Set this image to default user picture
          variable_set('user_picture_default', $picture->uri);

          // Remember file ID
          variable_set('upload_default_avatar_fid', $picture->fid);
        }
      }
    }
  }
}