X-Git-Url: http://git.pippins.net/embedvideo/.git/static/git-logo.png?a=blobdiff_plain;f=ItemAddEmbedVideo.inc;h=544c5225cd970821b8ff23a6379f983313e97ced;hb=refs%2Ftags%2F1_1_5;hp=8049610d866fd38fdeae129938dea84a40d126d0;hpb=ddfbcdb8e5c88fccadbc4a3af95d47792815ad50;p=embedvideo%2F.git diff --git a/ItemAddEmbedVideo.inc b/ItemAddEmbedVideo.inc index 8049610..544c522 100644 --- a/ItemAddEmbedVideo.inc +++ b/ItemAddEmbedVideo.inc @@ -93,6 +93,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $wordwrapSummary = $this->getParameter($ItemAddEmbedVideo, 'wordwrapSummary', "0"); $wordwrapDescription = $this->getParameter($ItemAddEmbedVideo, 'wordwrapDescription', "0"); $allowFullScreen = $this->getParameter($ItemAddEmbedVideo, 'allowFullScreen', "false"); + $centerVideo = $this->getParameter($ItemAddEmbedVideo, 'centerVideo', "false"); /* Print our stored/set Parameters */ if(!strcmp($debugOutput,"true")) { @@ -114,6 +115,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin { print "wordwrapSummary=$wordwrapSummary
\n"; print "wordwrapDescription=$wordwrapDescription
\n"; print "allowFullScreen=$allowFullScreen
\n"; + print "centerVideo=$centerVideo\n"; print "
\n"; } @@ -165,6 +167,9 @@ class ItemAddEmbedVideo extends ItemAddPlugin { /* vimeo */ $vimeoUrlPattern="vimeo.com"; + + /* animoto */ + $animotoUrlPattern="animoto.com"; /* Gallery2 specific paths and variables */ $urlGenerator =& $gallery->getUrlGenerator(); @@ -480,7 +485,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin { ********************************** * Embed a Revver Video ********************************** - * TODO: The autoStart parameter doesn't work with the yahoo video player */ } else if(preg_match("/$revverUrlPattern/",$url)) { @@ -538,7 +542,6 @@ class ItemAddEmbedVideo extends ItemAddPlugin { ********************************** * Embed a DailyMotion Video ********************************** - * TODO: The autoStart parameter doesn't work with the yahoo video player */ } else if(preg_match("/$dailymotionUrlPattern/",$url)) { @@ -828,7 +831,70 @@ class ItemAddEmbedVideo extends ItemAddPlugin { $description.= 'type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always"'; $description.= 'width="'.$width.'" height="'.$height.'">'; $description.= ''; - + + /* + ********************************** + * Embed an Animoto Video + ********************************** + */ + } else if(preg_match("/$animotoUrlPattern/",$url)) { + + /* Make sure we can extract a itemID */ + if(preg_match("/\/play\/(.+)/",$url,$matches)) { + $item_id = $matches[1]; + $item_id=preg_replace("/\/$/","",$item_id); + } else { + return array(GalleryCoreApi::error(ERROR_BAD_PARAMETER,__FILE__,__LINE__, + "Unable to extract item id from url: $url"),null,null); + } + + /* Grab the contents of the webpage used to display the video */ + 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 - $response"),NULL,NULL); + } + + /* Extract the embed video xml page from the webpage contents */ + if(preg_match('/type="text\/xml\+oembed" href="(.+?)"/', $contents, $matches)) { + $xml_url=$matches[1]; + } else { + return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, + "Unable to extract xml information from url: $url"),NULL,NULL); + } + + /* Get the xml page contents */ + list ($successfullyCopied, $contents, $response, $headers) = + GalleryCoreApi::fetchWebPage($xml_url, $extraHeaders); + if (!$successfullyCopied) { + return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, + "Unable to get video information at url: $xml_url - $response"),NULL,NULL); + } + + /* Extract the title from the webpage contents */ + preg_match('/(.+?)<\/title>/i', $contents, $matches); + $title=htmlentities($matches[1], ENT_QUOTES, "UTF-8"); + + /* Extract the thumbnail from the webpage contents */ + preg_match('/<thumbnail_url>(.+?)<\/thumbnail_url>/i', $contents, $matches); + $thumbnail=$matches[1]; + + /* Format the description to hold a reference to the embedded video */ + if(preg_match('/<html>(.+?)<\/html>/ism', $contents, $matches)) { + $description=$matches[1]; + $description=preg_replace("/"/","'",$description); + $description=preg_replace("/</","<",$description); + $description=preg_replace("/>h;/",">",$description); + $description=preg_replace("/\\\\\"/","\"",$description); + if(!strcmp($useRemoteSize,"false")) { + $description=preg_replace("/width=\"\d+\"/","width=\"".$width."\"",$description); + $description=preg_replace("/height=\"\d+\"/","height=\"".$height."\"",$description); + } + } else { + return array(GalleryCoreApi::error(ERROR_BAD_PATH,__FILE__,__LINE__, + "Unable to extract embedded video information from url: $url"),NULL,NULL); + } /* ********************************** * Embed a remote .swf file @@ -1088,6 +1154,11 @@ class ItemAddEmbedVideo extends ItemAddPlugin { /* Tack on the summary to the end of the description */ $description.= "<br>$description_summary"; + + /* Add centering tags to the description if requested */ + if(!strcmp($centerVideo,"true")) { + $description = "<center>" . $description . "</center>"; + } /* General debug output */ if(!strcmp($debugOutput,"true")) {