An error occurred while processing the template.
Java method "it.dvel.rcf.profile.integration.model.impl.ProductImpl.getLineTitle(Locale)" threw an exception when invoked on it.dvel.rcf.profile.integration.model.impl.ProductImpl object "{uuid=1c0801cc-2485-1154-97bc-8f662c1d3f9b, productId=384, companyId=20101, groupId=20128, userId=20130, userName=Eighty Twenty, createDate=Tue Nov 02 15:15:31 GMT 2021, modifiedDate=Mon Nov 18 15:22:24 GMT 2024, code=STP0681, productTypeName=Active Speakers, name=SUB 905-AS II, nameSearchable=SUB905ASII, urlTitle=sub-905-as-ii, subtitle=<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US,it_IT,es_ES,fr_FR,de_DE\" default-locale=\"en_US\"><Subtitle language-id=\"en_US\">ACTIVE SUBWOOFER</Subtitle><Subtitle language-id=\"de_DE\">AKTIVER SUBWOOFER</Subtitle><Subtitle language-id=\"es_ES\">SUB-BAJO ACTIVO</Subtitle><Subtitle language-id=\"fr_FR\">SUBWOOFER ACTIF</Subtitle><Subtitle language-id=\"it_IT\">SUBWOOFER ATTIVO</Subtitle></root>, description=<?xml version='1.0' encoding='UTF-8'?><root available-locales=\"en_US,it_IT,es_ES,fr_FR,de_DE\" default-locale=\"en_US\"><Description language-id=\"en_US\">The SUB 905-AS II active subwoofer is ideal for building powerful subwoofer satellite systems where compactness and high sound levels are required at the same time. The SUB 905-AS has the most advanced RCF woofer technology, coupled with a powerful 2200 W digital amplifier. It offers the perfect blend of bass reproduction, high SPL and compact dimensions for mobile use by bands or DJs.</Description><Description language-id=\"de_DE\">Der aktive Subwoofer SUB 905-AS II ist ideal für den Aufbau leistungsstarker Subwoofer-Satellitensysteme, wenn gleichzeitig Kompaktheit und hohe Schalldrücke gefordert sind. Im SUB 905-AS trifft die fortschrittlichste Tieftöner-Technologie von RCF auf eine durchsetzungsfähige 2200-Watt-Digitalendstufe. Das Ergebnis ist eine perfekte Mischung aus Tieftonwiedergabe, hohem Schalldruckpegel und kompakter Größe für den mobilen Einsatz für Bands oder DJs.</Description><Description language-id=\"es_ES\">El SUB 905-AS II es un sub-bajo (subwoofer) activo ideal para configurar potentes sistemas satélites de sub-bajos en los que se requieran simultáneamente un tamaño compacto y altos niveles de presión sonora. El SUB 905-AS dispone de la más avanzada tecnología de RCF en lo que se refiere a altavoces de bajos, que se combina con un potente amplificador digital de 2200W. Ofrece la fusión perfecta de reproducción de bajos, alto SPL y dimensiones compactas para un uso portátil con bandas y DJs</Description><Description language-id=\"fr_FR\">Le subwoofer actif SUB 905-AS II est idéal pour la construction de puissants systèmes de subwoofer satellite où la compacité et des niveaux sonores élevés sont requis en même temps. SUB 905-AS dispose de la plus récente technologie de woofer RCF, associée à un amplificateur numérique puissant de 2200 W. Il offre le mélange parfait de reproduction des basses, SPL élevé et dimensions compactes pour une utilisation mobile par les groupes ou les DJ.</Description><Description language-id=\"it_IT\">Il subwoofer attivo SUB 905-AS II è ideale per la costruzione di potenti impianti di subwoofer satellite dove sono richiesti compattezza e alti livelli sonori allo stesso tempo. Il SUB 905-AS è dotato della più avanzata tecnologia woofer RCF, abbinata ad un potente amplificatore digitale da 2200 W. Offre la perfetta combinazione di riproduzione dei bassi, alto livello di pressione acustica e dimensioni compatte per l'utilizzo mobile da parte di band e DJ.</Description></root>, type=PRODOTTO, accessoryTypeCode=, publication=RCF, ratio=100, readMoreURL=, youTubeVideos=, youTubeURL=, active=true}"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${relatedProduct.getLineTitle(locale)}  [in template "20101#20128#819037" at line 171, column 73]
----
1<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
2<#assign journalArticleId = .vars['reserved-article-id'].data> 
3<#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]> 
4<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]> 
5<#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/> 
6<#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) > 
7<#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
8<#assign parentLayout = LayoutLocalService.getLayout(layout.getAncestorPlid()) /> 
9<#assign parentLayoutUrl = parentLayout.getFriendlyURL(locale) /> 
10<#assign journalArticle = journalArticleLocalService.getLatestArticle(scopeGroupId, journalArticleId) /> 
11<#assign relatedArticles = rcfTemplateHelper.getRelatedAssets(journalArticle, 'com.liferay.journal.model.JournalArticle', 'News Liferay 6.2') /> 
12<#assign relatedProducts = rcfTemplateHelper.getRelatedAssets(journalArticle, 'it.dvel.rcf.profile.integration.model.Product', '') /> 
13 
14<div class="news-detail"> 
15	<div class="bg-white pb-5"> 
16		<div class="py-4 px-2 bg-lighter mb-7 to-back"> 
17			<div class="container-fluid container-fluid-max-xl"> 
18				<a href="javascript: window.history.back();" class="d-flex align-items-center"> 
19					<i class="icon-arrow-right-custom"></i> 
20					<span class="pl-3"><@liferay.language key="back" /></span> 
21				</a> 
22			</div> 
23		</div> 
24		<div class="container-fluid container-fluid-max-xl px-4"> 
25			<div class="mb-2"> 
26				<span class="font-weight-medium category mr-3"> 
27					<#list categoryList as category> 
28						<span class="pr-3">${category.getName()}</span> 
29					</#list> 
30				</span> 
31				<span class="date"> 
32					<#setting time_zone = languageUtil.get(locale, "template-timezone") />  
33					<#assign originalLocale = locale />  
34					<#setting locale = localeUtil.getDefault() /> 
35					<#assign displaydate = .vars['reserved-article-display-date'].data> 
36					<#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")> 
37					<#setting locale = originalLocale />  
38					${displaydate?string["dd MMM yyyy"]} 
39				</span> 
40			</div> 
41			 
42			<#if (FieldsGroup52652497.Text78515013.getData())??> 
43				<h1 class="mb-4 font-family-narrow-normal px-0">${FieldsGroup52652497.Text78515013.getData()}</h1> 
44			</#if> 
45			 
46			<#if FieldsGroup52652497.Upload45315688.getSiblings()?has_content> 
47				<div class="mb-6"> 
48					<div class="owl-carousel owl-theme" id="owl-carousel-hp"> 
49						<#list FieldsGroup52652497.Upload45315688.getSiblings() as cur_FieldsGroup52652497_Upload45315688> 
50							<div class="slide d-flex align-items-center justify-content-center" style="background-image:url(${cur_FieldsGroup52652497_Upload45315688.getData()})"> 
51							</div> 
52						</#list> 
53					</div> 
54				</div> 
55				<div class="d-none"> 
56					<#list FieldsGroup52652497.Upload45315688.getSiblings() as cur_FieldsGroup52652497_Upload45315688> 
57							<img src="${cur_FieldsGroup52652497_Upload45315688.getData()}" /> 
58						</#list> 
59				</div> 
60			</#if> 
61			 
62			 
63			<div class="d-md-flex align-items-center justify-content-between mb-md-9 mb-5"> 
64				<div class="social h6 mb-0 py-2 pl-2 mb-3 mb-md-0"> 
65					<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
66					<a href="http://www.linkedin.com/shareArticle?mini=true&url=${currentUrl}&title=${FieldsGroup52652497.Text78515013.getData()}" class="px-2" target="_blank"> 
67						<i class="icon-linkedin-custom px-1"></i> 
68					</a> 
69					<a href="https://www.facebook.com/sharer/sharer.php?u=${currentUrl}" class="px-2" target="_blank"> 
70						<i class="icon-facebook-custom px-1"></i> 
71					</a> 
72					<a href="https://twitter.com/intent/tweet?url=${currentUrl}" class="px-2" target="_blank"> 
73						<i class="icon-twitter-custom px-1"></i> 
74					</a> 
75				</div> 
76			</div> 
77		</div> 
78		<div class="container-fluid container-fluid-max-xl px-md-7 px-lg-9 px-4"> 
79			<#if FieldsGroup52652497.FieldsGroup95339333.getSiblings()?has_content> 
80				<#list FieldsGroup52652497.FieldsGroup95339333.getSiblings() as node> 
81					<div class="mb-md-7 mb-4"> 
82						<#if (FieldsGroup52652497.FieldsGroup95339333.Text94801507.getData())??> 
83							<h6 class="mb-md-6 mb-4">${node.Text94801507.getData()}</h6> 
84						</#if> 
85						<#if (node.RichText63313118.getData())??> 
86							<div class="mb-md-7 mb-4 paragraph font-family-narrow-normal"> 
87								${node.RichText63313118.getData()} 
88							</div> 
89						</#if> 
90						<#if (node.RichText45781737.getData())??> 
91							<div class="row mb-md-7 mb-4"> 
92								<#if (node.Image42436245.getData())?? && node.Image42436245.getData() != ""> 
93									<div class="col-md-8 mb-4 mb-md-0"> 
94										<img alt="${node.Image42436245.getAttribute("alt")}" data-fileentryid="${node.Image42436245.getAttribute("fileEntryId")}" src="${node.Image42436245.getData()}" class="w-100"/> 
95									</div> 
96									<#if (node.RichText45781737.getData())?? && node.RichText45781737.getData() != ""> 
97										<div class="col-md-4 font-family-narrow-normal"> 
98											${node.RichText45781737.getData()} 
99										</div> 
100									</#if> 
101								<#else> 
102									<#if (node.RichText45781737.getData())?? && node.RichText45781737.getData() != ""> 
103										<div class="col-md-12 font-family-narrow-normal"> 
104											${node.RichText45781737.getData()} 
105										</div> 
106									</#if> 
107								</#if> 
108							</div> 
109						</#if> 
110						<#if (node.Text34883111.getData())?? && node.Text34883111.getData() != ""> 
111							<div class="blockquote font-family-narrow-normal position-relative mb-7"> 
112								${node.Text34883111.getData()} 
113							</div> 
114						</#if> 
115					</div> 
116				</#list> 
117			</#if> 
118			<#if FieldsGroup52652497.FieldsGroup17972647.getData() !=''> 
119				<div class="mb-md-7 mb-4"> 
120					<#list FieldsGroup52652497.FieldsGroup17972647.getSiblings() as node> 
121						<div class="mb-2"> 
122							<#if (node.Text21652173.getData())??> 
123								<a target="_blank" href="${node.Text21652173.getData()}" class="d-flex align-items-center font-family-narrow-normal"> 
124									<i class="icon-download-custom mr-3 h5 font-weight-normal mb-0"></i> 
125									<#if node.Text31160069.getData() !=''> 
126										${node.Text31160069.getData()} 
127									<#else> 
128										<@liferay.language key="download" /> 
129									</#if> 
130								</a> 
131							</#if> 
132						</div> 
133					</#list> 
134				</div> 
135			</#if>	 
136		</div> 
137	</div> 
138	 
139	<#if relatedProducts?has_content> 
140	<div class="bg-lighter"> 
141	<div class="container-fluid container-fluid-max-xl pt-7 pb-8 px-4"> 
142			<h5 class="font-weight-normal mb-5 text-center secondary"><@liferay.language key="related-products" /></h5> 
143			<div class="owl-carousel owl-theme" id="owl-carousel-rel-prod"> 
144				<#list relatedProducts as relatedProduct> 
145				<#assign productFeatures = relatedProduct.getProductFeatures(true) /> 
146				<#assign productBadges2 = relatedProduct.getBadges(2) /> 
147				<#assign productBadges1 = relatedProduct.getBadges(1) /> 
148				 
149					<div class="related-news related-prod mb-4 mb-md-0 h-100"> 
150						<div class="bg-white h-100 p-5 position-relative rounded-sm d-flex flex-column"> 
151							<#if productBadges2?has_content> 
152								<#assign productStatusStyle = productBadges2[0].getBackColor() /> 
153								<div class="status px-4 mb-5 pt-3" style="border-color:${productStatusStyle}!important"> 
154									<#list productBadges2 as productBadge2> 
155										<div class="border-0 badge" style="color: ${productBadge2.getBackColor()}">${productBadge2.getCode()}</div> 
156									</#list> 
157								</div> 
158							</#if> 
159							<div class="image d-flex align-items-end mb-5">							 
160								<a data-senna-off="true" href="${portal.getLayoutFullURL(relatedProduct.getFirstAvailableLayout(rcfCurrentPublication), themeDisplay)}" class="d-flex align-items-center justify-content-center"> 
161									<img src="${relatedProduct.getFirstAvailableCoverImageURL(rcfCurrentPublication, themeDisplay)}" class="w-100" /> 
162								</a> 
163							</div> 
164							<div class="status normal mb-4 pt-3"> 
165									<#list productBadges1 as productBadge1> 
166										<div class="border-0 badge" style="background-color: ${productBadge1.getBackColor()}; color: ${productBadge1.getFontColor()};">${productBadge1.getCode()}</div> 
167									</#list> 
168							</div> 
169							<div class="mb-4"> 
170								<div class="meta font-weight-medium underline mb-3"> 
171									${relatedProduct.getLineTitle(locale)} 
172								</div> 
173								<h4 class="font-weight-medium mb-3 text-uppercase">${relatedProduct.name}</h4> 
174								<p class="mb-3 font-weight-medium text-uppercase">${relatedProduct.getSubtitle(locale)}</p> 
175								<small class="mb-3 font-family-narrow-normal d-block"> 
176									<ul class="mb-5 font-family-narrow-normal px-0"> 
177										<#list productFeatures as productFeature> 
178											<li>${productFeature.getTitle(locale)} 
179										</#list> 
180									</ul> 
181								</small> 
182							</div> 
183							<div class="mt-auto"> 
184								<#if relatedProduct.hasLayout(rcfCurrentPublication)> 
185									<a data-senna-off="true" href="${portal.getLayoutFullURL(relatedProduct.getFirstAvailableLayout(rcfCurrentPublication), themeDisplay)}" class="btn btn-link-normal"> 
186										<@liferay.language key="learn-more" /> 
187									</a> 
188								</#if> 
189							</div> 
190							</div> 
191					</div> 
192				</#list> 
193			</div> 
194		</div> 
195		</div> 
196		</#if> 
197 
198	<#if relatedArticles?has_content> 
199		<div class="container-fluid container-fluid-max-xl pt-8 pb-4 px-4"> 
200			<h5 class="font-weight-normal mb-5 text-center"><@liferay.language key="other" /> <@liferay.language key="news" /></h5> 
201			<div class="row pt-7"> 
202				<#list relatedArticles as relatedArticle> 
203						<#assign categoryListEntry=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",relatedArticle.resourcePrimKey) > 
204						<#assign imageURL = rcfTemplateHelper.getJournalArticleField(relatedArticle, locale, 'FieldsGroup52652497.Upload45315688', 'url') /> 
205						<#assign title = rcfTemplateHelper.getJournalArticleField(relatedArticle, locale, 'FieldsGroup52652497.Text78515013') /> 
206						<#assign entryTitle = relatedArticle.getTitle(locale) /> 
207						<#if validator.isNull(title)>  
208							<#assign title = entryTitle />  
209						</#if>  
210						<#assign summary = relatedArticle.getDescription(locale) /> 
211						<#assign text = rcfTemplateHelper.getJournalArticleField(relatedArticle, locale, 'FieldsGroup52652497.FieldsGroup95339333.RichText63313118') /> 
212						<#if validator.isNull(summary)>  
213							<#assign summary = text />  
214						</#if>  
215						<div class="col-md-6 related-news mb-5"> 
216							<div class="bg-white h-100"> 
217								<div class="image bg-secondary" style="background-image:url(${imageURL})"> 
218								</div> 
219								<div class="p-5 pb-8"> 
220									<div class="meta"> 
221												<span class="font-weight-medium pr-3 text-uppercase"> 
222													<#list categoryListEntry as category> 
223														${category.getName()} 
224													</#list> 
225												</span> 
226												<span> 
227														${relatedArticle.createDate?string["dd MMM yyyy"]} 
228												</span> 
229									</div> 
230									<h6 class="font-weight-medium mb-3"> 
231										${title} 
232									</h6> 
233									<small class="mb-5 font-family-narrow-normal d-block">${stringUtil.shorten(htmlUtil.stripHtml(summary), 250)}</small> 
234									<a href="/-/${relatedArticle.urlTitle}" class="btn btn-link-normal"> 
235										<@liferay.language key="learn-more" /> 
236									</a> 
237								</div> 
238							</div> 
239						</div> 
240				</#list> 
241			</div> 
242		</div> 
243	</#if> 
244</div> 
245<script> 
246	var owl = $("#owl-carousel-hp").owlCarousel({ 
247		loop:true, 
248    nav:false, 
249		dots:true, 
250		items:1 
251	}); 
252	$("#owl-carousel-rel-prod").owlCarousel({ 
253	    margin:20, 
254	    nav:false, 
255			dots:true, 
256			items:3, 
257			responsive : { 
258				0 : { 
259						items:1 
260				}, 
261				768 : { 
262						items:2 
263				}, 
264				1000 : { 
265						items:3 
266
267
268	}); 
269</script> 
270<style> 
271 
272	@media only screen and (min-width: 600px) and (max-width: 768px){ 
273		.news-detail #owl-carousel-hp .slide { 
274			height:400px 
275
276
277	@media only screen and (max-width: 600px){ 
278		.news-detail #owl-carousel-hp .slide { 
279			height:200px 
280
281
282</style> 
Pulsante Torna su con Immagine
...
Torna su
Follow us on
Icone allineate
Linkedin Facebook X Youtube Instagram Spotufy