You are here

function MediaVimeoStreamWrapper::getLocalThumbnailPath in Media: Vimeo 7.2

Same name and namespace in other branches
  1. 7 includes/MediaVimeoStreamWrapper.inc \MediaVimeoStreamWrapper::getLocalThumbnailPath()

File

includes/MediaVimeoStreamWrapper.inc, line 41
Extends the MediaReadOnlyStreamWrapper class to handle Vimeo videos.

Class

MediaVimeoStreamWrapper
Create an instance like this: $vimeo = new MediaVimeoStreamWrapper('vimeo://v/[video-code]');

Code

function getLocalThumbnailPath() {
  $parts = $this
    ->get_parameters();
  $local_path = file_default_scheme() . '://media-vimeo/' . check_plain($parts['v']) . '.jpg';
  if (!file_exists($local_path)) {

    // getOriginalThumbnailPath throws an exception if there are any errors
    // when retrieving the original thumbnail from Vimeo.
    try {
      $dirname = drupal_dirname($local_path);
      file_prepare_directory($dirname, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
      $response = drupal_http_request($this
        ->getOriginalThumbnailPath());
      if (!isset($response->error)) {
        file_unmanaged_save_data($response->data, $local_path, TRUE);
      }
      else {
        @copy($this
          ->getOriginalThumbnailPath(), $local_path);
      }
    } catch (Exception $e) {

      // In the event of an endpoint error, use the mime type icon provided
      // by the Media module.
      $file = file_uri_to_object($this->uri);
      $icon_dir = variable_get('media_icon_base_directory', 'public://media-icons') . '/' . variable_get('media_icon_set', 'default');
      $local_path = file_icon_path($file, $icon_dir);
    }
  }
  return $local_path;
}