Przeglądaj źródła

Merge branch 'master' of https://github.com/unaio/una

roman.lesnikov@gmail.com 3 lat temu
rodzic
commit
0a5faf27d4

+ 1 - 0
.gitignore

@@ -5,6 +5,7 @@ cache_public/*
 tmp/*
 logs/*
 plugins/*
+node_modules/*
 
 # Exclude main config file
 inc/header*

+ 28 - 17
modules/base/general/classes/BxBaseModGeneralModule.php

@@ -3384,29 +3384,40 @@ class BxBaseModGeneralModule extends BxDolModule
     protected function _getImagesForTimelinePost($aEvent, $aContentInfo, $sUrl, $aBrowseParams = array())
     {
         $CNF = &$this->_oConfig->CNF;
-
-        $sImage = $sImageOrig = '';
-        if(isset($CNF['FIELD_COVER']) && isset($aContentInfo[$CNF['FIELD_COVER']]) && $aContentInfo[$CNF['FIELD_COVER']]) {
-            $sImage = $this->_oConfig->getImageUrl($aContentInfo[$CNF['FIELD_COVER']], array('OBJECT_IMAGES_TRANSCODER_GALLERY', 'OBJECT_IMAGES_TRANSCODER_THUMB'));
-            $sImageOrig = $this->_oConfig->getImageUrl($aContentInfo[$CNF['FIELD_COVER']], array('OBJECT_IMAGES_TRANSCODER_COVER'));
+        
+        $iImageId = 0;
+        $sImageSm = $sImageMd = $sImageXl = '';
+        if(isset($CNF['FIELD_COVER']) && !empty($aContentInfo[$CNF['FIELD_COVER']])) {
+            $iImageId = (int)$aContentInfo[$CNF['FIELD_COVER']];
+            $sImageSm = $this->_oConfig->getImageUrl($iImageId, ['OBJECT_IMAGES_TRANSCODER_MINIATURE', 'OBJECT_IMAGES_TRANSCODER_THUMB']);
+            $sImageMd = $this->_oConfig->getImageUrl($iImageId, ['OBJECT_IMAGES_TRANSCODER_GALLERY', 'OBJECT_IMAGES_TRANSCODER_THUMB']);
+            $sImageXl = $this->_oConfig->getImageUrl($iImageId, ['OBJECT_IMAGES_TRANSCODER_COVER']);
         }
 
-        $bImageThumb = isset($CNF['FIELD_THUMB']) && isset($aContentInfo[$CNF['FIELD_THUMB']]) && $aContentInfo[$CNF['FIELD_THUMB']];
-        if($sImage == '' && $bImageThumb)
-            $sImage = $this->_oConfig->getImageUrl($aContentInfo[$CNF['FIELD_THUMB']], array('OBJECT_IMAGES_TRANSCODER_GALLERY', 'OBJECT_IMAGES_TRANSCODER_THUMB'));
+        if($sImageMd == '' && isset($CNF['FIELD_THUMB']) && !empty($aContentInfo[$CNF['FIELD_THUMB']])) {
+            $iImageId = (int)$aContentInfo[$CNF['FIELD_THUMB']];
+            $sImageSm = $this->_oConfig->getImageUrl($iImageId, ['OBJECT_IMAGES_TRANSCODER_MINIATURE', 'OBJECT_IMAGES_TRANSCODER_THUMB']);
+            $sImageMd = $this->_oConfig->getImageUrl($iImageId, ['OBJECT_IMAGES_TRANSCODER_GALLERY', 'OBJECT_IMAGES_TRANSCODER_THUMB']);
+            $sImageXl = $this->_oConfig->getImageUrl($iImageId, ['OBJECT_IMAGES_TRANSCODER_COVER']);
+        }
 
-        if($sImageOrig == '' && $bImageThumb)
-            $sImageOrig = $this->_oConfig->getImageUrl($aContentInfo[$CNF['FIELD_THUMB']], array('OBJECT_IMAGES_TRANSCODER_COVER'));
+        if(empty($sImageMd))
+            return [];
 
-        if(empty($sImage))
-            return array();
+        if($sImageSm == '')
+            $sImageSm = $sImageMd;
 
-        if($sImageOrig == '')
-            $sImageOrig = $sImage;
+        if($sImageXl == '')
+            $sImageXl = $sImageMd;
 
-        return array(
-            array('id' => $aContentInfo[$CNF['FIELD_THUMB']], 'url' => $sUrl, 'src' => $sImage, 'src_orig' => $sImageOrig),
-        );
+        return [[
+            'id' => $iImageId, 
+            'url' => $sUrl, 
+            'src' => $sImageMd, 
+            'src_small' => $sImageSm, 
+            'src_medium' => $sImageMd, 
+            'src_orig' => $sImageXl
+        ]];
     }
 
     protected function _getImagesForTimelinePostAttach($aEvent, $aContentInfo, $sUrl, $aBrowseParams = array())

+ 27 - 10
modules/base/text/classes/BxBaseModTextModule.php

@@ -909,21 +909,38 @@ class BxBaseModTextModule extends BxBaseModGeneralModule implements iBxDolConten
 
         $aGhostFiles = $oStorage->getGhosts($this->serviceGetContentOwnerProfileId($iContentId), $iContentId);
         if(!$aGhostFiles)
-            return array();
+            return [];
 
-        $oTranscoder = BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_GALLERY_PHOTOS']);
+        $oTranscoderSm = false;
+        if(!empty($CNF['OBJECT_IMAGES_TRANSCODER_MINIATURE_PHOTOS']))
+            $oTranscoderSm = BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_MINIATURE_PHOTOS']);
 
-        foreach ($aGhostFiles as $k => $a) {
-            $sPhotoSrc = $oTranscoder->getFileUrl($a['id']);
-            if(empty($sPhotoSrc))
+        $oTranscoderMd = BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_GALLERY_PHOTOS']);
+
+        $oTranscoderXl = false;
+        if(!empty($CNF['OBJECT_IMAGES_TRANSCODER_VIEW_PHOTOS']))
+            $oTranscoderXl = BxDolTranscoderImage::getObjectInstance($CNF['OBJECT_IMAGES_TRANSCODER_VIEW_PHOTOS']);
+
+        foreach($aGhostFiles as $k => $a) {
+            $sPhotoSrcMd = $oTranscoderMd->getFileUrl($a['id']);
+            if(empty($sPhotoSrcMd))
                 continue;
 
-            $aResults[] = array(
+            $sPhotoSrcSm = $oTranscoderSm !== false ? $oTranscoderSm->getFileUrl($a['id']) : '';
+            if(!$sPhotoSrcSm)
+                $sPhotoSrcSm = $sPhotoSrcMd;
+
+            $sPhotoSrcXl = $oTranscoderXl !== false ? $oTranscoderXl->getFileUrl($a['id']) : $oStorage->getFileUrlById($a['id']);
+            if(!$sPhotoSrcXl)
+                $sPhotoSrcXl = $sPhotoSrcMd;
+
+            $aResults[] = [
                 'id' => $a['id'],
-                'src' => $sPhotoSrc,
-                'src_medium' => $sPhotoSrc,
-                'src_orig' => $oStorage->getFileUrlById($a['id']),
-            );
+                'src' => $sPhotoSrcMd,
+                'src_small' => $sPhotoSrcSm,
+                'src_medium' => $sPhotoSrcMd,
+                'src_orig' => $sPhotoSrcXl,
+            ];
         }
         return $aResults;
     }

+ 2 - 0
modules/boonex/forum/classes/BxForumConfig.php

@@ -127,11 +127,13 @@ class BxForumConfig extends BxBaseModTextConfig
             'OBJECT_STORAGE_VIDEOS' => 'bx_forum_videos',
             'OBJECT_STORAGE_CMTS' => 'bx_forum_files_cmts', // for comments
             'OBJECT_IMAGES_TRANSCODER_PREVIEW' => 'bx_forum_preview',
+            'OBJECT_IMAGES_TRANSCODER_MINIATURE' => 'bx_forum_miniature',
             'OBJECT_IMAGES_TRANSCODER_GALLERY' => 'bx_forum_gallery',
             'OBJECT_IMAGES_TRANSCODER_COVER' => 'bx_forum_cover',
             'OBJECT_IMAGES_TRANSCODER_PREVIEW_FILES' => 'bx_forum_preview_files',
             'OBJECT_IMAGES_TRANSCODER_GALLERY_FILES' => 'bx_forum_gallery_files',
             'OBJECT_IMAGES_TRANSCODER_PREVIEW_PHOTOS' => 'bx_forum_preview_photos',
+            'OBJECT_IMAGES_TRANSCODER_MINIATURE_PHOTOS' => 'bx_forum_miniature_photos',
             'OBJECT_IMAGES_TRANSCODER_GALLERY_PHOTOS' => 'bx_forum_gallery_photos',
             'OBJECT_IMAGES_TRANSCODER_VIEW_PHOTOS' => 'bx_forum_view_photos',
             'OBJECT_IMAGES_TRANSCODER_PREVIEW_CMTS' => 'bx_forum_preview_cmts', // for comments

+ 5 - 3
modules/boonex/forum/install/config.php

@@ -68,10 +68,12 @@ $aConfig = array(
      */
     'transcoders' => array(
         'bx_forum_preview',
+        'bx_forum_miniature', 
         'bx_forum_gallery',
         'bx_forum_cover',
-        
+
         'bx_forum_preview_photos',
+        'bx_forum_miniature_photos', 
         'bx_forum_gallery_photos',
         'bx_forum_view_photos',
 
@@ -79,10 +81,10 @@ $aConfig = array(
         'bx_forum_videos_poster_preview',
         'bx_forum_videos_mp4',
         'bx_forum_videos_mp4_hd',
-        
+
         'bx_forum_preview_files',
         'bx_forum_gallery_files',
-        
+
         'bx_forum_preview_cmts',
     ),
 

+ 5 - 1
modules/boonex/forum/install/sql/install.sql

@@ -418,10 +418,12 @@ INSERT INTO `sys_objects_storage` (`object`, `engine`, `params`, `token_life`, `
 
 INSERT INTO `sys_objects_transcoder` (`object`, `storage_object`, `source_type`, `source_params`, `private`, `atime_tracking`, `atime_pruning`, `ts`, `override_class_name`, `override_class_file`) VALUES 
 ('bx_forum_preview', 'bx_forum_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_forum_covers";}', 'no', '1', '2592000', '0', '', ''),
+('bx_forum_miniature', 'bx_forum_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_forum_covers";}', 'no', '1', '2592000', '0', '', ''),
 ('bx_forum_gallery', 'bx_forum_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_forum_covers";}', 'no', '1', '2592000', '0', '', ''),
 ('bx_forum_cover', 'bx_forum_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_forum_covers";}', 'no', '1', '2592000', '0', '', ''),
 
 ('bx_forum_preview_photos', 'bx_forum_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_forum_photos";}', 'no', '1', '2592000', '0', '', ''),
+('bx_forum_miniature_photos', 'bx_forum_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_forum_photos";}', 'no', '1', '2592000', '0', '', ''),
 ('bx_forum_gallery_photos', 'bx_forum_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_forum_photos";}', 'no', '1', '2592000', '0', '', ''),
 ('bx_forum_view_photos', 'bx_forum_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_forum_photos";}', 'no', '1', '2592000', '0', '', ''),
 
@@ -438,11 +440,13 @@ INSERT INTO `sys_objects_transcoder` (`object`, `storage_object`, `source_type`,
 
 INSERT INTO `sys_transcoder_filters` (`transcoder_object`, `filter`, `filter_params`, `order`) VALUES 
 ('bx_forum_preview', 'Resize', 'a:3:{s:1:"w";s:3:"300";s:1:"h";s:3:"200";s:11:"crop_resize";s:1:"1";}', '0'),
+('bx_forum_miniature', 'Resize', 'a:1:{s:1:"w";s:3:"300";}', '0'),
 ('bx_forum_gallery', 'Resize', 'a:1:{s:1:"w";s:3:"500";}', '0'),
 ('bx_forum_cover', 'Resize', 'a:1:{s:1:"w";s:4:"2000";}', '0'),
 
 ('bx_forum_preview_photos', 'Resize', 'a:3:{s:1:"w";s:3:"300";s:1:"h";s:3:"200";s:11:"crop_resize";s:1:"1";}', '0'),
-('bx_forum_gallery_photos', 'Resize', 'a:1:{s:1:"w";s:4:"2000";}', '0'),
+('bx_forum_miniature_photos', 'Resize', 'a:4:{s:1:"w";s:3:"300";s:1:"h";s:3:"300";s:13:"square_resize";s:1:"1";s:10:"force_type";s:3:"jpg";}', '0'),
+('bx_forum_gallery_photos', 'Resize', 'a:4:{s:1:"w";s:3:"600";s:1:"h";s:3:"600";s:13:"square_resize";s:1:"1";s:10:"force_type";s:3:"jpg";}', '0'),
 ('bx_forum_view_photos', 'Resize',  'a:2:{s:1:"w";s:4:"2000";s:1:"h";s:4:"2000";}', '0'),
 
 ('bx_forum_videos_poster_preview', 'Resize', 'a:3:{s:1:"w";s:3:"300";s:1:"h";s:3:"200";s:13:"square_resize";s:1:"1";}', 10),

+ 2 - 0
modules/boonex/posts/classes/BxPostsConfig.php

@@ -101,11 +101,13 @@ class BxPostsConfig extends BxBaseModTextConfig
             'OBJECT_STORAGE_VIDEOS' => 'bx_posts_videos',
             'OBJECT_STORAGE_SOUNDS' => 'bx_posts_sounds',
             'OBJECT_IMAGES_TRANSCODER_PREVIEW' => 'bx_posts_preview',
+            'OBJECT_IMAGES_TRANSCODER_MINIATURE' => 'bx_posts_miniature',
             'OBJECT_IMAGES_TRANSCODER_GALLERY' => 'bx_posts_gallery',
             'OBJECT_IMAGES_TRANSCODER_COVER' => 'bx_posts_cover',
             'OBJECT_IMAGES_TRANSCODER_PREVIEW_FILES' => 'bx_posts_preview_files',
             'OBJECT_IMAGES_TRANSCODER_GALLERY_FILES' => 'bx_posts_gallery_files',
             'OBJECT_IMAGES_TRANSCODER_PREVIEW_PHOTOS' => 'bx_posts_preview_photos',
+            'OBJECT_IMAGES_TRANSCODER_MINIATURE_PHOTOS' => 'bx_posts_miniature_photos',
             'OBJECT_IMAGES_TRANSCODER_GALLERY_PHOTOS' => 'bx_posts_gallery_photos',
             'OBJECT_IMAGES_TRANSCODER_VIEW_PHOTOS' => 'bx_posts_view_photos',
             'OBJECT_SOUNDS_TRANSCODER' => 'bx_posts_sounds_mp3',

+ 2 - 0
modules/boonex/posts/install/config.php

@@ -71,10 +71,12 @@ $aConfig = array(
      */
     'transcoders' => array(
         'bx_posts_preview',
+        'bx_posts_miniature',
         'bx_posts_gallery',
         'bx_posts_cover',
 
         'bx_posts_preview_photos',
+        'bx_posts_miniature_photos',
         'bx_posts_gallery_photos',
         'bx_posts_view_photos',
 

+ 4 - 0
modules/boonex/posts/install/sql/install.sql

@@ -437,10 +437,12 @@ INSERT INTO `sys_objects_storage` (`object`, `engine`, `params`, `token_life`, `
 
 INSERT INTO `sys_objects_transcoder` (`object`, `storage_object`, `source_type`, `source_params`, `private`, `atime_tracking`, `atime_pruning`, `ts`, `override_class_name`, `override_class_file`) VALUES 
 ('bx_posts_preview', 'bx_posts_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_posts_covers";}', 'no', '1', '2592000', '0', '', ''),
+('bx_posts_miniature', 'bx_posts_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_posts_covers";}', 'no', '1', '2592000', '0', '', ''),
 ('bx_posts_gallery', 'bx_posts_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_posts_covers";}', 'no', '1', '2592000', '0', '', ''),
 ('bx_posts_cover', 'bx_posts_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_posts_covers";}', 'no', '1', '2592000', '0', '', ''),
 
 ('bx_posts_preview_photos', 'bx_posts_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_posts_photos";}', 'no', '1', '2592000', '0', '', ''),
+('bx_posts_miniature_photos', 'bx_posts_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_posts_photos";}', 'no', '1', '2592000', '0', '', ''),
 ('bx_posts_gallery_photos', 'bx_posts_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_posts_photos";}', 'no', '1', '2592000', '0', '', ''),
 ('bx_posts_view_photos', 'bx_posts_photos_resized', 'Storage', 'a:1:{s:6:"object";s:15:"bx_posts_photos";}', 'no', '1', '2592000', '0', '', ''),
 
@@ -456,10 +458,12 @@ INSERT INTO `sys_objects_transcoder` (`object`, `storage_object`, `source_type`,
 
 INSERT INTO `sys_transcoder_filters` (`transcoder_object`, `filter`, `filter_params`, `order`) VALUES 
 ('bx_posts_preview', 'Resize', 'a:3:{s:1:"w";s:3:"300";s:1:"h";s:3:"200";s:11:"crop_resize";s:1:"1";}', '0'),
+('bx_posts_miniature', 'Resize', 'a:1:{s:1:"w";s:3:"300";}', '0'),
 ('bx_posts_gallery', 'Resize', 'a:1:{s:1:"w";s:3:"500";}', '0'),
 ('bx_posts_cover', 'Resize', 'a:1:{s:1:"w";s:4:"2000";}', '0'),
 
 ('bx_posts_preview_photos', 'Resize', 'a:3:{s:1:"w";s:3:"300";s:1:"h";s:3:"200";s:11:"crop_resize";s:1:"1";}', '0'),
+('bx_posts_miniature_photos', 'Resize', 'a:4:{s:1:"w";s:3:"300";s:1:"h";s:3:"300";s:13:"square_resize";s:1:"1";s:10:"force_type";s:3:"jpg";}', '0'),
 ('bx_posts_gallery_photos', 'Resize', 'a:4:{s:1:"w";s:3:"600";s:1:"h";s:3:"600";s:13:"square_resize";s:1:"1";s:10:"force_type";s:3:"jpg";}', '0'),
 ('bx_posts_view_photos', 'Resize',  'a:2:{s:1:"w";s:4:"2000";s:1:"h";s:4:"2000";}', '0'),
 

+ 11 - 2
modules/boonex/stream/classes/BxStrmTemplate.php

@@ -121,7 +121,7 @@ class BxStrmTemplate extends BxBaseModTextTemplate
     {
         $CNF = &$this->getModule()->_oConfig->CNF;
         return $this->parseHtmlByName('stream_viewers.html', array(
-            'viewers' => _t('_bx_stream_txt_viewers_loading'),
+            'viewers' => _t('_bx_stream_txt_wait_for_stream'),
             'suffix' => md5($aContentInfo[$CNF['FIELD_KEY']]),
             'url' => BX_DOL_URL_MODULES . '?r=' . $this->getModule()->_oConfig->getUri() . '/stream_viewers/' . $aContentInfo[$CNF['FIELD_ID']]
         ));
@@ -160,11 +160,17 @@ class BxStrmTemplate extends BxBaseModTextTemplate
         if (!isset($aOptions['mute']))
             $aOptions['mute'] = getParam('bx_stream_mute') ? 1 : 0;
 
+        if (isset($aOptions['autostart']))
+            $aOptions['autostart'] = $aOptions['autostart'] ? 1 : 0;
+        else
+            $aOptions['autostart'] = 1;
+
         return $this->parseHtmlByName('stream_player.html', array(
             'suffix' => md5($aContentInfo[$CNF['FIELD_KEY']]),
             'sources' => $sSources,
             'mute' => $aOptions['mute'],
             'image' => $sImage,
+            'autostart' => $aOptions['autostart'],
         ));
     }
 
@@ -175,7 +181,10 @@ class BxStrmTemplate extends BxBaseModTextTemplate
         // TODO: visibility and other checks
 
         $sCode = $this->parseHtmlByName('stream_embed.html', array(
-            'player' => $this->entryStreamPlayer ($aContentInfo, ['mute' => (getParam('bx_stream_mute_embed') ? 1 : 0)]),
+            'player' => $this->entryStreamPlayer ($aContentInfo, [
+                'mute' => getParam('bx_stream_mute_embed') ? 1 : 0,
+                'autostart' => 0,
+            ]),
             'viewers' => $this->entryStreamViewers ($aContentInfo),
         ));
 

+ 17 - 7
modules/boonex/stream/template/stream_player.html

@@ -13,7 +13,7 @@
         oPlayer = OvenPlayer.create("bx-stream-player-__suffix__",
         {
             sources: aSources,
-            autoStart: true,
+            autoStart: __autostart__,
             autoFallback: true,
             image: '__image__',
             mute: __mute__ // muted player always autoplays
@@ -25,13 +25,23 @@
         });
 
         // reload player when error occured, it's needed to start player automatically when stream starts
-        oPlayer.on('error', function() {
+        var fReloader = function() {
+            if (!__autostart__)
+                return;
+
             setTimeout(function () {
-                if (++iBxStreamCounter > 250)
-                    location.reload();
-                fLoadPlayer();
-            }, 5000)
-        });
+                if ('undefined' !== typeof(document.hidden) && !document.hidden) {
+                    if (++iBxStreamCounter > 250)
+                        location.reload();
+                    fLoadPlayer();
+                }
+                else {
+                    console.log('empty reloader....');
+                    fReloader();
+                }
+            }, 5000);
+        };
+        oPlayer.on('error', fReloader);
     };
     fLoadPlayer();
 </script>

