attachments.html 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <div class="bx-base-general-attachments bx-clearfix">
  2. <bx_repeat:attachments>
  3. <div class="bx-base-general-attachment bx-def-box bx-def-color-bg-box bx-def-gal-img-size" 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. // pdf previews
  34. if ('undefined' !== typeof(window['pdfjs-dist/build/pdf'])) {
  35. $('.bx-base-general-attachment a[href$=".pdf"]').each(function () {
  36. var sUrl = $(this).attr('href');
  37. var e = $(this);
  38. var oPdfjsLib = window['pdfjs-dist/build/pdf'];
  39. oPdfjsLib.GlobalWorkerOptions.workerSrc = '__pdfjs_worker_url__';
  40. var oLoadingTask = pdfjsLib.getDocument(sUrl);
  41. oLoadingTask.promise.then(function(pdf) {
  42. pdf.getPage(1).then(function(page) {
  43. var iDpx = parseInt($.cookie('devicePixelRatio'));
  44. if (iDpx != 2)
  45. iDpx = 1;
  46. e.append('<canvas></canvas>');
  47. var eCanvas = e.find('canvas');
  48. eCanvas.width(e.parents('.bx-base-general-attachment').width());
  49. eCanvas.height(e.parents('.bx-base-general-attachment').height());
  50. eCanvas[0].width = iDpx * eCanvas.width();
  51. eCanvas[0].height = iDpx * eCanvas.height();
  52. var oContext = eCanvas[0].getContext('2d');
  53. var iWidth = page.getViewport({scale:1.0}).width;
  54. var fScaleW = eCanvas[0].width / page.getViewport({scale:1.0}).width;
  55. var fScaleH = eCanvas[0].height / page.getViewport({scale:1.0}).height;
  56. var fScale = fScaleW < fScaleH ? fScaleW : fScaleH;
  57. var oViewport = page.getViewport({scale: fScale, offsetX: (iDpx*eCanvas.width() - iWidth*fScale)/2});
  58. var oRenderContext = {
  59. canvasContext: oContext,
  60. viewport: oViewport,
  61. };
  62. var oRenderTask = page.render(oRenderContext);
  63. oRenderTask.promise.then(function () {
  64. e.find('div').remove();
  65. });
  66. });
  67. }, function (err) {
  68. console.error(err);
  69. });
  70. });
  71. }
  72. </script>
  73. </div>