Your application
We are always on the lookout for qualified and reliable service providers and mini-jobbers for our clients. You can send your application directly to benefit at work here. We will check your details and will be happy to add you to our placement database if you meet our requirements.
benefit at work - One concept, many solutions
An error occurred while processing the template.
Java method "jdk.proxy3.$Proxy87.getLayout(long, boolean, long)" threw an exception when invoked on jdk.proxy3.$Proxy87 object "com.liferay.layout.internal.service.LayoutLocalServiceWrapper@3885ef92"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: pageLayout = layoutLocalService.getLa... [in template "41279" at line 157, column 9]
- Reached through: #include "${templatesPath}/${template... [in template "20101#20127#21366806" at line 46, column 17]
----
1<#if entries?has_content>
2
3 <#function getStructureFieldName fieldReference>
4 <#return ddmStructure.getDDMFormFieldByFieldReference(fieldReference).getName()/>
5 </#function>
6
7
8 <#function getLatestValue name >
9 <#return docXml.valueOf("//dynamic-element[@name='${ddmStructure.getDDMFormFieldByFieldReference(name).getName()}']/dynamic-content/text()") />
10 </#function>
11
12 <#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
13 <#assign dLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
14 <#assign ddmStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService") />
15 <#assign ddmTemplateLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMTemplateLocalService") />
16 <#assign propertyFactoryUtil = staticUtil['com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil'] />
17 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
18
19 <div class="baw-page-link-wrapper px-0 py-4 container">
20
21 <#list entries as entry>
22 <#if entry.getClassName() == 'com.liferay.journal.model.JournalArticle'>
23
24 <#assign query = ddmTemplateLocalService.dynamicQuery().add(propertyFactoryUtil.forName("name").like("%Aktuelle Highlights Global%")) />
25 <#assign ddmTemplate = ddmTemplateLocalService.dynamicQuery(query) />
26 <#assign templateKey = ddmTemplate[0].getTemplateKey() />
27
28 <#assign article = journalArticleLocalService.getLatestArticle(entry.getClassPK())
29 ddmStructure = article.getDDMStructure()
30 content = article.getContent()
31 docXml = saxReaderUtil.read(content)
32 fieldReference = ddmStructure.getDDMFormFieldByFieldReference('icon')
33 iconClass = 'general'
34 articleValueMap = entry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap()
35
36 />
37
38 <#if (getLatestValue('icon')?has_content)>
39
40 <#assign fieldReference = ddmStructure.getDDMFormFieldByFieldReference('icon')
41 option = fieldReference.getDDMFormFieldOptions().getOptions()[getLatestValue('icon')]
42 iconClass = option.getString(option.getDefaultLocale()) />
43 </#if>
44
45
46 <#include "${templatesPath}/${templateKey}" />
47
48 <#if structureList?seq_contains(structureName)>
49
50 <a href="${link}" class="baw-page-link-wrapper-item">
51 <img class="baw-page-link-wrapper-item-img" src="${imageUrl}" alt="#"/>
52 <div class="baw-page-link-wrapper-item-container">
53 <div class="baw-page-link-wrapper-item-txt">${title}</div>
54 <#if (getLatestValue('icon')?has_content)>
55 <div class="baw-rounded-circle-40-white">
56 <i class="baw-icon ${iconClass} baw-icon-22">
57 </i>
58 </div>
59 </#if>
60 </div>
61 </a>
62 </#if>
63 </#if>
64 <#if entry_index + 1 == entries?size && (entry_index + 1) % 3 != 0>
65 <#if (entry_index + 1) % 3 == 1>
66 <div class="baw-page-link-wrapper-item"></div>
67 <div class="baw-page-link-wrapper-item"></div>
68 <#elseif (entry_index + 1) % 3 == 2>
69 <div class="baw-page-link-wrapper-item"></div>
70 </#if>
71 </#if>
72 </#list>
73 </div>
74</#if>
75
76
77
78
79<style>
80 .baw-page-link-title {
81 color: #F2668B;
82 margin-bottom: 49px;
83 font-size: 56px;
84 }
85
86 .baw-page-link-wrapper {
87 display: flex;
88 flex-wrap: wrap;
89 gap: 23px;
90 justify-content: space-around;
91 }
92
93 .baw-page-link-wrapper-item {
94 display: block;
95 width: calc(33.33% - 23px);;
96 position: relative;
97 }
98
99 .baw-page-link-wrapper-item-img {
100 width: 100%;
101 aspect-ratio: 370/250;
102 border-radius: 20px 20px 0 0;
103 object-fit: cover;
104 }
105
106 .baw-page-link-wrapper-item-container {
107 background-color: #C8758B;
108 width: 100%;
109 height: 24%;
110 padding: 0 20px;
111 display: flex;
112 justify-content: space-between;
113 align-items: center;
114 position: absolute;
115 bottom: 0;
116 }
117
118 .baw-page-link-wrapper-item-txt {
119 color: #FFFFFF;
120 font-size: 16px;
121 }
122
123 .baw-page-link-wrapper-item-icon {
124 aspect-ratio: 1/1;
125 width: 14%;
126 }
127
128 @media screen and (max-width: 1400px) {
129 .baw-page-link-title {
130 padding: 0 220px 0 220px;
131 margin-bottom: 44px;
132 font-size: 52px;
133 }
134
135 .baw-page-link-wrapper {
136 padding: 0 220px 0 220px;
137 gap: 20px;
138 }
139
140 .baw-page-link-wrapper-item {
141 width: calc(33.33% - 20px);;
142 }
143 }
144
145 @media screen and (max-width: 1200px) {
146 .baw-page-link-title {
147 padding: 0 150px 0 150px;
148 margin-bottom: 38px;
149 font-size: 46px;
150 }
151
152 .baw-page-link-wrapper {
153 padding: 0 150px 0 150px;
154 gap: 16px;
155 }
156
157 .baw-page-link-wrapper-item {
158 width: calc(33.33% - 16px);;
159 }
160 }
161
162 @media screen and (max-width: 992px) {
163 .baw-page-link-title {
164 padding: 0 100px 0 100px;
165 margin-bottom: 32px;
166 font-size: 40px;
167 }
168
169 .baw-page-link-wrapper {
170 padding: 0 100px 0 100px;
171 }
172
173 .baw-page-link-wrapper-item {
174 width: calc(50% - 16px);;
175 }
176 }
177
178 @media screen and (max-width: 768px) {
179 .baw-page-link-title {
180 padding: 0 70px 0 70px;
181 margin-bottom: 26px;
182 font-size: 34px;
183 }
184
185 .baw-page-link-wrapper {
186 padding: 0 70px 0 70px;
187 }
188
189 .baw-page-link-wrapper-item-txt {
190 font-size: 12px;
191 }
192 }
193
194 @media screen and (max-width: 576px) {
195 .baw-page-link-title {
196 padding: 0 30px 0 30px;
197 margin-bottom: 20px;
198 font-size: 24px;
199 }
200
201 .baw-page-link-wrapper {
202 padding: 0 30px 0 30px;
203 }
204
205 .baw-page-link-wrapper-item {
206 width: 100%;
207 }
208
209 .baw-page-link-wrapper-item-txt {
210 font-size: 16px;
211 }
212 }
213
214</style>