+ 19 - 13
modules/boonex/stream/template/stream_viewers.html

@@ -1,20 +1,26 @@
 <div id="bx-stream-viewers-__suffix__" class="bx-stream-viewers">__viewers__</div>
 <script>
     var fFunc = function () {
-        $.getJSON('__url__', function (oData) {
-            if ('undefined' !== typeof(oData.viewers)) {
-                $('#bx-stream-viewers-__suffix__').html(oData.viewers);
-            }
-            if ('undefined' !== typeof(oData.num) && false !== oData.num) {
-                $('#bx-stream-processing').hide();
-                $('.bx-stream-badge').show();
-            }
-            if ('undefined' !== typeof(oData.num) && false === oData.num) {
-                $('.bx-stream-badge').hide();
-            }
-        }).always(function() {
+        let playerInstance = OvenPlayer.getPlayerByContainerId("bx-stream-player-__suffix__");
+        if ((!playerInstance || 'playing' == playerInstance.getState()) && ('undefined' !== typeof(document.hidden) && !document.hidden)) {
+            $.getJSON('__url__', function (oData) {
+                if ('undefined' !== typeof(oData.viewers)) {
+                    $('#bx-stream-viewers-__suffix__').html(oData.viewers);
+                }
+                if ('undefined' !== typeof(oData.num) && false !== oData.num) {
+                    $('#bx-stream-processing').hide();
+                    $('.bx-stream-badge').show();
+                }
+                if ('undefined' !== typeof(oData.num) && false === oData.num) {
+                    $('.bx-stream-badge').hide();
+                }
+            }).always(function() {
+                setTimeout(fFunc, 10000);
+            });
+        }
+        else {
             setTimeout(fFunc, 10000);
-        });
+        }
     }
     fFunc();
 </script>

