Преглед изворни кода

Ticket #960 - Show video player in Timeline/Outline posts.

AntonLV пре 8 година
родитељ
комит
095d9efb01

+ 34 - 2
modules/boonex/videos/classes/BxVideosModule.php

@@ -71,9 +71,18 @@ class BxVideosModule extends BxBaseModTextModule
     	return $this->_serviceTemplateFunc ('entryRating', $iContentId);
     }
 
+    protected function _getContentForTimelinePost($aEvent, $aContentInfo, $aBrowseParams = array())
+    {
+        $aResult = parent::_getContentForTimelinePost($aEvent, $aContentInfo, $aBrowseParams);
+
+        if(!empty($aResult['videos']) && is_array($aResult['videos']))
+            $aResult['images'] = array();
+
+        return $aResult;
+    }
     protected function _getImagesForTimelinePost($aEvent, $aContentInfo, $sUrl, $aBrowseParams = array())
     {
-        list($sImageThumb, $sImageGallery) = $this->_oTemplate->getUnitImages($aContentInfo);
+        list($sImageThumb, $sImageGallery, $sImageCover) = $this->_oTemplate->getUnitImages($aContentInfo);
         if(empty($sImageGallery) && !empty($sImageThumb))
             $sImageGallery = $sImageThumb;
 
@@ -81,7 +90,30 @@ class BxVideosModule extends BxBaseModTextModule
             return array();
 
         return array(
-            array('url' => $sUrl, 'src' => $sImageGallery),
+            array('url' => $sUrl, 'src' => $sImageGallery, 'src_orig' => $sImageCover),
+        );
+    }
+
+    protected function _getVideosForTimelinePost($aEvent, $aContentInfo, $sUrl, $aBrowseParams = array())
+    {
+        $CNF = &$this->_oConfig->CNF;
+
+        if(empty($CNF['OBJECT_STORAGE_VIDEOS']) || empty($CNF['OBJECT_VIDEOS_TRANSCODERS']))
+            return array();
+
+        $iFile = (int)$aContentInfo[$CNF['FIELD_VIDEO']];
+        $aFile = BxDolStorage::getObjectInstance($CNF['OBJECT_STORAGE_VIDEOS'])->getFile($iFile);
+        if(empty($aFile) || !is_array($aFile) || strncmp('video/', $aFile['mime_type'], 6) !== 0)
+            return array();
+
+        $aTcvPoster = BxDolTranscoder::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['poster']);
+        $aTcvMp4 = BxDolTranscoder::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['mp4']);
+        $aTcvWebm = BxDolTranscoder::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['webm']);
+        if(!$aTcvPoster || !$aTcvMp4 || !$aTcvWebm)
+            return array();
+
+        return array(
+            array('src_poster' => $aTcvPoster->getFileUrl($iFile), 'src_mp4' => $aTcvMp4->getFileUrl($iFile), 'src_webm' => $aTcvWebm->getFileUrl($iFile))
         );
     }
 }

+ 21 - 7
modules/boonex/videos/classes/BxVideosTemplate.php

@@ -32,9 +32,9 @@ class BxVideosTemplate extends BxBaseModTextTemplate
         $aTranscodersVideo = false;
         if($CNF['OBJECT_VIDEOS_TRANSCODERS'])
             $aTranscodersVideo = array (
-                'poster' => BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['poster']),
-                'mp4' => BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['mp4']),
-                'webm' => BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['webm']),
+                'poster' => BxDolTranscoder::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['poster']),
+                'mp4' => BxDolTranscoder::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['mp4']),
+                'webm' => BxDolTranscoder::getObjectInstance($CNF['OBJECT_VIDEOS_TRANSCODERS']['webm']),
             );
 
         $iFile = (int)$aContentInfo[$CNF['FIELD_VIDEO']];
@@ -79,7 +79,21 @@ class BxVideosTemplate extends BxBaseModTextTemplate
 
     public function getUnitImages ($aData)
     {
-        return $this->getUnitThumbAndGallery ($aData);
+        $CNF = &$this->getModule()->_oConfig->CNF;
+
+        list($sImageThumb, $sImageGallery) = $this->getUnitThumbAndGallery ($aData);
+        if(empty($sImageThumb) && empty($sImageGallery))
+            return array($sImageThumb, $sImageGallery);
+
+        $sImageCover = $this->_getUnitImage($CNF['FIELD_THUMB'], $CNF['OBJECT_IMAGES_TRANSCODER_COVER'], $aData);
+        if(!empty($sImageCover))
+            return array($sImageThumb, $sImageGallery, $sImageCover);
+
+        $sImageCover = $this->_getUnitImage($CNF['FIELD_VIDEO'], $CNF['OBJECT_VIDEOS_TRANSCODERS']['poster'], $aData);
+        if(!empty($sImageCover))
+            return array($sImageThumb, $sImageGallery, $sImageCover);
+
+        return array($sImageThumb, $sImageGallery, '');
     }
 
     /**
@@ -89,18 +103,18 @@ class BxVideosTemplate extends BxBaseModTextTemplate
     {
         $CNF = &$this->getModule()->_oConfig->CNF;
 
-        $sImage = $this->_getUnitThumbAndGallery($CNF['FIELD_THUMB'], $CNF['OBJECT_IMAGES_TRANSCODER_GALLERY'], $aData);
+        $sImage = $this->_getUnitImage($CNF['FIELD_THUMB'], $CNF['OBJECT_IMAGES_TRANSCODER_GALLERY'], $aData);
         if(!empty($sImage))
             return array($sImage, $sImage);
 
-        $sImage = $this->_getUnitThumbAndGallery($CNF['FIELD_VIDEO'], $CNF['OBJECT_VIDEOS_TRANSCODERS']['poster_gallery'], $aData);
+        $sImage = $this->_getUnitImage($CNF['FIELD_VIDEO'], $CNF['OBJECT_VIDEOS_TRANSCODERS']['poster_gallery'], $aData);
         if(!empty($sImage))
             return array($sImage, $sImage);
 
         return array('', '');
     }
     
-    protected function _getUnitThumbAndGallery ($sField, $sTranscoder, &$aData)
+    protected function _getUnitImage ($sField, $sTranscoder, &$aData)
     {
         $CNF = &$this->getModule()->_oConfig->CNF;