About - InfraJournal
An error occurred while processing the template.
The following has evaluated to null or missing: ==> author [in template "37304#37346#351634" at line 251, column 6] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if author.getData()?has_content [in template "37304#37346#351634" at line 251, column 1] ----
1<style>
2
3
4.gal-art .swiper {
5
6 overflow: initial;
7 /*overflow-x:clip;*/
8 }
9
10.article-full .article-categories{margin-top:20px;margin-bottom:15px}
11.article-full.video-art .article-categories{margin-top:0px;margin-bottom:15px}
12.article-full .article-title {margin-bottom:30px}
13.article-full .article-subtitle {margin-bottom:20px}
14.article-full .article-author {margin-bottom:50px}
15.article-full .article-content p {text-indent:60px}
16.article-full .article-bio p {text-indent:0px;padding: 5px 0px}
17.journal-content-article{padding-bottom:40px}
18.article-full .article-content p:last-of-type{display:inline}
19.article-full .article-content p:last-of-type:before {content: '';width: 60px;height: 20px;display: inline-block;}
20.article-full .article-content {
21 line-height: 1.3;
22}
23._article-full.video-art .article-content{margin-top:-100px}
24._article-full.video-art .article-social{top:80%}
25
26.article-full .article-box {
27padding: 16px 20px 9px 20px;
28 top: unset;
29}
30.article-full.gal-art .article-box {
31margin: 0 2px 2px;}
32
33
34.article-full #artBox-zoom .article-dida {
35 margin-bottom: unset;
36 min-height: 50px;
37 position: absolute;
38 left: 20px;
39 bottom: -80px;
40 right: 110px;
41}
42
43
44
45.article-full.podcast-art .article-header,
46.article-full.video-art .article-header {display: flex;
47 flex-direction: column;
48 justify-content: center;
49 }
50
51/*.video-art .artBox-zoom .swiper-slide.gallery-image img*/
52.video-art .artBox-zoom .swiper-slide .vimeo-iframe
53{height: 392px}
54
55.gal-art .artBox-zoom .swiper-slide.gallery-image .imgslide,
56.video-art .artBox-zoom .swiper-slide.gallery-image .imgslide,
57.podcast-art .artBox-zoom .swiper-slide.gallery-image .imgslide{
58background-size:cover;height:392px
59}
60.gal-art .artBox-zoom.zoom .swiper-slide.gallery-image .imgslide,
61.video-art .artBox-zoom.zoom .swiper-slide.gallery-image .imgslide,
62.podcast-art .artBox-zoom .swiper-slide.gallery-image .imgslide{
63padding-bottom:60%;height:auto}
64
65.article-full.gal-art .article-social {
66 position: absolute;
67 top: 100%;
68 justify-content: flex-start;
69 padding-right: 26px;
70 min-height: 220px;
71 z-index: 1;
72}
73
74
75.artBox-zoom.zoom{ background-color:transparent, -webkit-box-shadow:none;box-shadow:none}
76/*.artBox-zoom.zoom .vimeo-iframe {_height: 920px; height:calc(100vh - 140px)}}*/
77
78.video-art .artBox-zoom.zoom .swiperGallery {height: calc(100vh - 140px);}
79.video-art .artBox-zoom.zoom,
80.video-art .artBox-zoom.zoom .vimeo-iframe,
81.video-art .artBox-zoom.zoom .swiper-slide.gallery-image .imgslide
82{ height:calc(100vh - 200px);min-height:unset;padding-bottom:0px}
83
84
85.podcast-art .artBox-zoom.zoom .swiperGallery {height: calc(100vh - 250px);}
86.podcast-art .artBox-zoom.zoom,
87.podcast-art .artBox-zoom.zoom .vimeo-iframe,
88.podcast-art .artBox-zoom.zoom .swiper-slide.gallery-image .imgslide
89{ height:calc(100vh - 310px);min-height:unset;padding-bottom:0px}
90
91
92.article-full .article-content h1,
93.article-full .article-content h2,
94.article-full .article-content h3,
95.article-full .article-content h4,
96.article-full .article-content h5,
97.article-full .article-content h6,
98.article-full .article-content h7 {color: #00a}
99
100
101.article-full .hideArrow {display:none !important;}
102.article-full .swiper-button-disabled {opacity:0.2 !important;}
103.article-full .swiper-prev, .article-full .swiper-next{cursor:pointer;display:inline-block}
104
105hr {border-color:black}
106
107.articles-entry .article-tag{margin-bottom:5px}
108.articles-entry h3.article-title {color: black !important;}
109.articles-entry .article-author {font-size:9px !important}
110
111.video-art .vimeo-iframe {background-color:black !important;}
112
113.article-full .article-content .ico_internet {
114 vertical-align: middle;
115}
116
117@media(max-width:768px){
118 .article-full .article-title {margin-bottom: 5px;}
119 .article-full .article-categories {margin-bottom: 5px;margin-top:0px}
120 .article-full .article-author {margin-bottom: 20px;}
121 .article-full .article-subtitle{margin-bottom:5px}
122 .article-full .article-content .ico_internet { width: 16px;height: 16px;}
123 .article-full .article-adt{top:20px;-webkit-box-shadow: unset;-moz-box-shadow: unset;box-shadow: unset;padding: 2rem 10px 1.25rem 10px;}
124.article-full .article-content h3, .h3 {
125 font-size: 20px;
126}
127.article-full.gal-art .article-social{position: relative;
128top: unset;
129min-height: initial;}
130}
131
132.article-full.gal-art #artBox-zoom{
133overflow: hidden;
134}
135
136.article-full.gal-art .article-dida {
137 height: 30px;
138 min-height:unset !important;
139 bottom: -53px !important;
140 right: 110px !important;
141
142 display: flex;
143 align-items: center;
144}
145
146</style>
147
148
149<#assign artTitle = .vars['reserved-article-title'].data />
150<#assign artTitleUrl = .vars['reserved-article-url-title'].data />
151
152<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()>
153<#assign themeDisplay = serviceContext.getThemeDisplay() />
154<#assign artTitleUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
155
156
157<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/>
158<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
159<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
160<#assign dLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
161<#assign browserSniffer = serviceLocator.findService("com.liferay.portal.kernel.servlet.BrowserSniffer") />
162
163<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(scopeGroupId), .vars['reserved-article-id'].data)/>
164<#assign articleID = article.getArticleId()/>
165<#assign articlePK = article.getResourcePrimKey()/>
166<#assign asset = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', articlePK) />
167
168<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()>
169<#assign themeDisplay = serviceContext.getThemeDisplay() />
170<#assign w3c_language_id = localeUtil.toW3cLanguageId(themeDisplay.getLanguageId())/>
171<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() />
172
173<#assign namespace = "article-full"/>
174<#assign articleSize = "" />
175
176<@liferay_util["html-top"]>
177
178<#assign twitterimage = "">
179
180<#list artImage.getData()?split("/") as sValue>
181
182 <#if sValue?has_next>
183 <#if !sValue?is_first>
184 <#assign twitterimage = twitterimage + '/'>
185 </#if>
186 <#assign twitterimage = twitterimage+ sValue>
187 </#if>
188
189</#list>
190
191 <meta property="og:type" content="article" />
192 <meta property="og:image" content="https://www.infrajournal.com${twitterimage}">
193 <#--meta property="og:image:url" content="https://www.infrajournal.com${twitterimage}"-->
194
195 <meta name="twitter:card" content="summary_large_image">
196 <meta name="twitter:site" content="@InfraJournal">
197 <meta name="twitter:creator" content="@InfraJournal">
198 <meta name="twitter:title" content="${artTitle?replace('"','')}">
199 <meta name="twitter:description" content="${artSubtitle.getData()?replace('"','')}">
200 <meta name="twitter:image" content="https://www.infrajournal.com${twitterimage}">
201 <meta name="twitter:image:src" content="https://www.infrajournal.com${twitterimage}">
202</@>
203<#-- ?replace('+','%2B')-->
204<img id="prima_immagine" src="https://www.infrajournal.com${twitterimage}" style="width:1px;height:1px;position:absolute;_top:0px;left:0px">
205
206<#if artType.getData()?has_content>
207 <#if artType.getData() == "img">
208 <#assign articleSize ="long-art" />
209 <#elseif artType.getData() == "imgS">
210 <#assign articleSize ="short-art" />
211 <#elseif artType.getData() == "vid">
212 <#assign articleSize ="video-art" />
213 <#elseif artType.getData() == "pod">
214 <#assign articleSize ="podcast-art" />
215 <#elseif artType.getData() == "gal">
216 <#assign articleSize ="gal-art" />
217 </#if>
218</#if>
219
220<#--<#assign artLinkIN ="${artTitleUrl}" />-->
221<#assign artLinkFB ="${artTitleUrl}" />
222<#assign artLinkLI ="${artTitleUrl}" />
223<#assign artLinkTW ="${artTitleUrl}" />
224
225<#macro social>
226<#-- <a id="instagram" class="social-icon ico_socialIN" href="${artLinkIN}" target="_blank"></a>-->
227 <a id="twitter2" class="social-icon ico_socialTW" href="${artLinkFB}" target="_blank"></a>
228 <a id="linkedin" class="social-icon ico_socialLI" href="${artLinkLI}" target="_blank"></a>
229 <a id="facebook" class="social-icon ico_socialFB" href="${artLinkTW}" target="_blank"></a>
230</#macro>
231
232<#macro assetRelated>
233
234 <h4 class="title-more"><#if w3c_language_id == 'it-IT' >Altri come questo<#else>More like this</#if></h4>
235
236 <#assign preferences = freeMarkerPortletPreferences.getPreferences({
237 "portletSetupPortletDecoratorId": "barebone",
238 "groupId": themeDisplay.getCompanyGroupId()?string,
239 "displayStyle": "ddmTemplate_ARTICLES-RELATED-FTL"
240 }) />
241
242 <@liferay_portlet["runtime"]
243 defaultPreferences="${preferences}"
244 portletProviderAction=portletProviderAction.VIEW
245 portletName="com_liferay_asset_publisher_web_portlet_RelatedAssetsPortlet"
246 />
247
248</#macro>
249
250<#-- AUTORE -->
251<#if author.getData()?has_content >
252<#assign webContentData = jsonFactoryUtil.createJSONObject(author.getData()) />
253
254<#assign NomeAutore = webContentData.getString( "title") />
255<#assign author_obj = journalArticleLocalService.getLatestArticle(webContentData.getLong( "classPK")) />
256<#assign document = saxReaderUtil.read(author_obj.getContentByLocale(locale))>
257<#assign Author_description = document.valueOf("//dynamic-element[@name='Descrizione']/dynamic-content/text()") />
258</#if>
259
260<section class="${namespace} ${articleSize}">
261 <#if artType.getData()?has_content>
262 <#if artType.getData() == "img" || artType.getData() == "imgS">
263 <#if artType.getData() == "imgS">
264 <div class="row">
265 <div class="col-12 col-md-2"></div>
266 <div class="article-header col-12 col-md-7">
267 <p class="article-categories">
268 <#-- list asset.getCategories() as category>
269 <span class="cat-item">${category.name}</span>
270 </#list -->
271
272 <#list categories as category>
273 <#if (category.vocabularyId = 409321)>
274 <#assign categoria = category>
275 <span class="cat-item" ><a href="/${category.getTitle(locale)}" style="text-decoration:underline">${category.getTitle(locale)}</a>
276 <#if !category?is_last> <span style="font-weight:100;font-family:Arial">|</span> </#if></span>
277 </#if>
278 </#list>
279
280 <#list categories as category>
281 <#if (category.vocabularyId = 408411)>
282 <#assign categoria = category>
283 <span class="cat-item">${category.getTitle(locale)}
284 <#if !category?is_last> <span style="font-weight:100;font-family:Arial">|</span> </#if></span>
285 </#if>
286 </#list>
287 </p>
288 <h1 class="article-title">${artTitle}</h1>
289 <h3 class="article-subtitle">${artSubtitle.getData()}</h3>
290 <#if (artAuthor.getData()?has_content)>
291 <p class="article-author">
292 <#if author.getData()?has_content >
293 By <a href="${themeDisplay.getPortalURL()}/${(themeDisplay.getLocale()[0..1])}/autori/-/content/${author_obj.getUrlTitle()}">${NomeAutore}</a>
294 <#else>
295 By ${artAuthor.getData()}
296 </#if></p>
297 </#if>
298
299 <#if (browserSniffer.isMobile(request) || browserSniffer.isIphone(request))>
300 <div class="article-social-2">
301 <@social/>
302 </div>
303 </#if>
304 </div>
305 <div class="col-12 col-md-3"></div>
306 </div>
307 </#if>
308
309 <div class="article-image">
310 <#if (artImage.getData())?? && artImage.getData() != "">
311
312 <img alt="${artImage.getAttribute("alt")}" src="https://www.infrajournal.com${twitterimage?replace('+','%2B')}"/>
313 <#--img class="" alt="${artImage.getAttribute("alt")}" _data-fileentryid="${artImage.getAttribute("fileEntryId")}" src="${artImage.getData()}" /-->
314 </#if>
315 </div>
316
317 <div class="row">
318 <div class="col-12 col-md-2"></div>
319 <div class="col-12 col-md-7">
320 <#if artCaption.getData()?has_content>
321 <p class="article-dida">${artCaption.getData()}</p>
322 <#else>
323 <p class="article-dida">${artImage.getAttribute("alt")}</p>
324 </#if>
325 </div>
326 <div class="col-12 col-md-3"></div>
327
328 <#if articleSize == "short-art">
329 <div class="article-social col-12 col-md-2">
330 <@social/>
331 </div>
332
333 <div class="article-content col-12 col-md-7">
334 <#if artContent.getData()?has_content>
335 ${artContent.getData()}
336 </#if>
337 <span class="ico_internet"></span>
338 <#if artBio.getData()?has_content>
339 <hr>
340 <div class="article-bio">
341
342 ${artBio.getData()}
343
344 </div>
345 <hr>
346 </#if>
347 </div>
348
349 <div class="article-adt vert col-12 col-md-3">
350 <@assetRelated/>
351 </div>
352
353 <#else>
354
355 </#if>
356
357 <#if articleSize == "long-art">
358
359 <div class="col-12 col-md-9 pad0">
360
361 <div class="row">
362 <div class="col-12 Pcol22"> </div>
363 <div class="col-12 Pcol77">
364 <#if artType.getData() == "img">
365 <div class="article-header">
366 <p class="article-categories">
367 <#-- list asset.getCategories() as category>
368 <span class="cat-item">${category.name}</span>
369 </#list -->
370 <#list asset.categories as category>
371 <#if (category.vocabularyId = 409321)>
372 <#assign categoria = category>
373 <span class="cat-item" ><a href="/${category.getTitle(locale)}" style="text-decoration:underline">${category.getTitle(locale)}</a>
374 <span style="font-weight:100;font-family:Arial">|</span> </span>
375 </#if>
376 </#list>
377 <#list asset.categories as category>
378 <#if (category.vocabularyId = 408411)>
379 <#assign categoria = category>
380 <span class="cat-item">${category.getTitle(locale)}
381 <#if !category?is_last> <span style="font-weight:100;font-family:Arial">|</span> </#if></span>
382 </#if>
383 </#list>
384 </p>
385 <h1 class="article-title">${artTitle}</h1>
386 <h3 class="article-subtitle">${artSubtitle.getData()}</h3>
387 <#if (artAuthor.getData()?has_content)>
388 <p class="article-author">
389
390 <#--By ${artAuthor.getData()}-->
391 <#if author.getData()?has_content >
392 By <a href="${themeDisplay.getPortalURL()}/${(themeDisplay.getLocale()[0..1])}/autori/-/content/${author_obj.getUrlTitle()}">${NomeAutore}</a>
393 <#else>
394 By ${artAuthor.getData()}
395 </#if>
396 </p>
397 </#if>
398 </div>
399 </#if>
400 </div>
401 <div class="article-social col-12 Pcol22">
402 <@social/>
403 </div>
404 <div class="article-content col-12 Pcol77">
405 <#if artContent.getData()?has_content>
406 ${artContent.getData()}
407 </#if>
408 <span class="ico_internet"></span>
409 <#--if artBio.getData()?has_content-->
410 <hr>
411 <div class="article-bio">
412 <#if author.getData()?has_content >
413 <a href="${themeDisplay.getPortalURL()}/${(themeDisplay.getLocale()[0..1])}/autori/-/content/${author_obj.getUrlTitle()}">${NomeAutore}</a> - ${Author_description}
414 <#else>
415 ${artAuthor.getData()}
416 <#if artBio.getData()?has_content >
417 - ${artBio.getData()}
418 </#if>
419 </#if>
420
421 </div>
422 <hr>
423 <#--/ #if -->
424 </div>
425 </div>
426 </div>
427
428 <div class="article-adt vert col-12 col-md-3">
429 <@assetRelated/>
430 </div>
431 </#if>
432
433 </#if>
434 <#if artType.getData() == "pod" || artType.getData() == "vid">
435
436 <div class="row">
437
438 <div class="article-header col-12 col-md-6">
439 <p class="article-categories">
440 <#-- list asset.getCategories() as category>
441 <span class="cat-item">${category.name}</span>
442 </#list -->
443 <#list asset.categories as category>
444 <#if (category.vocabularyId = 409321)>
445 <#assign categoria = category>
446 <span class="cat-item" ><a href="/${category.getTitle(locale)}" style="text-decoration:underline">${category.getTitle(locale)}</a>
447 <span style="font-weight:100;font-family:Arial">|</span> </span>
448 </#if>
449 </#list>
450 <#list asset.categories as category>
451 <#if (category.vocabularyId = 408411)>
452 <#assign categoria = category>
453 <span class="cat-item">${category.getTitle(locale)}
454 <#if !category?is_last> <span style="font-weight:100;font-family:Arial">|</span> </#if></span>
455 </#if>
456 </#list>
457 </p>
458 <h1 class="article-title">${artTitle}</h1>
459 <h3 class="article-subtitle"> ${artSubtitle.getData()}</h3>
460
461 <p class="article-author">
462 <#if author.getData()?has_content >
463 By <a href="${themeDisplay.getPortalURL()}/${(themeDisplay.getLocale()[0..1])}/autori/-/content/${author_obj.getUrlTitle()}">${NomeAutore}</a>
464 <#else>
465 By ${artAuthor.getData()}
466 </#if>
467 </p>
468
469
470 <div class="article-social">
471 <@social/>
472 </div>
473 </div>
474 <div class="article-sticky col-12 col-md-6">
475 <div id="artBox-zoom" class="artBox-zoom">
476 <span id="buttonClose" class="ico_close"></span>
477 <#--if getterUtil.getBoolean(checkGallery.getData())-->
478 <#if checkGallery.artGallery.getSiblings()?has_content>
479 <div class="swiper swiperGallery">
480 <div class="swiper-wrapper">
481 <#if artType.getData() == "vid">
482 <div class="swiper-slide gallery-image" data-target="0" >
483 <#if (artVideo.getData())?? && artVideo.getData() != "">
484 <div class="vimeo-iframe" style="_padding:56.25% 0 0 0;position:relative;" >
485 <iframe src="https://player.vimeo.com/video/${artVideo.getData()}?title=0&byline=0&portrait=0" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
486 </div>
487 <#if artCaption.getData()?has_content>
488 <span class="article-dida">${artCaption.getData()}</span>
489 <#else>
490 <span class="article-dida">${artImage.getAttribute("alt")}</span>
491 </#if>
492 </#if>
493 </div>
494 </#if>
495 <div class="swiper-slide gallery-image" data-target="0">
496 <#if (artImage.getData())?? && artImage.getData() != "">
497 <#--img class="" alt="${artImage.getAttribute("alt")}" data-fileentryid="${artImage.getAttribute("fileEntryId")}" src="${artImage.getData()}" /-->
498 <div class="imgslide" style="background-image:url('${artImage.getData()}');"></div>
499 <span class="article-dida">${artImage.getAttribute("alt")} </span>
500 </#if>
501 </div>
502 <#list checkGallery.artGallery.getSiblings() as cur_checkGallery_artGallery>
503 <#if (cur_checkGallery_artGallery.getData())?? && cur_checkGallery_artGallery.getData() != "">
504 <div class="swiper-slide gallery-image" data-target="${cur_checkGallery_artGallery?counter - 0}">
505 <img alt="${cur_checkGallery_artGallery.getAttribute("alt")}" data-fileentryid="${cur_checkGallery_artGallery.getAttribute("fileEntryId")}" src="${cur_checkGallery_artGallery.getData()}" />
506 <span class="article-dida">${cur_checkGallery_artGallery.getAttribute("alt")} </span>
507 </div>
508 </#if>
509 </#list>
510 </div>
511 </div>
512 <div class="article-box">
513 <div class="swiper-control">
514 <div class="swiper-prev ico_arrowLeft" tabindex="-1" role="button" aria-label="undefined" aria-controls="Previous slide" aria-disabled="false"> </div>
515 <div class="swiper-next ico_arrowRight" tabindex="0" role="button" aria-label="undefined" aria-controls="Next slide" aria-disabled="false"> </div>
516 </div>
517 <#if artType.getData() == "pod">
518 <div class="article-player">
519 <audio class="" width="100%" controls controlsList="nodownload">
520 <source src="${artPodcast.getData()}" type="audio/mpeg">
521 </audio>
522 <p class="article-dida">Audio: Listen to the podcast.</p>
523 </div>
524 </#if>
525 </div>
526 </#if>
527 <#--else>
528 <#if artType.getData() == "vid">
529 <#if (artVideo.getData())?? && artVideo.getData() != "">
530 <div class="vimeo-iframe" style="padding:56.25% 0 0 0;position:relative;" >
531 <iframe src="https://player.vimeo.com/video/${artVideo.getData()}?title=0&byline=0&portrait=0" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
532 </div>
533 <#if artCaption.getData()?has_content>
534 <span class="article-dida">${artCaption.getData()}</span>
535 <#else>
536 <span class="article-dida">${artImage.getAttribute("alt")}</span>
537 </#if>
538 </#if>
539 </#if>
540 <#if artType.getData() == "pod">
541 <#if (artImage.getData())?? && artImage.getData() != "">
542 <div class="swiper-slide gallery-image">
543 <img class="" alt="${artImage.getAttribute("alt")}" data-fileentryid="${artImage.getAttribute("fileEntryId")}" src="${artImage.getData()}" />
544 <span class="article-dida">${artImage.getAttribute("alt")} </span>
545 </div>
546 </#if>
547 <div class="article-player">
548 <audio class="" width="100%" controls controlsList="nodownload">
549 <source src="${artPodcast.getData()}" type="audio/mpeg">
550 </audio>
551 <p class="article-dida">Audio: Listen to the podcast. Also available on Spotify.</p>
552 </div>
553 </#if>
554 <#if artType.getData() == "img" || artType.getData() == "imgS">
555 <#if (artImage.getData())?? && artImage.getData() != "">
556 <img class="" alt="${artImage.getAttribute("alt")}" data-fileentryid="${artImage.getAttribute("fileEntryId")}" src="${artImage.getData()}" />
557 <span class="article-dida">${artImage.getAttribute("alt")} </span>
558 </#if>
559 </#if>
560 </#if-->
561
562 </div>
563
564 </div>
565 <div class="article-content col-12 col-md-6">
566 <div class="article-block"></div>
567 <#if artContent.getData()?has_content>
568 ${artContent.getData()}
569 </#if>
570 <span class="ico_internet"></span>
571
572 <hr>
573 <div class="article-bio">
574
575 <#if author.getData()?has_content >
576 <a href="${themeDisplay.getPortalURL()}/${(themeDisplay.getLocale()[0..1])}/autori/-/content/${author_obj.getUrlTitle()}">${NomeAutore}</a> - ${Author_description}
577 <#else>
578 <#if author.getData()?has_content >
579 <a href="${themeDisplay.getPortalURL()}/${(themeDisplay.getLocale()[0..1])}/autori/-/content/${author_obj.getUrlTitle()}">${NomeAutore}</a> - ${Author_description}
580 <#else>
581 ${artAuthor.getData()}
582 <#if artBio.getData()?has_content >
583 - ${artBio.getData()}
584 </#if>
585 </#if>
586 </#if>
587
588 </div>
589 <hr>
590
591 </div>
592
593 <div class="article-adt horiz notop col-12 col-md-10">
594 <@assetRelated/>
595 </div>
596
597 </div>
598
599 </#if>
600 <#if artType.getData() == "gal">
601
602 <div class="row">
603
604 <div class="article-header col-12 col-md-6">
605 <p class="article-categories">
606 <#-- list asset.getCategories() as category>
607 <span class="cat-item">${category.name}</span>
608 </#list -->
609 <#list asset.categories as category>
610 <#if (category.vocabularyId = 409321)>
611 <#assign categoria = category>
612 <span class="cat-item" ><a href="/${category.getTitle(locale)}" style="text-decoration:underline">${category.getTitle(locale)}</a>
613 <span style="font-weight:100;font-family:Arial">|</span> </span>
614 </#if>
615 </#list>
616 <#list asset.categories as category>
617 <#if (category.vocabularyId = 408411)>
618 <#assign categoria = category>
619 <span class="cat-item">${category.getTitle(locale)}
620 <#if !category?is_last> <span style="font-weight:100;font-family:Arial">|</span> </#if></span>
621 </#if>
622 </#list>
623 </p>
624 <h1 class="article-title">${artTitle}</h1>
625 <h3 class="article-subtitle"> ${artSubtitle.getData()}</h3>
626
627 <p class="article-author">
628 <#if author.getData()?has_content >
629 By <a href="${themeDisplay.getPortalURL()}/${(themeDisplay.getLocale()[0..1])}/autori/-/content/${author_obj.getUrlTitle()}">${NomeAutore}</a>
630 <#else>
631 By ${artAuthor.getData()}
632 </#if>
633 </p>
634
635
636 <div class="article-social">
637 <@social/>
638 </div>
639 </div>
640 <div class="article-sticky col-12 col-md-6">
641 <div id="artBox-zoom" class="artBox-zoom">
642 <span id="buttonClose" class="ico_close"></span>
643 <#--if getterUtil.getBoolean(checkGallery.getData())-->
644 <#if checkGallery.artGallery.getSiblings()?has_content>
645 <div class="swiper swiperGallery">
646 <div class="swiper-wrapper">
647
648 <#if (artImage.getData())?? && artImage.getData() != "">
649 <div class="swiper-slide gallery-image" data-target="0">
650
651 <#--img class="" alt="${artImage.getAttribute("alt")}" data-fileentryid="${artImage.getAttribute("fileEntryId")}" src="${artImage.getData()}" /-->
652 <a class="expand" href="${artImage.getData()}" data-fancybox="gallery" data-caption="${artImage.getAttribute("alt")}">
653 <div class="imgslide" style="background-image:url('${artImage.getData()}');"></div>
654 </a>
655 <span class="article-dida">${artImage.getAttribute("alt")} </span>
656
657 </div>
658 </#if>
659 <#list checkGallery.artGallery.getSiblings() as cur_checkGallery_artGallery>
660 <#if (cur_checkGallery_artGallery.getData())?? && cur_checkGallery_artGallery.getData() != "">
661 <div class="swiper-slide gallery-image" data-target="${cur_checkGallery_artGallery?counter - 0}">
662 <a class="expand" href="${cur_checkGallery_artGallery.getData()}" data-fancybox="gallery" data-caption="${cur_checkGallery_artGallery.getAttribute("alt")}">
663 <img alt="${cur_checkGallery_artGallery.getAttribute("alt")}" data-fileentryid="${cur_checkGallery_artGallery.getAttribute("fileEntryId")}" src="${cur_checkGallery_artGallery.getData()}" /></a>
664
665 <span class="article-dida">${cur_checkGallery_artGallery.getAttribute("alt")} </span>
666 </div>
667 </#if>
668 </#list>
669 </div>
670 </div>
671 <div class="article-box">
672 <div class="swiper-control">
673 <div class="swiper-prev ico_arrowLeft" tabindex="-1" role="button" aria-label="undefined" aria-controls="Previous slide" aria-disabled="false"> </div>
674 <div class="swiper-next ico_arrowRight" tabindex="0" role="button" aria-label="undefined" aria-controls="Next slide" aria-disabled="false"> </div>
675 </div>
676 <#if artType.getData() == "pod">
677 <div class="article-player">
678 <audio class="" width="100%" controls controlsList="nodownload">
679 <source src="${artPodcast.getData()}" type="audio/mpeg">
680 </audio>
681 <p class="article-dida">Audio: Listen to the podcast.</p>
682 </div>
683 </#if>
684 </div>
685 </#if>
686 <#--else>
687 <#if artType.getData() == "vid">
688 <#if (artVideo.getData())?? && artVideo.getData() != "">
689 <div class="vimeo-iframe" style="padding:56.25% 0 0 0;position:relative;" >
690 <iframe src="https://player.vimeo.com/video/${artVideo.getData()}?title=0&byline=0&portrait=0" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe>
691 </div>
692 <#if artCaption.getData()?has_content>
693 <span class="article-dida">${artCaption.getData()}</span>
694 <#else>
695 <span class="article-dida">${artImage.getAttribute("alt")}</span>
696 </#if>
697 </#if>
698 </#if>
699 <#if artType.getData() == "pod">
700 <#if (artImage.getData())?? && artImage.getData() != "">
701 <div class="swiper-slide gallery-image">
702 <img class="" alt="${artImage.getAttribute("alt")}" data-fileentryid="${artImage.getAttribute("fileEntryId")}" src="${artImage.getData()}" />
703 <span class="article-dida">${artImage.getAttribute("alt")} </span>
704 </div>
705 </#if>
706 <div class="article-player">
707 <audio class="" width="100%" controls controlsList="nodownload">
708 <source src="${artPodcast.getData()}" type="audio/mpeg">
709 </audio>
710 <p class="article-dida">Audio: Listen to the podcast. Also available on Spotify.</p>
711 </div>
712 </#if>
713 <#if artType.getData() == "img" || artType.getData() == "imgS">
714 <#if (artImage.getData())?? && artImage.getData() != "">
715 <img class="" alt="${artImage.getAttribute("alt")}" data-fileentryid="${artImage.getAttribute("fileEntryId")}" src="${artImage.getData()}" />
716 <span class="article-dida">${artImage.getAttribute("alt")} </span>
717 </#if>
718 </#if>
719 </#if-->
720
721 </div>
722
723 </div>
724 <div class="article-content col-12 col-md-6">
725 <div class="article-block"></div>
726 <#if artContent.getData()?has_content>
727 ${artContent.getData()}
728 </#if>
729 <span class="ico_internet"></span>
730
731 <hr>
732 <div class="article-bio">
733
734 <#if author.getData()?has_content >
735 <a href="${themeDisplay.getPortalURL()}/${(themeDisplay.getLocale()[0..1])}/autori/-/content/${author_obj.getUrlTitle()}">${NomeAutore}</a> - ${Author_description}
736 <#else>
737 <#if author.getData()?has_content >
738 <a href="${themeDisplay.getPortalURL()}/${(themeDisplay.getLocale()[0..1])}/autori/-/content/${author_obj.getUrlTitle()}">${NomeAutore}</a> - ${Author_description}
739 <#else>
740 ${artAuthor.getData()}
741 <#if artBio.getData()?has_content >
742 - ${artBio.getData()}
743 </#if>
744 </#if>
745 </#if>
746
747 </div>
748 <hr>
749
750 </div>
751
752 <div class="article-adt horiz notop col-12 col-md-10">
753 <@assetRelated/>
754 </div>
755
756 </div>
757
758 </#if>
759
760
761 </#if>
762
763
764</section>
765
766<script>
767$('.article-social #twitter2').on('click',function(e){
768 e.preventDefault();
769 window.open('https://twitter.com/intent/tweet?url='+linkshare, '','width=550,height=420');
770 return false;
771 });
772
773
774 var swiperGallery = new Swiper('.swiper.swiperGallery', {
775 autoHeight: true,
776 slidesPerView: "1",
777 navigation: {
778 nextEl: ".swiper-next",
779 prevEl: ".swiper-prev",
780 },
781 });
782</script>
783<script>
784
785 <#if artType.getData() != "gal">
786 function process(){
787 if( $(window).width() > 767){
788 $('.artBox-zoom .swiper').click(function(){
789 $('.artBox-zoom').addClass('zoom');
790 });
791 $('#buttonClose').click(function(e){
792 $('.artBox-zoom').removeClass('zoom');
793 e.stopPropagation();
794 });
795 } else {
796 }
797 }
798 process();
799 $(window).resize(function(){
800 process()
801 });
802
803 </#if>
804
805 $( document ).ready(function() {
806 if( $('#artRelated').length ) // use this if you are using id to check
807 { }
808 else {
809 $('.article-adt.vert').css("visibility","hidden");
810 $('.article-adt.horiz').css("display","none");
811 }
812 });
813</script>
814<style>
815#buttonClose {
816
817filter: invert(1);
818 /*-webkit-filter: drop-shadow(1px 1px 0 white)
819 drop-shadow(-1px 1px 0 white)
820 drop-shadow(1px -1px 0 white)
821 drop-shadow(-1px -1px 0 white);
822
823 filter: drop-shadow(1px 1px 0 white)
824 drop-shadow(-1px 1px 0 white)
825 drop-shadow(1px -1px 0 white)
826 drop-shadow(-1px -1px 0 white);*/
827 }
828
829 .article-adt.notop {
830 top:0px;
831 -webkit-box-shadow: none;
832 -moz-box-shadow: none;
833 box-shadow: none;
834 }
835
836 .article-full.video-art .row,
837 .article-full.podcast-art .row{padding:0 0 0 20px !important}
838 .vimeo-iframe:after {
839 content: ' ';
840 z-index: 10000;
841 width: 100%;
842 height: 83%;
843 position: absolute;
844 top: 0px;
845 display: block;
846 cursor:pointer
847 }
848
849 @media (max-width:768px){
850 .vimeo-iframe:after {content:none}
851 }
852
853 .artBox-zoom.zoom {
854 position: ABSOLUTE;
855 width: calc(200% + 20px);
856 }
857
858 @media (max-width:768px){
859 .artBox-zoom.zoom {width:100%;}
860 }
861 @media (min-width: 768px){
862
863 .artBox-zoom.zoom.zoom .vimeo-iframe {
864 pointer-events: auto !important;}
865 .article-sticky {
866 position:-webkit-sticky; /* Safari */
867 position: sticky;
868 top:0px;
869 z-index:5;
870 }
871}
872@media (max-width: 767px){
873.article-full.podcast-art .article-sticky, .article-full.video-art .article-sticky {
874 min-width: calc(100% + 20px);}
875}
876</style>
877
878<script>
879jQuery(document).on('click', function(e) {
880 if(jQuery(e.target).hasClass('hamNav')){
881 e.preventDefault();
882 return;
883 } else {
884 if(jQuery("#navigationCollapseIJ").hasClass('show')){
885 jQuery('#hamNav').click();
886 }
887 }
888});
889</script>