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