You are here

function hybridauth_url_managed_file in HybridAuth Social Login 7.2

Rules action.

File

./hybridauth.rules.inc, line 87
Functions for integrating the HybridAuth module with Rules.

Code

function hybridauth_url_managed_file($url, $directory) {
  if (valid_url($url, TRUE)) {
    $url_info = parse_url($url);

    // Prepare directory.
    $directory = file_default_scheme() . '://' . $directory . '/' . $url_info['host'] . dirname($url_info['path']);
    if (!file_prepare_directory($directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS)) {
      watchdog('hybridauth', 'Error accessing directory %directory.', array(
        '%directory' => $directory,
      ), WATCHDOG_ERROR);
      return array(
        'file' => '',
      );
    }

    // Make a request.
    $content = drupal_http_request($url);
    if (isset($content->error)) {
      watchdog('hybridauth', 'Error while executing drupal_http_request() to %url: %error.', array(
        '%url' => $url,
        '%error' => $content->error,
      ), WATCHDOG_ERROR);
      return array(
        'file' => '',
      );
    }
    else {
      if ($file = file_save_data($content->data, $directory . '/' . basename($url_info['path']), FILE_EXISTS_REPLACE)) {
        $path_info = pathinfo($url);
        if (empty($path_info['extension'])) {
          $info = image_get_info($file->uri);
          $file = file_move($file, $directory . '/' . basename($url_info['path']) . '.' . $info['extension'], FILE_EXISTS_REPLACE);
        }
        return array(
          'file' => $file,
        );
      }
      else {
        watchdog('hybridauth', 'Failed to save file %file.', array(
          '%file' => basename($url_info['path']),
        ), WATCHDOG_ERROR);
      }
    }
  }
  else {
    watchdog('hybridauth', 'Not valid url %url', array(
      '%url' => $url,
    ), WATCHDOG_ERROR);
  }
  return array(
    'file' => '',
  );
}