From ddfbcdb8e5c88fccadbc4a3af95d47792815ad50 Mon Sep 17 00:00:00 2001
From: "Alan J. Pippin" <ajp@pippins.net>
Date: Wed, 17 Jun 2009 20:50:07 -0600
Subject: [PATCH] Added new allowFullScreen option for youtube videos Fixed
 dailymotion embed video parser

---
 ItemAddEmbedVideo.inc             | 26 ++++++++++++++++++++------
 templates/EmbedVideoSiteAdmin.tpl |  3 +++
 2 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/ItemAddEmbedVideo.inc b/ItemAddEmbedVideo.inc
index bbb941d..8049610 100644
--- a/ItemAddEmbedVideo.inc
+++ b/ItemAddEmbedVideo.inc
@@ -92,7 +92,8 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
 	   $watermarkAlignment = $this->getParameter($ItemAddEmbedVideo, 'watermarkAlignment', "left");
 	   $wordwrapSummary = $this->getParameter($ItemAddEmbedVideo, 'wordwrapSummary', "0");
 	   $wordwrapDescription = $this->getParameter($ItemAddEmbedVideo, 'wordwrapDescription', "0");
-
+           $allowFullScreen = $this->getParameter($ItemAddEmbedVideo, 'allowFullScreen', "false");
+	   
 	   /* Print our stored/set Parameters */
 	   if(!strcmp($debugOutput,"true")) {
 	     print "\n<hr>";
@@ -112,6 +113,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
 	     print "watermarkAlignment=$watermarkAlignment<br>\n";
 	     print "wordwrapSummary=$wordwrapSummary<br>\n";
 	     print "wordwrapDescription=$wordwrapDescription<br>\n";
+	     print "allowFullScreen=$allowFullScreen<br>\n";
 	     print "<hr>\n";
 	   }
 
@@ -287,15 +289,26 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
 		 $youtubeShowRelatedStr="&rel=0";
 	       }
 
+	       /* Determine if the video should show related videos or not based on the youtubeShowRelated parameter */
+	       $fullScreenStr="";
+	       $fullScreenParamStr1="";
+	       $fullScreenParamStr2="";
+	       if(!strcmp($allowFullScreen,"true")) {
+		 $fullScreenStr="&fs=1";
+		 $fullScreenParamStr1="<param name=\"allowFullScreen\" value=\"true\"></param>";
+		 $fullScreenParamStr2=" allowfullscreen=\"true\"";
+	       }
+
 	       /* Format the description to hold a reference to the embedded video */
 	       $description = '<object width="'.$width.'" height="'.$height.'">';
 	       $description.= '<param name="movie" ';
 	       $description.= 'value="http://www.youtube.com/v/'.$video_id.$extra_params.'"></param>';
 	       $description.= '<param name="wmode" value="transparent"></param>';
+	       $description.= $fullScreenParamStr1;
 	       $description.= '<embed src="http://www.youtube.com/v/';
-	       $description.= $video_id.$extra_params.$autoStartStr.$youtubeShowRelatedStr;
+	       $description.= $video_id.$extra_params.$autoStartStr.$youtubeShowRelatedStr.$fullScreenStr;
 	       $description.= '" type="application/x-shockwave-flash" wmode="transparent" ';
-	       $description.= 'width="'.$width.'" height="'.$height.'"></embed></object>';
+	       $description.= 'width="'.$width.'" height="'.$height.'"'.$fullScreenParamStr2.'></embed></object>';
 
 	   /*
 	    **********************************
@@ -335,12 +348,13 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
 	       }
 
 	       /* Extract the thumbnail URL from the webpage contents */
-	       preg_match('/\'(http:\/\/.*?\/ThumbnailServer2.+?)\'/i',
+	       preg_match('/\'.+?thumbnail.+?(http:\/\/.*?\/ThumbnailServer2.+?)\'/i',
 			  $contents, $matches);
 	       $thumbnail=$matches[1];
 	       $thumbnail=preg_replace("/\\\\x26/","&",$thumbnail);
 	       $thumbnail=preg_replace("/\\\\x3d/","=",$thumbnail);
-
+	       $thumbnail=urldecode($thumbnail);
+	       
 	       /* Determine what our width and height should be based on our useRemoteSize parameter */
 	       if(!strcmp($useRemoteSize,"true")) {
 		 $width = $googleWidth;
@@ -557,7 +571,7 @@ class ItemAddEmbedVideo extends ItemAddPlugin {
 	       $thumbnail=$dailymotionThumbnailUrl.$item_id;
 
 	       /* Format the description to hold a reference to the embedded video */
-	       if(preg_match('/<textarea id="video_player_embed_code_text".+?>(.+?)<\/textarea>/', $contents, $matches)) { 
+	       if(preg_match('/<.+? value="(.+?)" class=".+?" id="video_player_embed_code_text" \/>/', $contents, $matches)) { 
 		 $description=$matches[1];
 		 $description=preg_replace("/&quot;/","'",$description);
 		 $description=preg_replace("/&lt;/","<",$description);
diff --git a/templates/EmbedVideoSiteAdmin.tpl b/templates/EmbedVideoSiteAdmin.tpl
index f45ba5d..f19e2a2 100644
--- a/templates/EmbedVideoSiteAdmin.tpl
+++ b/templates/EmbedVideoSiteAdmin.tpl
@@ -130,6 +130,9 @@
     <tr class="gbEven"><td>autoStart</td><td>true/false</td>
       <td>{g->text text="specify if the embedded video players should autostart the videos or not"}</td></tr>
 
+    <tr class="gbEven"><td>allowFullScreen</td><td>true/false</td>
+      <td>{g->text text="specify if the embedded video player should be allowed to playback in full screen mode or not (youtube only)"}</td></tr>
+
     <tr class="gbOdd"><td>width</td><td>320</td>
       <td>{g->text text="specify the width dimension of the embedded video player"}</td></tr>
 
-- 
2.34.1