DXT 3000 TECHNOLOGY AT THE LEONARDO DA VINCI MUSEUM IN MILAN
Buscar productos RCF
Elija el sistema de búsqueda
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=fc31c824-f045-7f39-391f-95d9fd21e736, productId=630, companyId=20101, groupId=20128, userId=20130, userName=Eighty Twenty, createDate=Tue Nov 02 15:31:16 GMT 2021, modifiedDate=Tue Oct 08 16:43:00 GMT 2024, code=STP0276, productTypeName=Passive/PA Speakers, name=DP 1420EN, nameSearchable=DP1420EN, urlTitle=dp-1420en, 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\">UNIDIRECTIONAL ALUMINIUM SOUND PROJECTOR</Subtitle><Subtitle language-id=\"de_DE\">GERICHTETER SOUNDPROJEKTOR AUS ALUMINIUM</Subtitle><Subtitle language-id=\"es_ES\">PROYECTOR UNIDIRECCIONAL DE SONIDO EN ALUMINIO</Subtitle><Subtitle language-id=\"fr_FR\">PROJECTEUR DE SON UNIDIRECTIONNEL EN ALUMINIUM</Subtitle><Subtitle language-id=\"it_IT\">PROIETTORE DI SUONO MONODIREZIONALE IN ALLUMINIO</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\">DP 1420EN is a unidirectional sound projector featuring an elegant aesthetic and easy installation, suitable for the sonorization of commercial and industrial environments where a good sound quality and high intelligibility and efficiency are required. It features a aluminium cylindrical body, grille and bracket. Ground screw available (if needed). Thanks to its IP66 protection grade, it can be installed both indoor and outdoor.</Description><Description language-id=\"de_DE\">Der DP 1420EN ist ein gerichteter Soundprojektor mit eleganter Optik, der sich einfach installieren lässt und in gewerblichen und industriellen Umgebungen eine hervorragende Klangqualität, hohe Sprachverständlichkeit und Effizienz gewährleistet. Das zylindrische Gehäuse, das Frontgitter und die Halterung bestehen aus Aluminium. Erdungsschraube vorhanden (falls benötigt). Der Lautsprecher entspricht dem Schutzgrad IP66 und kann sowohl in Innenräumen als auch in Außenbereichen installiert werden.</Description><Description language-id=\"es_ES\">El modelo DP 1420EN es un proyector unidireccional de sonido con un diseño elegante y de fácil instalación, ideal para la sonorización de entornos comerciales e industriales que requieran una buena calidad de sonido, gran inteligibilidad y eficiencia. Cuenta con una carcasa cilíndrica de aluminio, rejilla y soporte. Tornillo de tierra disponible (si fuera necesario). Su grado de protección IP66 permite su instalación tanto en interiores como en exteriores.</Description><Description language-id=\"fr_FR\">Le DP 1420EN est un projecteur de son unidirectionnel à l'esthétique élégante et facile à installer. Il est adapté à la sonorisation d'environnements commerciaux et industriels où une bonne qualité sonore, ainsi qu'une intelligibilité et une efficacité élevées sont requises. Il comporte un boîtier cylindrique, une grille et un support en aluminium. Vis de masse disponible (si nécessaire). Grâce à son indice de protection IP66 il peut être installé à l’intérieur comme en plein air.</Description><Description language-id=\"it_IT\">DP 1420EN è un proiettore di suono monodirezionale che si contraddistingue per l’estetica elegante e la facilità di installazione, ed è adatto alla sonorizzazione di ambienti commerciali e industriali ove sia richiesta una buona qualità di riproduzione associata ad elevate intelligibilità ed efficienza. Costituito da un robusto corpo cilindrico, griglia e staffa per il fissaggio in alluminio. Vite di messa a terra disponibile (se richiesto l'utilizzo). Adatto all'installazione sia indoor che outdoor grazie al grado di protezione IP66.</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>
Application
Our Services
2021 Copyright ® RCF | RCF S.P.A. cf/p.iva 04081310965