+ 22 - 17
modules/boonex/timeline/classes/BxTimelineModule.php

@@ -4716,28 +4716,33 @@ class BxTimelineModule extends BxBaseModNotificationsModule implements iBxDolCon
 
         $aPhotos = $this->_oDb->getMedia($CNF['FIELD_PHOTO'], $iEventId);
         if(empty($aPhotos) || !is_array($aPhotos))
-            return array();
+            return [];
 
-        $oTranscoder = BxDolTranscoderImage::getObjectInstance($this->_oConfig->getObject('transcoder_photos_view'));
-        $oTranscoderMedium = BxDolTranscoderImage::getObjectInstance($this->_oConfig->getObject('transcoder_photos_medium'));
-        $oTranscoderBig = BxDolTranscoderImage::getObjectInstance($this->_oConfig->getObject('transcoder_photos_big'));
+        $oTranscoderSm = BxDolTranscoderImage::getObjectInstance($this->_oConfig->getObject('transcoder_photos_view'));
+        $oTranscoderMd = BxDolTranscoderImage::getObjectInstance($this->_oConfig->getObject('transcoder_photos_medium'));
+        $oTranscoderLg = BxDolTranscoderImage::getObjectInstance($this->_oConfig->getObject('transcoder_photos_big'));
 
-        $aResult = array();
+        $aResult = [];
         foreach($aPhotos as $iPhotoId) {
-            $sPhotoSrc = $oTranscoder->getFileUrl($iPhotoId);
-            $sPhotoSrcMedium = $oTranscoderMedium->getFileUrl($iPhotoId);
-            $sPhotoSrcBig = $oTranscoderBig->getFileUrl($iPhotoId);
-            if(empty($sPhotoSrcMedium) && !empty($sPhotoSrc))
-                $sPhotoSrcMedium = $sPhotoSrc;
-            if(empty($sPhotoSrcBig) && !empty($sPhotoSrcMedium))
-                $sPhotoSrcBig = $sPhotoSrcMedium;
+            $sPhotoSrcMd = $oTranscoderMd->getFileUrl($iPhotoId);
+            if(empty($sPhotoSrcMd))
+                continue;
 
-            $aResult[] = array(
+            $sPhotoSrcSm = $oTranscoderSm->getFileUrl($iPhotoId);
+            if(empty($sPhotoSrcSm))
+                $sPhotoSrcSm = $sPhotoSrcMd;
+
+            $sPhotoSrcLg = $oTranscoderLg->getFileUrl($iPhotoId);
+            if(empty($sPhotoSrcLg))
+                $sPhotoSrcLg = $sPhotoSrcMd;
+
+            $aResult[] = [
                 'id' => $iPhotoId,
-                'src' => $sPhotoSrc,
-                'src_medium' => $sPhotoSrcMedium,
-                'src_orig' => $sPhotoSrcBig,
-            );
+                'src' => $sPhotoSrcMd,
+                'src_small' => $sPhotoSrcSm,
+                'src_medium' => $sPhotoSrcMd,
+                'src_orig' => $sPhotoSrcLg,
+            ];
         }
 
         return $aResult;

