Сведения о заместителях руководителя

23 June 2021, 16:50
29 April 2023, 20:13

Asset Publisher

Андреев Александр Михайлович

An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy91.getFileEntryByUuidAndGroupId(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy91 object "com.liferay.document.library.opener.google.drive.web.internal.service.DLOpenerGoogleDriveDLAppServiceWrapper@3dbfffc"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign bigPreviewFileEntry = dlAppSe...  [in template "35723#35751#31508512" at line 39, column 9]
----
1<#assign adaptiveMediaId = 'Thumbnail-300x300'> 
2 
3<#assign dlAppService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")> 
4<#assign dlURLHelper = serviceLocator.findService("com.liferay.document.library.util.DLURLHelper")> 
5<#assign DocumentConversionUtil = staticUtil["com.liferay.document.library.kernel.document.conversion.DocumentConversionUtil"]> 
6<#assign JsonFactoryUtil = staticUtil["com.liferay.portal.kernel.json.JSONFactoryUtil"]> 
7 
8<div class="card-doctor"> 
9    <div class="card-doctor__row"> 
10        <div class="card-doctor__left"> 
11            <#if bigPreview.getData()?? && bigPreview.getData() != ""> 
12	            <img alt="${bigPreview.getAttribute("alt")}" data-fileentryid="${bigPreview.getAttribute("fileEntryId")}" src="${bigPreview.getData()}" /> 
13	        <#else> 
14	            <img src="https://i1.wampi.ru/2024/01/12/logo.jpg" /> 
15            </#if> 
16        </div> 
17        <div class="card-doctor__right"> 
18            <p class="card-doctor__line"><b>ФИО: </b>${fio.getData()}</p> 
19            <p class="card-doctor__line"><b>Должность: </b> ${position.getData()}</p> 
20            <#if specialization.getData()?? && specialization.getData() != ""> 
21                <p class="card-doctor__line"><b>Специальность: </b>${specialization.getData()}</p> 
22            </#if> 
23            <p class="card-doctor__line"><b>Телефон: </b>${phone.getData()}</p> 
24            <#if workingHours.getData()?? && workingHours.getData() != ""> 
25                <p class="card-doctor__line"><b>Время приема: </b>${workingHours.getData()}</p> 
26            </#if> 
27            <div class="card-doctor__about"> 
28                <h5>О себе:</h5> 
29                ${about.getData()} 
30            </div> 
31        </div> 
32         
33    </div> 
34     
35    <#if bigPreview.getData()?? && bigPreview.getData() != ""> 
36        <#assign bigPreviewUrl = bigPreview.getData()> 
37        <#assign bigPreviewUuid = bigPreviewUrl?keep_after_last("/")?keep_before_last("?")> 
38        <#assign bigPreviewGroupId = bigPreviewUrl?keep_after("/")?keep_after("/")?keep_before("/")?number> 
39        <#assign bigPreviewFileEntry = dlAppService.getFileEntryByUuidAndGroupId(bigPreviewUuid, bigPreviewGroupId)> 
40        <#assign personalFolder = bigPreviewFileEntry.getFolder()> 
41    </#if> 
42 
43    <#if personalFolder?has_content > 
44        <#assign contentFolders = dlAppService.getFolders(personalFolder.getGroupId(), personalFolder.getFolderId())> 
45        <div class="card-doctor__bottom"> 
46             
47            <#if youtubeUrl??> 
48                <#if youtubeUrl.getSiblings()?has_content> 
49                    <div class="card-doctor__videos"> 
50        	        <#list youtubeUrl.getSiblings() as cur_youtubeUrl> 
51                        <#if youtubeUrl.getData()?? && youtubeUrl.getData() != ""> 
52        	            	<div class="card-doctor__video"> 
53            	            	<iframe width="100%" height="100%" src="${cur_youtubeUrl.getData()}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> 
54                                </iframe> 
55        	            	</div> 
56                        </#if> 
57        	        </#list> 
58                    </div> 
59                </#if> 
60            </#if> 
61             
62             
63            <#list contentFolders?filter(folder -> folder.getName()?starts_with('[D'))?sort_by('name') as documentsFolder > 
64                <#attempt> 
65                    <#assign documentFolders = dlAppService.getFolders(documentsFolder.getGroupId(), documentsFolder.getFolderId()) > 
66                <#recover> 
67                    <#assign documentFolders = [] > 
68                </#attempt> 
69                <#if documentFolders?size gt 0> 
70                    <div class="card-doctor__bottom-t"> 
71                        <h3 class="card-doctor-title">${documentsFolder.getName()?keep_after(']')?trim}</h3> 
72                        <#list documentFolders as documentFolder> 
73                            <#assign documentEntries = dlAppService.getFileEntries(documentFolder.getGroupId(), documentFolder.getFolderId())> 
74                             
75                            <#if documentEntries?size gt 0> 
76                                <div class="card-doctor__documents accordion"> 
77                                    <div class="item"> 
78                                        <header class="portlet-header"> 
79                                            <h5>${documentFolder.getName()}</h5> 
80                                        </header> 
81                                        <ul class="text"> 
82                                            <#list documentEntries as documentEntry> 
83                                                <#assign documentExtension = documentEntry.getExtension()> 
84                                                <#assign downloadUrl = dlURLHelper.getDownloadURL(documentEntry, documentEntry.getFileVersion(),     themeDisplay, '')> 
85                                                <#assign isDocumentConvertible = DocumentConversionUtil.isEnabled() && (DocumentConversionUtil    .getConversions(documentExtension)?seq_contains      ('pdf'    ))/> 
86                                                 
87                                                <#assign target = ''/> 
88                                                <#if isDocumentConvertible> 
89                                                    <#assign downloadUrl = downloadUrl?replace('&download=true', '')/> 
90                                                    <#assign downloadUrl = downloadUrl + '&targetExtension=pdf'/> 
91                                                    <#assign target = 'target="_blank"'/> 
92                                                </#if> 
93                                                <#if documentExtension == 'pdf'> 
94                                                    <#assign downloadUrl = downloadUrl?replace('&download=true', '')/> 
95                                                    <#assign target = 'target="_blank"'/> 
96                                                </#if> 
97                                 
98                                                <#if documentEntry.getDescription()?has_content> 
99                                                    <#assign entityTitle = documentEntry.getDescription()/> 
100                                                <#else> 
101                                                    <#assign entityTitle = documentEntry.getTitle()/> 
102                                                </#if> 
103                                                 
104                                                <li><a href="${downloadUrl}" ${target}>${entityTitle}</a></li> 
105                                            </#list> 
106                                        </ul> 
107                                    </div> 
108                                </div> 
109                            </#if> 
110                        </#list> 
111                    </div> 
112                </#if> 
113            </#list> 
114 
115            <#list contentFolders?filter(folder -> folder.getName()?starts_with('[G'))?sort_by('name') as galleriesFolder > 
116                <#attempt> 
117                    <#assign galleryFolders = dlAppService.getFolders(galleriesFolder.getGroupId(), galleriesFolder.getFolderId()) > 
118                <#recover> 
119                    <#assign galleryFolders = [] > 
120                </#attempt> 
121                <#if galleryFolders?size gt 0> 
122                    <div class="card-doctor__bottom-b"> 
123                        <h3 class="card-doctor-title">${galleriesFolder.getName()?keep_after(']')?trim}</h3> 
124 
125                        <#list galleryFolders as galleryFolder> 
126                            <#assign albumEntries = dlAppService.getFileEntries(galleryFolder.getGroupId(), galleryFolder.getFolderId())> 
127                             
128                            <#if albumEntries?size gt 0> 
129                                <#assign imagesGalleryId = 'card-doctor_gallery' + randomNamespace + galleryFolder.getFolderId()> 
130                                <div class="card-doctor__gallery accordion"> 
131                                    <div class="item"> 
132                                        <header class="portlet-header"> 
133                                            <h5 class="card-doctor__gallery-title">${galleryFolder.getName()}</h5> 
134                                        </header> 
135                                        <div class="text" id="${imagesGalleryId}"> 
136                                            <div class="card-doctor__images"> 
137                                                <#list albumEntries as albumEntry> 
138                                                    <#assign alt = albumEntry.getDescription()> 
139                                                    <#assign fileEntryId = albumEntry.getFileEntryId()> 
140                                                    <#assign previewUrl = dlURLHelper.getThumbnailSrc(albumEntry, themeDisplay)> 
141                                                    <#assign downloadUrl = dlURLHelper.getPreviewURL(albumEntry, albumEntry.getFileVersion(), themeDisplay, "")> 
142                                                    <a href="${downloadUrl}" class="card-doctor__image"> 
143                                                        <img src="${previewUrl}" alt="..." /> 
144                                                    </a> 
145                                                </#list> 
146                                            </div> 
147                                        </div> 
148                                    </div> 
149                                    <#assign imageViewerSelector = '#' + imagesGalleryId + ' .card-doctor__image'> 
150                                    <@imageViewer imageViewerSelector /> 
151                                </div> 
152                            </#if> 
153                        </#list> 
154                    </div> 
155                </#if> 
156            </#list> 
157        </div> 
158    </#if> 
159</div> 
160 
161 
162 
163<style> 
164    .card-doctor__row { 
165        display: flex; 
166        gap: 30px; 
167
168    .card-doctor__row:first-child { 
169        margin-bottom: 30px; 
170
171    .card-doctor__left { 
172        flex: 0 0 auto;    
173
174    .card-doctor__line { 
175        margin-bottom: 10px; 
176         
177
178    .card-doctor__left img{ 
179        overflow: hidden; 
180        max-width: 300px !important; 
181
182    .card-doctor__bottom-t { 
183        margin-bottom: 50px; 
184
185    .card-doctor__bottom .card-doctor__bottom-b:not(:last-child) { 
186        margin-bottom: 50px; 
187
188    .card-doctor__gallery:not(:last-child) { 
189      margin-bottom: 15px; 
190
191    .card-doctor__gallery-title { 
192        margin-bottom: 10px; 
193
194    .card-doctor__images { 
195        display: grid; 
196        grid-template-columns: repeat(4, 1fr); 
197        grid-gap: 20px; 
198        align-items: center; 
199
200    .card-doctor__image img{ 
201        object-fit: contain; 
202        max-height: 300px; 
203
204    .card-doctor__image { 
205        justify-self: center; 
206
207    .card-doctor__documents.accordion { 
208        margin-bottom: 15px; 
209
210    .card-doctor-title { 
211        padding: 0 0 10px 0; 
212
213     
214    .carousel-control.image-viewer-base-control { 
215        top: 0; 
216        bottom: 0; 
217        width: 15%; 
218        opacity: 0.5; 
219
220    .carousel-control.image-viewer-base-control-left { 
221      left: 0; 
222
223    .carousel-control.image-viewer-base-control-right { 
224      right: 0; 
225
226    .carousel-control.image-viewer-base-control .glyphicon { 
227      width: 20px; 
228      height: 20px; 
229      display: block; 
230      position: absolute; 
231      top: 50%; 
232      transform: translate(0, -50%); 
233
234    .carousel-control.image-viewer-base-control .lexicon-icon { 
235      position: absolute; 
236      top: 50%; 
237      transform: translate(0, -50%); 
238
239    .carousel-control.image-viewer-base-control .glyphicon-chevron-left { 
240      left: 30px; 
241      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 512 512'%3E%3Cpath class='lexicon-icon-outline' d='M114.106 254.607c0.22 6.936 2.972 13.811 8.272 19.11l227.222 227.221c11.026 11.058 28.94 11.058 39.999 0 11.058-11.026 11.058-28.94 0-39.999l-206.333-206.333c0 0 206.333-206.333 206.333-206.333 11.058-11.059 11.058-28.973 0-39.999-11.058-11.059-28.973-11.059-39.999 0l-227.221 227.221c-5.3 5.3-8.052 12.174-8.273 19.111z'%3E%3C/path%3E%3C/svg%3E"); 
242
243    .carousel-control.image-viewer-base-control .glyphicon-chevron-right { 
244      right: 30px; 
245      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='white'%3E%3Cpath class='lexicon-icon-outline' d='M396.394 255.607c-0.22-6.936-2.973-13.81-8.272-19.111l-227.221-227.221c-11.026-11.059-28.94-11.059-39.999 0-11.058 11.026-11.058 28.941 0 39.999l206.333 206.333c0 0-206.333 206.333-206.333 206.333-11.058 11.058-11.058 28.973 0 39.999 11.059 11.059 28.972 11.059 39.999 0l227.221-227.221c5.3-5.3 8.053-12.175 8.272-19.111z'%3E%3C/path%3E%3C/svg%3E"); 
246
247    .carousel-control.image-viewer-base-control:hover { 
248      opacity: 1; 
249
250     
251    .card-doctor__videos { 
252        display: grid; 
253        grid-template-columns: repeat(3, 1fr); 
254        grid-gap: 15px; 
255        margin-bottom: 30px; 
256
257    .card-doctor__video { 
258        height: 260px; 
259
260     
261    @media (max-width: 1199px){ 
262        .card-doctor__videos { 
263            grid-template-columns: repeat(2, 1fr); 
264
265
266    @media (max-width: 991px){ 
267        .card-doctor__images { 
268            grid-template-columns: repeat(3, 1fr); 
269
270
271    @media (max-width: 768px){ 
272        .card-doctor__row { 
273            display: block; 
274             
275
276        .card-doctor__images { 
277            grid-template-columns: repeat(2, 1fr); 
278
279        .card-doctor__videos { 
280            grid-template-columns: 1fr; 
281
282
283     
284     
285</style> 
286 
287<#macro imageViewer selector> 
288    <script> 
289        YUI().use( 
290          'aui-image-viewer', 
291          function(Y) { 
292            let imageViewer = new Y.ImageViewer( 
293
294                caption: 'Фотогалерея', 
295                captionFromTitle: true, 
296                centered: true, 
297                imageAnim: { 
298                 duration: 1, 
299                 easing: 'easeIn' 
300                }, 
301                intervalTime: 2, 
302                links: '${selector}', 
303                playing: false, 
304                // controlNext: '<span>1212</span>', 
305                // controlPrevious: , 
306                preloadAllImages: false, 
307                preloadNeighborImages: false, 
308                showInfo: true, 
309                showPlayer: true, 
310                zIndex: 223 
311
312
313 
314             
315            imageViewer.render(); 
316
317        ); 
318    </script> 
319</#macro>