]> _ Git - fluidbook-toolbox.git/commitdiff
wip #5741 @0:20
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 16 Feb 2023 16:02:32 +0000 (17:02 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 16 Feb 2023 16:02:32 +0000 (17:02 +0100)
app/Fluidbook/Links.php

index a4bb31c9f2c83f21af93350d4b4925af7424e268..6d2d522591222dc4a107f780281353f00e4fd7f7 100644 (file)
@@ -23,6 +23,8 @@ class Links
     protected static $_testLinkCache = null;
     protected static $_linksKey = null;
 
+    protected static $_webvideoServicesMap=[0=>'youtube',1=>'dailymotion',2=>'vimeo',3=>'brightcove'];
+
     /**
      * @throws Exception
      */
@@ -64,7 +66,7 @@ class Links
         }
 
         // Links
-        self::_correctImageSpecialLinks($links);
+        self::_fixWebVideoServices($links);
         $j = 2;
         foreach ($links as $l) {
             $i = 1;
@@ -174,7 +176,7 @@ class Links
             $links = Link::encryptLinks($links);
         }
 
-        self::_correctImageSpecialLinks($links);
+        self::_fixLinks($links);
     }
 
     protected static function _UID($items)
@@ -194,6 +196,11 @@ class Links
         return Str::lower(Str::random(12));
     }
 
+    protected static function _fixLinks(&$links){
+        self::_correctImageSpecialLinks($links);
+        self::_fixWebVideoServices($links);
+    }
+
     protected static function _correctImageSpecialLinks(&$links)
     {
         foreach ($links as $k => $link) {
@@ -211,6 +218,17 @@ class Links
         }
     }
 
+    protected static function _fixWebVideoServices(&$links)
+    {
+        foreach ($links as $k => $link) {
+            if($link['type']==10){
+                if(is_numeric($link['video_service'])){
+                    $links[$k]['video_service']=self::$_webvideoServicesMap[$link['video_service']];
+                }
+            }
+        }
+    }
+
     public static function getLinksFromExcel($xls, &$links, &$rulers)
     {
         $s = $xls->setActiveSheetIndexByName('Links');
@@ -266,7 +284,7 @@ class Links
             $i++;
         }
 
-        self::_correctImageSpecialLinks($links);
+        self::_fixLinks($links);
     }
 
     public static function getLinksFromAutobookmarkText($txt, &$links, &$rulers)
@@ -301,7 +319,7 @@ class Links
                 'infobulle' => '', 'numerotation' => $numerotation, 'display_area' => '1');
         }
 
-        self::_correctImageSpecialLinks($links);
+        self::_fixLinks($links);
     }
 
     public static function saveLinksInFile($book_id, $user_id, $comments, $links, $rulers = [], $specialLinks = [], $specialRulers = [])
@@ -381,7 +399,7 @@ class Links
             $k++;
         }
 
-        self::_correctImageSpecialLinks($finalLinks);
+        self::_fixLinks($finalLinks);
 
         return ['links' => Link::encryptLinks($finalLinks), 'rulers' => array_merge(self::_getAsArray($rulers), self::_getAsArray($specialRulers))];
     }