+ 15 - 3
modules/boonex/timeline/classes/BxTimelineTemplate.php

@@ -2592,7 +2592,7 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
     protected function _getTmplVarsImages($aImages, $mixedLayout, &$aEvent, &$aBrowseParams)
     {
         if(empty($aImages) || !is_array($aImages))
-            return array();
+            return [];
 
         $iTotal = 0; //--- Total count of images related to the event.
         if(isset($aImages['total']) && isset($aImages['items'])) {
@@ -2608,7 +2608,7 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
         $bViewItem = isset($aBrowseParams['view']) && $aBrowseParams['view'] == BX_TIMELINE_VIEW_ITEM;
 
         $sDisplay = '';
-        $aTmplVarsImages = array();
+        $aTmplVarsImages = [];
 
         $sImageSrcKey = $sImageSrcKeyBig = '';
         $sImageSrcKeyDefault = 'src';
@@ -2634,6 +2634,11 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
         $aImageFirst = reset($aImages);
         $iImageFirst = isset($aImageFirst['id']) ? (int)$aImageFirst['id'] : 0;
 
+        $aImageSizes = [
+            'small' => '600w', 
+            'medium' => '1000w', 
+            'orig' => '2400w'
+        ];
         foreach($aImages as $aImage) {
             $sImageSrcKeyCur = $sImageSrcKey;
             if(($bAttachFirst && isset($aImage['id']) && (int)$aImage['id'] == $iImageFirst) || $iTotal == 2)
@@ -2643,8 +2648,15 @@ class BxTimelineTemplate extends BxBaseModNotificationsTemplate
             if(empty($sImageSrc))
                 continue;
 
+            $sImageAttrSrcset = '';
+            foreach($aImageSizes as $sSize => $sWidth)
+                if(isset($aImage['src_' . $sSize]))
+                    $sImageAttrSrcset .= $aImage['src_' . $sSize] . ' ' . $sWidth . ', ';
+
             $sImage = $this->parseImage($sImageSrc, array(
-                'class' => $sStylePrefix . '-item-image'
+                'class' => $sStylePrefix . '-item-image',
+                'srcset' => trim($sImageAttrSrcset, ", "),
+                'sizes' => '100%'
             ));
 
             $aAttrs = array();

Plik diff jest za duży
+ 0 - 0
plugins_public/ovenplayer/dash.all.min.js


Plik diff jest za duży
+ 0 - 0
plugins_public/ovenplayer/dash.all.min.js.map


Plik diff jest za duży
+ 0 - 0
plugins_public/ovenplayer/hls.min.js


Plik diff jest za duży
+ 0 - 0
plugins_public/ovenplayer/hls.min.js.map


Plik diff jest za duży
+ 0 - 0
plugins_public/ovenplayer/ovenplayer.js


Plik diff jest za duży
+ 0 - 0
plugins_public/ovenplayer/ovenplayer.js.map


Plik diff jest za duży
+ 0 - 0
plugins_public/tailwind/css/tailwind.min.css


+ 4 - 4
template/layout_1_column_wiki.html

@@ -1,17 +1,17 @@
 <!-- layout 1 column with menu on left and contents on right [ start ] -->
 <div id="__page_id__" class="bx-layout-wrapper bx-layout-bcb">
-    <div class="bx-layout-row flex">
-        <div class="bx-layout-col bx-layout-bcb-bar1 bx-layout-column-thin w-1/4">
+    <div class="bx-layout-row flex flex-col md:flex-row">
+        <div class="bx-layout-col bx-layout-bcb-bar1 bx-layout-column-thin md:w-1/4">
             <div class="bx-layout-cell pr-2 lg:pr-3" id="bx-layout-cell-1">
                 <bx_page:wiki-pages-list />
             </div>
         </div>
-        <div class="bx-layout-col bx-layout-bcb-content bx-layout-column-half w-1/2">
+        <div class="bx-layout-col bx-layout-bcb-content bx-layout-column-half md:w-1/2 max-md:order-2 md:order-1">
             <div class="bx-layout-cell px-2 lg:px-3" id="bx-layout-cell-2">
                 __cell_1__
             </div>
         </div>
-        <div class="bx-layout-col bx-layout-bcb-bar2 bx-layout-column-thin w-1/4">
+        <div class="bx-layout-col bx-layout-bcb-bar2 bx-layout-column-thin md:w-1/4 max-md:order-1 md:order-2">
             <div class="bx-layout-cell pl-2 lg:pl-3" id="bx-layout-cell-3">
                 <bx_page:wiki-page-contents />
             </div>

+ 3 - 3
template/wiki_contents.html

@@ -1,5 +1,5 @@
-<ul class="bx-wiki-contents bx-def-font-large markdown-body">
+<div class="bx-wiki-contents markdown-body w-full overflow-y-auto h-32 md:h-max w-full border border-gray-300 dark:border-gray-700">
     <bx_repeat:pages>
-        <li><a href="__url__">__title__</a></li>
+        <a class="block py-2 px-4 w-full border-b last:border-0 border-b-gray-300 dark:border-b-gray-700 bg-white/95 dark:bg-gray-800/95" href="__url__">__title__</a>
     </bx_repeat:pages>
-</ul>
+</div>

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików