attachments.html 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <div class="bx-base-general-attachments bx-clearfix -m-px">
  2. <bx_repeat:attachments>
  3. <div class="bx-base-general-attachment bx-def-box bx-def-color-bg-box bx-def-gal-img-size relative m-px text-center" style="float:left;">
  4. <bx_if:image>
  5. <a href="javascript:void(0);" title="__attr_file_name__" onclick="$('#__popup_id__').dolPopupImage('__url_original__', $(this).parent())">
  6. <img class="bx-def-gal-img-size" src="__url_preview__" />
  7. </a>
  8. __popup__
  9. </bx_if:image>
  10. <bx_if:video>
  11. __video__
  12. </bx_if:video>
  13. <bx_if:sound>
  14. __sound__
  15. </bx_if:sound>
  16. <bx_if:not_image>
  17. <a href="__url_original__" title="__attr_file_name__">
  18. <div class="bx-def-round-corners bx-def-padding-sec">__file_name__</div>
  19. </a>
  20. </bx_if:not_image>
  21. </div>
  22. </bx_repeat:attachments>
  23. <script language="javascript">
  24. var oAttachments = $('.bx-base-general-attachments');
  25. if(oAttachments.find('.bx-base-general-attachment').length > 2) {
  26. oAttachments.flickity({
  27. cellSelector: '.bx-base-general-attachment',
  28. cellAlign: 'left',
  29. pageDots: false,
  30. imagesLoaded: true
  31. });
  32. }
  33. </script>
  34. <script type="module">
  35. // pdf previews
  36. if ('undefined' !== typeof(window['pdfjsLib'])) {
  37. $('.bx-base-general-attachment a[href$=".pdf"],.bx-base-general-attachment a[href*=".pdf?"]').each(function () {
  38. var sUrl = $(this).attr('href');
  39. var e = $(this);
  40. var oPdfjsLib = window['pdfjsLib'];
  41. oPdfjsLib.GlobalWorkerOptions.workerSrc = '__pdfjs_worker_url__';
  42. var oLoadingTask = pdfjsLib.getDocument({ url: sUrl });
  43. oLoadingTask.promise.then(function(pdf) {
  44. pdf.getPage(1).then(function(page) {
  45. var iDpx = parseInt($.cookie('devicePixelRatio'));
  46. if (iDpx != 2)
  47. iDpx = 1;
  48. e.append('<canvas></canvas>');
  49. var eCanvas = e.find('canvas');
  50. eCanvas.width(e.parents('.bx-base-general-attachment').innerWidth());
  51. eCanvas.height(e.parents('.bx-base-general-attachment').innerHeight());
  52. eCanvas[0].width = iDpx * eCanvas.width();
  53. eCanvas[0].height = iDpx * eCanvas.height();
  54. var oContext = eCanvas[0].getContext('2d');
  55. var iWidth = page.getViewport({scale:1.0}).width;
  56. var fScaleW = eCanvas[0].width / page.getViewport({scale:1.0}).width;
  57. var fScaleH = eCanvas[0].height / page.getViewport({scale:1.0}).height;
  58. var fScale = fScaleW < fScaleH ? fScaleW : fScaleH;
  59. var oViewport = page.getViewport({scale: fScale, offsetX: (iDpx*eCanvas.width() - iWidth*fScale)/2});
  60. var oRenderContext = {
  61. canvasContext: oContext,
  62. viewport: oViewport,
  63. };
  64. var oRenderTask = page.render(oRenderContext);
  65. oRenderTask.promise.then(function () {
  66. e.find('div').remove();
  67. });
  68. });
  69. }, function (err) {
  70. console.error(err);
  71. });
  72. });
  73. }
  74. </script>
  75. </div>