function _media_flickr_media_parse in Media: Flickr 7
Same name and namespace in other branches
- 7.2 includes/media_flickr.utilities.inc \_media_flickr_media_parse()
Flickr media parse helper function. Search the original url for valid data.
Parameters
$url: The original URL or embed code to parse.
array $options:
Return value
string The unique URI for the file, based on its stream wrapper, or NULL.
1 call to _media_flickr_media_parse()
- media_flickr_media_parse in ./
media_flickr.module - Implements hook_media_parse().
File
- includes/
media_flickr.utilities.inc, line 225 - Utility functions for Media: Flickr.
Code
function _media_flickr_media_parse($url, $options = array()) {
// The following are single images.
$patterns = array(
'@flickr\\.com/photos/([0-9A-Za-z\\@\\&\\$_-]+)/([0-9]+)/in/photostream@i',
'@flickr\\.com/photos/([0-9A-Za-z\\@\\&\\$_-]+)/([0-9]+)/in/set-([0-9]+)@i',
'@flickr\\.com/photos/([0-9A-Za-z\\@\\&\\$_-]+)/([0-9]+)/?$@i',
'@flickr\\.com/photos/([0-9A-Za-z\\@\\&\\$_-]+)/([0-9]+)/in/pool-([0-9A-Za-z\\@\\&\\$_-]+)@i',
);
foreach ($patterns as $pattern) {
preg_match($pattern, $url, $matches);
if (isset($matches[1]) && isset($matches[2])) {
return _media_flickr_build_uri(array(
'u' => $matches[1],
'p' => $matches[2],
));
}
}
// Next we look for photosets/albums.
$patterns = array(
'@flickr\\.com/photos/([0-9A-Za-z\\@\\&\\$_-]+)/sets/([0-9]+)@i',
'@flickr\\.com/photos/([0-9A-Za-z\\@\\&\\$_-]+)/albums/([0-9]+)@i',
);
foreach ($patterns as $pattern) {
preg_match($pattern, $url, $matches);
if (isset($matches[1]) && isset($matches[2])) {
return _media_flickr_build_uri(array(
'u' => $matches[1],
's' => $matches[2],
));
}
}
// Then we look for photostreams of the entire user.
$patterns = array(
'@flickr\\.com/photos/([0-9A-Za-z\\@\\&\\$_-]+)/?$@i',
'@flickr\\.com/photos/([0-9A-Za-z\\@\\&\\$_-]+)/show/?$@i',
);
foreach ($patterns as $pattern) {
preg_match($pattern, $url, $matches);
if (isset($matches[1])) {
return _media_flickr_build_uri(array(
'u' => $matches[1],
's' => 'photostream',
));
}
}
// Finally we look for searches.
$patterns = array(
'@flickr\\.com/search/?\\?q=([^& ]+)@i',
'@flickr\\.com/search/show/?\\?q=([^& ]+)@i',
);
foreach ($patterns as $pattern) {
preg_match($pattern, $url, $matches);
if (isset($matches[1])) {
return _media_flickr_build_uri(array(
'search' => $matches[1],
));
}
}
}