Просмотр исходного кода

#1339 Embeds for all content types - Albums

RomanL 4 лет назад
Родитель
Сommit
df656c559d

+ 4 - 0
inc/js/embed.js

@@ -0,0 +1,4 @@
+var bIgnorePixelRatio = true;
+$(document).ready(function() {
+    $(window.frameElement, window.parent.document).height($('.bx-embed').height() + 2);
+});

+ 13 - 0
modules/boonex/albums/classes/BxAlbumsContentInfoMedia.php

@@ -30,6 +30,19 @@ class BxAlbumsContentInfoMedia extends BxDolContentInfo
 
 
         return $aMedia['author'];
         return $aMedia['author'];
     }
     }
+    
+    public function getContentEmbed ($iContentId)
+    {
+        $aMedia = $this->_oModule->_oDb->getMediaInfoById($iContentId);
+        if(empty($aMedia) || !is_array($aMedia))
+            return '';
+        
+        $sTitle = $this->getContentTitle($iContentId);
+        return $this->_oModule->_oTemplate->parseHtmlByName('embed.html', [
+            'title' => $sTitle,
+            'url' => BX_DOL_URL_ROOT . $this->_oModule->_oConfig->getBaseUri() . 'embed_media/' . $iContentId . '/'
+        ]);
+    }
 
 
     public function getContentDateAdded ($iContentId)
     public function getContentDateAdded ($iContentId)
     {
     {

+ 13 - 0
modules/boonex/albums/classes/BxAlbumsModule.php

@@ -37,6 +37,19 @@ class BxAlbumsModule extends BxBaseModTextModule
         ));
         ));
     }
     }
 
 
+    public function actionEmbedMedia($iContentId)
+    {
+        $aContentInfo = $this->_oDb->getMediaInfoById($iContentId);
+        if(empty($aContentInfo))
+            return '';
+
+        if(empty($sUnitTemplate))
+            $sUnitTemplate = 'unit_media_gallery.html';
+
+        $oTemplate = BxDolTemplate::getInstance();
+        $oTemplate->getEmbed($this->_oTemplate->unit($aContentInfo, true, $sUnitTemplate));
+    }
+    
     /**
     /**
      * Entry actions and social sharing block
      * Entry actions and social sharing block
      */
      */

+ 1 - 1
modules/boonex/albums/classes/BxAlbumsTemplate.php

