Версия 69.1 от Alexey Semenihin на 10.10.2025

Последние авторы
1 {{velocity}}
2
3 ## Подключаем необходимые JS/CSS для работы вкладок
4 $xwiki.jsfx.use('uicomponents/widgets/tabView.js', {'forceSkinAction': true, 'language': 'xwiki/2.1'})
5 $xwiki.ssfx.use('uicomponents/widgets/tabView.css', true)
6 {{html}}
7 <script>
8 // Ждём загрузки DOM
9 document.observe("dom:loaded", function() {
10 // Находим ссылку на вкладку "Вложения" (по ID или тексту)
11 var attachmentsTab = $('Attachmentslink');
12
13 // Если вкладка найдена, имитируем клик
14 if (attachmentsTab) {
15 attachmentsTab.click();
16 }
17 // Альтернативный вариант (если не сработал ID):
18 else {
19 var tabs = $$('.tab-menu a').find(function(tab) {
20 return tab.textContent.trim().includes('Вложения');
21 });
22 if (tabs && tabs.length > 0) tabs[0].click();
23 }
24 });
25 </script>
26 {{/html}}
27 {{/velocity}}
28
29 {{velocity}}
30 #set($attachments = $doc.getAttachmentList())
31 #foreach($attachment in $attachments)
32 #set($filename = $attachment.filename)
33 #set($fileurl = $doc.getAttachmentURL($filename))
34 #set($fileExt = $filename.substring($filename.lastIndexOf('.') + 1).toLowerCase())
35
36 ## Определяем тип файла
37 #set($isPdf = $fileExt == 'pdf')
38 #set($isImage = $fileExt == 'png' || $fileExt == 'jpg' || $fileExt == 'jpeg' || $fileExt == 'gif' || $fileExt == 'bmp' || $fileExt == 'svg')
39 #set($isOffice = $fileExt == 'doc' || $fileExt == 'docx' || $fileExt == 'xls' || $fileExt == 'xlsx' || $fileExt == 'ppt' || $fileExt == 'pptx' || $fileExt == 'odt' || $fileExt == 'ods' || $fileExt == 'odp')
40
41 ## Обрабатываем только поддерживаемые форматы
42 #if($isPdf || $isImage || $isOffice)
43
44
45 #if($isPdf)
46 {{html}}
47 <div class="pdf-viewer-container">
48 <iframe
49 src="/resources/pdfjs/web/viewer.html?file=${fileurl}"
50 width="100%"
51 height="600px">
52 </iframe>
53 </div>
54 {{/html}}
55
56 #elseif($isImage)
57 [[image:${attachment.filename}]]
58
59 #elseif($isOffice)
60 {{office attachment="${attachment.filename}" filterStyles="false"/}}
61
62 #end
63 #end
64 #end
65
66 {{html}}
67 <style>
68 .pdf-viewer-container {
69 margin: 20px 0;
70 border: 1px solid #eee;
71 padding: 10px;
72 background: #f9f9f9;
73 }
74
75 /* Стили для изображений */
76 .image-wrapper {
77 max-width: 100%;
78 margin: 10px 0;
79 }
80
81 /* Стили для офисных документов */
82 .office-document {
83 border: 1px solid #ddd;
84 margin: 15px 0;
85 min-height: 500px;
86 }
87 </style>
88 {{/html}}
89 {{/velocity}}