View source
<?php
define('MEDIA_FLICKR_RESTPOINT', 'https://api.flickr.com/services/rest/');
define('MEDIA_FLICKR_API_APPLICATION_URL', 'https://www.flickr.com/services/api/keys');
require_once dirname(__FILE__) . '/includes/media_flickr.formatters.inc';
function media_flickr_media_internet_providers() {
return array(
'MediaInternetFlickrHandler' => array(
'title' => t('Flickr'),
),
);
}
function media_flickr_stream_wrappers() {
return array(
'flickr' => array(
'name' => t('Flickr photos'),
'class' => 'MediaFlickrStreamWrapper',
'description' => t('Remote images hosted on the Flickr photo-sharing website.'),
'type' => STREAM_WRAPPERS_READ_VISIBLE,
),
);
}
function media_flickr_permission() {
return array(
'configure flickr' => array(
'title' => t('Configure Media: Flickr settings'),
),
);
}
function media_flickr_menu() {
$items = array();
$items['admin/config/media/media-flickr'] = array(
'title' => 'Flickr settings',
'description' => 'Configuration settings for Media: Flickr.',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'media_flickr_settings_form',
),
'access arguments' => array(
'configure flickr',
),
'file' => 'includes/media_flickr.admin.inc',
);
return $items;
}
function media_flickr_help($path, $arg) {
if ($path === 'admin/config/media/media-flickr') {
return '<p>' . t('In order to add and display images from Flickr you first need to apply for an API Developer Key from the <a href="@flickr" target="_blank">Flickr Developer Profile page</a>.', array(
'@flickr' => MEDIA_FLICKR_API_APPLICATION_URL,
)) . '</p>';
}
return '';
}
function media_flickr_theme($existing, $type, $theme, $path) {
return array(
'media_flickr_preview_style' => array(
'variables' => array(
'field_type' => NULL,
'container_name' => NULL,
'style_name' => NULL,
),
'file' => 'media_flickr.theme.inc',
'path' => $path . '/themes',
),
'media_flickr_field_formatter_styles' => array(
'variables' => array(
'element' => NULL,
'style' => NULL,
),
'file' => 'media_flickr.theme.inc',
'path' => $path . '/themes',
),
'media_flickr_embed' => array(
'variables' => array(
'style_name' => NULL,
'uri' => NULL,
'alt' => NULL,
'title' => NULL,
),
'file' => 'media_flickr.theme.inc',
'path' => $path . '/themes',
),
'media_flickr_styles' => array(
'variables' => array(
'element' => NULL,
'style' => NULL,
),
'file' => 'media_flickr.theme.inc',
'path' => $path . '/themes',
),
'media_flickr_photoset' => array(
'variables' => array(
'uri' => NULL,
'width' => NULL,
'height' => NULL,
),
'file' => 'media_flickr.theme.inc',
'path' => $path . '/themes',
'template' => 'media-flickr-photoset',
),
);
}
function media_flickr_media_parse($url) {
module_load_include('inc', 'media_flickr', 'includes/media_flickr.utilities');
return _media_flickr_media_parse($url);
}
function media_flickr_file_mimetype_mapping_alter(&$mapping) {
$mapping['mimetypes'][] = 'image/flickr';
}
function media_flickr_formatter_filter($variables) {
if (!isset($variables['object'])) {
return FALSE;
}
$object = $variables['object'];
return file_uri_scheme($object->uri) === 'flickr';
}
function media_flickr_image_url($photo_code, $width = 0, $height = 0, $refresh = FALSE) {
module_load_include('inc', 'media_flickr', 'includes/media_flickr.utilities');
return _media_flickr_photo_url($photo_code, $width, $height, $refresh);
}
function media_flickr_photoset_photo_id($uri, $refresh = FALSE) {
module_load_include('inc', 'media_flickr', 'includes/media_flickr.utilities');
return _media_flickr_photoset_photo_id($uri, $refresh);
}
function media_flickr_photoset_image_url($uri, $width = 0, $height = 0, $refresh = FALSE) {
module_load_include('inc', 'media_flickr', 'includes/media_flickr.utilities');
return _media_flickr_photoset_image_url($uri, $width, $height, $refresh);
}
function media_flickr_original_url($uri, $refresh = FALSE) {
module_load_include('inc', 'media_flickr', 'includes/media_flickr.utilities');
return _media_flickr_original_url($uri, $refresh);
}