@@ -28,7 +28,7 @@ class BxAlbumsTemplate extends BxBaseModTextTemplate
 
 
     function unit ($aData, $isCheckPrivateContent = true, $sTemplateName = 'unit.html', $aParams = array())
     function unit ($aData, $isCheckPrivateContent = true, $sTemplateName = 'unit.html', $aParams = array())
     {
     {
-        if ('unit_media.html' == $sTemplateName || 'unit_media_live_search.html' == $sTemplateName || 'unit_showcase.html' == $sTemplateName)
+        if ('unit_media.html' == $sTemplateName || 'unit_media_live_search.html' == $sTemplateName || 'unit_showcase.html' == $sTemplateName || 'unit_media_gallery.html' == $sTemplateName)
             return $this->unitMedia($aData, $isCheckPrivateContent, $sTemplateName, $aParams);
             return $this->unitMedia($aData, $isCheckPrivateContent, $sTemplateName, $aParams);
 
 
         $oModule = BxDolModule::getInstance($this->MODULE);
         $oModule = BxDolModule::getInstance($this->MODULE);

+ 23 - 0
modules/boonex/albums/template/unit_media_gallery.html

@@ -0,0 +1,23 @@
+<div class="__class__ bx-albums-media-wrapper bx-def-padding-sec bx-def-box-sizing">
+    <div class="bx-albums-media-cnt bx-def-box bx-def-image-bg-block bx-def-color-bg-block bx-def-border-block bx-shadow-block bx-def-padding">
+	    <div class="bx-albums-media-thumb bx-albums-unit-size bx-def-centered">
+	        <bx_if:image>
+	            <a href="__url__" title="__title_attr__">
+	                <img class="bx-albums-unit-size" src="__url_img__" alt="__title_attr__" />
+	            </a>
+	        </bx_if:image>
+	        <bx_if:video>
+	            <a href="__url__" title="__title_attr__">
+	                <img class="bx-albums-unit-size" src="__url_img__" alt="__title_attr__" />
+                        <div class="bx-albums-media-play bx-def-round-corners"><i class="sys-icon play"></i></div>
+	            </a>
+                    <bx_if:show_duration>
+                        <div class="bx-albums-media-duration bx-def-padding-sec-leftright bx-def-padding-thd-topbottom bx-def-border bx-def-round-corners bx-def-font">__duration__</div>
+                    </bx_if:show_duration>
+	        </bx_if:video>
+	    </div>
+	    <div class="bx-albums-media-caption bx-def-margin-sec-topbottom">
+                <a href="__url__" title="__title_attr__">__title__</a>
+            </div>
+    </div>
+</div>

+ 23 - 0
modules/boonex/artificer/data/template/bx_albums/unit_media_gallery.html

@@ -0,0 +1,23 @@
+<div class="__class__ bx-albums-media-wrapper flex flex-col sm:w-full md:w-1/2 lg:w-1/3 p-2 box-border">
+    <div class="bx-albums-media-cnt ring-1 ring-gray-200 dark:ring-gray-700 overflow-hidden bg-white dark:bg-gray-800 rounded-md">
+        <div class="bx-albums-media-thumb bx-albums-unit-size h-48 rounded-md">
+            <bx_if:image>
+                <a href="__url__" title="__title_attr__">
+                    <img class="bx-albums-unit-size h-48" src="__url_img__" alt="__title_attr__" />
+                </a>
+            </bx_if:image>
+            <bx_if:video>
+                <a href="__url__" title="__title_attr__">
+                    <img class="bx-albums-unit-size h-48" src="__url_img__" alt="__title_attr__" />
+                    <div class="bx-albums-media-play rounded-md"><i class="sys-icon play"></i></div>
+                </a>
+                <bx_if:show_duration>
+                    <div class="bx-albums-media-duration px-2 py-1 border text-sm rounded-md">__duration__</div>
+                </bx_if:show_duration>
+            </bx_if:video>
+        </div>
+        <div class="bx-albums-media-caption m-2">
+            <a href="__url__" title="__title_attr__">__title__</a>
+        </div>
+    </div>
+</div>

+ 2 - 2
modules/boonex/artificer/data/template/system/designbox_share_popup.html

@@ -5,11 +5,11 @@
          </div>
          </div>
          <div class="mb-4">
          <div class="mb-4">
              <bx_text:_sys_txt_share_popup_url />       
              <bx_text:_sys_txt_share_popup_url />       
-             <div class="block w-full py-2 px-3 border border-gray-300 dark:border-gray-700 rounded-md shadow-sm bg-white dark:bg-gray-900 placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-2 focus:text-gray-900 dark:focus:text-gray-100 focus:ring-blue-500 focus:border-opacity-70 focus:ring-opacity-20 focus:border-blue-500 text-sm text-gray-700 dark:text-gray-300 appearance-none p-2 rounded" onClick="bx_copy_to_clipboard('__url__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />">__url__</div>
+             <div class="block w-full py-2 px-3 border border-gray-300 dark:border-gray-700 rounded-md shadow-sm bg-white dark:bg-gray-900 placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-2 focus:text-gray-900 dark:focus:text-gray-100 focus:ring-blue-500 focus:border-opacity-70 focus:ring-opacity-20 focus:border-blue-500 text-sm text-gray-700 dark:text-gray-300 appearance-none p-2 rounded relative flex items-center justify-between" onClick="bx_copy_to_clipboard('__url__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />">__url__<a href="javascript:" onClick="bx_copy_to_clipboard('__url__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />"><i class="sys-icon copy"></i></a></div>
          </div>
          </div>
          <div class="mb-4">
          <div class="mb-4">
              <bx_text:_sys_txt_share_popup_embeded_code />        
              <bx_text:_sys_txt_share_popup_embeded_code />        
-             <div class="block w-full py-2 px-3 border border-gray-300 dark:border-gray-700 rounded-md shadow-sm bg-white dark:bg-gray-900 placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-2 focus:text-gray-900 dark:focus:text-gray-100 focus:ring-blue-500 focus:border-opacity-70 focus:ring-opacity-20 focus:border-blue-500 text-sm text-gray-700 dark:text-gray-300 appearance-none p-2 rounded" onClick="bx_copy_to_clipboard('__code__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />">__code__</div> 
+             <div class="block w-full py-2 px-3 border border-gray-300 dark:border-gray-700 rounded-md shadow-sm bg-white dark:bg-gray-900 placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-2 focus:text-gray-900 dark:focus:text-gray-100 focus:ring-blue-500 focus:border-opacity-70 focus:ring-opacity-20 focus:border-blue-500 text-sm text-gray-700 dark:text-gray-300 appearance-none p-2 rounded relative flex items-center justify-between" onClick="bx_copy_to_clipboard('__code__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />">__code__<a href="javascript:" onClick="bx_copy_to_clipboard('__code__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />"><i class="sys-icon copy"></i></a></div> 
          </div>
          </div>
     </div>
     </div>
 </div>
 </div>

+ 1 - 1
template/_header_js.html

@@ -8,7 +8,7 @@
 
 
     (function(w) {
     (function(w) {
         var dpr = (w.devicePixelRatio === undefined ? 1 : Math.round(w.devicePixelRatio));
         var dpr = (w.devicePixelRatio === undefined ? 1 : Math.round(w.devicePixelRatio));
-        if ($.cookie('devicePixelRatio') == dpr || dpr < 2)
+        if ($.cookie('devicePixelRatio') == dpr || dpr < 2 || (typeof(bIgnorePixelRatio) != "undefined" && bIgnorePixelRatio))
             return;
             return;
         $.cookie('devicePixelRatio', dpr, {expires: 365, path: '/'});
         $.cookie('devicePixelRatio', dpr, {expires: 365, path: '/'});
         window.location.reload();
         window.location.reload();

+ 2 - 2
template/designbox_share_popup.html

@@ -5,11 +5,11 @@
          </div>
          </div>
          <div class="bx-def-margin-sec-bottom">
          <div class="bx-def-margin-sec-bottom">
              <bx_text:_sys_txt_share_popup_url />       
              <bx_text:_sys_txt_share_popup_url />       
-             <div class="bx-def-border bx-def-padding-sec rounded bx-def-font-small" onClick="bx_copy_to_clipboard('__url__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />">__url__</div>
+             <div class="bx-def-border bx-def-padding-sec rounded bx-def-font-small relative flex items-center justify-between">__url__<a href="javascript:" onClick="bx_copy_to_clipboard('__url__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />"><i class="sys-icon copy"></i></a></div>
          </div>
          </div>
          <div class="bx-def-margin-sec-bottom">
          <div class="bx-def-margin-sec-bottom">
              <bx_text:_sys_txt_share_popup_embeded_code />        
              <bx_text:_sys_txt_share_popup_embeded_code />        
-             <div class="bx-def-border bx-def-padding-sec rounded bx-def-font-small" onClick="bx_copy_to_clipboard('__code__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />">__code__</div> 
+             <div class="bx-def-border bx-def-padding-sec rounded bx-def-font-small relative flex items-center justify-between">__code__<a href="javascript:" onClick="bx_copy_to_clipboard('__code__')" title="<bx_text:_sys_txt_share_popup_copy_to_clipboard_text />"><i class="sys-icon copy"></i></a</div> 
          </div>
          </div>
     </div>
     </div>
 </div>
 </div>