if (isset($form['action']['addEmbedVideoPage'])) {
$platform =& $gallery->getPlatform();
-
+
+ if (empty($extraHeaders)) {
+ $extraHeaders = array('Referer' => str_replace('&', '&', $url));
+ }
+
if(isset($form['webPage']['URL'])) {
/* Load any stored/set Parameters */
foreach ($variablesArray as $variable) {
list ($name, $value) = explode('=', $variable);
$ItemAddEmbedVideo[$type][$name] = $value;
+ /* print "type: $type name: $name value: $value <br>"; */
}
}
}
/* Store any Parameters into some simpler, shorter, local variables */
- $debugOutput = $ItemAddEmbedVideo['default']['debugOutput'];
- $useInternalFlvPlayer = $ItemAddEmbedVideo['default']['useInternalFlvPlayer'];
- $youtubeDevId = $ItemAddEmbedVideo['default']['youtubeDevId'];
- $width=$ItemAddEmbedVideo['default']['width'];
- $height=$ItemAddEmbedVideo['default']['height'];
- $externalFlvPlayer = $ItemAddEmbedVideo['default']['externalFlvPlayer'];
- $externalFlvPlayerVars = $ItemAddEmbedVideo['default']['externalFlvPlayerVars'];
- $flvThumbnail = $ItemAddEmbedVideo['default']['flvThumbnail'];
+ global $debugOutput, $useInternalFlvPlayer, $youtubeDevId;
+ global $width, $height, $externalFlvPlayer, $externalFlvPlayerVars;
+ global $flvThumbnail;
+
+ $debugOutput = $this->getParameter($ItemAddEmbedVideo, 'debugOutput');
+ $useInternalFlvPlayer = $this->getParameter($ItemAddEmbedVideo, 'useInternalFlvPlayer');
+ $youtubeDevId = $this->getParameter($ItemAddEmbedVideo, 'youtubeDevId');
+ $width = $this->getParameter($ItemAddEmbedVideo, 'width');
+ $height = $this->getParameter($ItemAddEmbedVideo, 'height');
+ $externalFlvPlayer = $this->getParameter($ItemAddEmbedVideo, 'externalFlvPlayer');
+ $externalFlvPlayerVars = $this->getParameter($ItemAddEmbedVideo, 'externalFlvPlayerVars');
+ $flvThumbnail = $this->getParameter($ItemAddEmbedVideo, 'flvThumbnail');
/* Store other string constants we'll use later */
- $youtubeUrlPattern="www.youtube.com";
+ $youtubeUrlPattern="youtube.com";
$youtubeApiUrl="http://www.youtube.com/api2_rest";
$googleUrlPattern="video.google.com";
$googlePlayer="http://video.google.com/googleplayer.swf";
$feed.= "&dev_id=$dev_id&video_id=$video_id";
/* Get the youtube xml feed as a string data source */
- $xml = $this->_getFeed($feed);
+ list ($successfullyCopied, $xml, $response, $headers) =
+ GalleryCoreApi::fetchWebPage($feed, $extraHeaders);
+ if (!$successfullyCopied) {
+ return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
+ "Unable to get video information at url: $url"),null,null);
+ }
+
- if($debugOutput) {
+ if(!strcmp($debugOutput,"true")) {
print "$xml";
}
}
/* Grab the contents of the webpage used to display the video on video.google.com */
- //$contents=file_get_contents($url);
- $contents = $this->_getFeed($url);
+ list ($successfullyCopied, $contents, $response, $headers) =
+ GalleryCoreApi::fetchWebPage($url, $extraHeaders);
+ if (!$successfullyCopied) {
+ return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
+ "Unable to get video information at url: $url"),null,null);
+ }
/* Extract the summary from the webpage contents */
preg_match('/<meta content="(.+?)\. \w+ \d+, \d+.*" name="description">/i',
* Check to make sure the URL to the remote flv file is valid
* (That the file exists at the URL given)
*/
- if (empty($extraHeaders)) {
- $extraHeaders = array('Referer' => str_replace('&', '&', $url));
- }
- list ($successfullyCopied, $response, $headers) =
- GalleryCoreApi::fetchWebPage($url, $extraHeaders);
- if (!$successfullyCopied) {
- return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__,
- "Unable to locate a video at url: $url"),null,null);
- }
+ /*
+ * TODO: How can we check if the remote file exists without actually
+ * downloading the entire file? For now, if the file doesn't exist,
+ * a gallery item is still added, and the embedded player won't play it.
+ */
/*
* Format the description to hold a reference to the embedded video
* This reference will be embedded using the G2 internal player,
* or an external player if provided by the user.
*/
- if(!$useInternalFlvPlayer) {
+ if(!strcmp($useInternalFlvPlayer,"false")) {
/*
* The user has indicated they want to use an external flv player
$tmpFile = $platform->tempnam($tmpDir, 'add');
$tmpFile.= ".jpg";
- if($debugOutput) {
+ if(!strcmp($debugOutput,"true")) {
print "thumbnail: $thumbnail <br>";
}
/* Fetch the thumbnail and save it to a local file */
- if (empty($extraHeaders)) {
- $extraHeaders = array('Referer' => str_replace('&', '&', $url));
- }
list ($successfullyCopied, $response, $headers) =
GalleryCoreApi::fetchWebFile($thumbnail, $tmpFile, $extraHeaders);
if (!$successfullyCopied) {
$fileName = preg_replace("/&#\d+;/","",$fileName);
/* General debug output */
- if($debugOutput) {
+ if(!strcmp($debugOutput,"true")) {
print "<p><a href=\"".$title."\" target=\"_blank\">";
print "<img src=\"".$thumbnail."\">\n</a>".$summary."</p>";
print "<p>$description</p>";
return array(null, $error, $status);
}
+ /**
+ * A simple function to resolve the value of a parameter from
+ * the default or override value if it exists.
+ */
+ function getParameter($params, $name) {
+ if(isset($params['override'][$name])) {
+ return($params['override'][$name]);
+ } else {
+ return($params['default'][$name]);
+ }
+ }
+
/**
* @see ItemAdd:loadTemplate
*/
return array(null, $module->translate('Embed Video'));
}
-
-
- /**
- * ItemAddEmbedVideo::_getFeed
- */
- function _getFeed($feed) {
-
- /* Open and return Feed with cURL for parsing */
- $ch = curl_init();
- $timeout = 0;
- curl_setopt ($ch, CURLOPT_URL, $feed);
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
- $xml = curl_exec($ch);
- curl_close($ch);
-
- return $xml;
- }
}
?>