1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
2<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
3<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")/>
4<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")/>
5<#assign classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService")/>
6<#assign ddmStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService")/>
7
8<#assign globalGroup = groupLocalService.getFriendlyURLGroup(companyId, "/global")>
9<#assign destMacroClassId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetEntry")>
10<#include "_TEMPLATE_CONTEXT_/${companyId}/${globalGroup.groupId}/${destMacroClassId}/ASSET_ENTRY_MACROS" />
11
12<#assign article = journalArticleLocalService.getArticle(getterUtil.getLong(articleGroupId), .vars['reserved-article-id'].data)>
13<#assign asset = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', article.resourcePrimKey) >
14
15<#assign structureId = article.getStructureId()?lowerCase>
16
17<#assign articleUrl = "">
18
19<#if articleUrl == "" && renderRequest.getAttribute("viewURL")?hasContent>
20 <#assign articleUrl = renderRequest.getAttribute("viewURL")>
21</#if>
22
23<#if articleUrl == "">
24 <#attempt>
25 <#assign articleUrl = asset.getAssetRenderer().getURLViewInContext(themeDisplay, currentUrl)>
26 <#recover>
27 <#assign articleUrl = "#">
28 <#if asset.getAssetRenderer().hasEditPermission(themeDisplay.getPermissionChecker())>
29 <div class="alert alert-warning">
30 Could not generate a proper link for this article (visible only to admins)
31 </div>
32 </#if>
33 </#attempt>
34</#if>
35
36<#if redirectToExternalURL?? && redirectToExternalURL.getData()?hasContent>
37 <#assign articleUrl = redirectToExternalURL.getData()>
38</#if>
39
40<#assign voc_countries = assetVocabularyLocalService.getGroupVocabulary(company.getGroupId(), "Countries") />
41
42<#assign leftColumnSize = "col-md-4"/>
43<#assign rightColumnSize = "col-md-8"/>
44
45<#if structureId == "ioe_publication" >
46 <#assign leftColumnSize = "col-md-2"/>
47 <#assign rightColumnSize = "col-md-10"/>
48</#if>
49
50<div class="row pb-3 mb-3 abstract-row">
51 <div class="${leftColumnSize}">
52 <div class="abstract-img-wrapper">
53 <a href="${articleUrl}">
54 <#if image.getData()?hasContent>
55 <#assign myabstract_image_medium = image.getData()/>
56 <#else>
57 <#assign myabstract_image_medium = "/o/ifad-ioe-modern-theme/images/custom/placeholder/teaser.png" />
58 </#if>
59 <img class="abstract-img-publication"
60 src="${myabstract_image_medium}">
61 </a>
62 </div>
63 </div>
64
65 <div class="${rightColumnSize} abstract-row-content-wrapper">
66 <a href="${articleUrl}">
67 <span class="abstract-row-title">${.vars['reserved-article-title'].data}</span>
68 </a>
69
70 <div class="abstract-row-categories">
71 <#list asset.getCategories() as category >
72 <#if category.getVocabularyId() == voc_countries.getVocabularyId()>
73 <span class="abstract-category">${category.getDescription(locale)}</span>
74 </#if>
75 </#list>
76 </div>
77 <#if structureId == "ioe_publication">
78 <div class="abstract-row-author">${getFormattedDateForIOEArticle(article, publication_date!"", locale, "MMMM yyyy")}</div>
79 </#if>
80
81 <div class="abstract-row-content">
82 ${htmlUtil.escape(stringUtil.shorten(htmlUtil.extractText(long_description.getData()), 200)) }
83 </div>
84
85 <#if structureId == "ioe_publication">
86 <#assign langList = {}>
87 <#assign displayLangList = false>
88
89 <#list article.getAvailableLanguageIds() as articleLocale>
90 <#assign langCode = articleLocale?split("_")[0]>
91
92 <#assign localizedUrl =
93 articleUrl?replace("/${locale.getLanguage()}/", "/${langCode}/")>
94 <#assign langList = langList + {"${localeUtil.fromLanguageId(articleLocale).getDisplayLanguage()}": "${localizedUrl}"}>
95
96 <#-- Display full list only if there are other languages than english -->
97 <#if langCode != "en">
98 <#assign displayLangList = true>
99 </#if>
100 </#list>
101
102 <#if displayLangList>
103 <small class="d-block text-uppercase abstract-row-langs">
104 <span><@liferay.language key="languages" /></span>:
105
106 <#list langList as langName, localizedUrl>
107 <a href="${localizedUrl}">${langName}${langName?hasNext?then(', ','')}</a>
108 </#list>
109 </small>
110 </#if>
111 </#if>
112 </div>
113</div>