Il futuro si prepara con i line array RCF TT+
Search RCF products
Choose search system
Si è verificato un errore nell'elaborarazione del modello.
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=dc329cf7-0795-e71e-cadf-29beaf2acbbe, productId=419, companyId=20101, groupId=20128, userId=20130, userName=Eighty Twenty, createDate=Tue Nov 02 15:17:31 GMT 2021, modifiedDate=Fri Dec 20 11:20:56 GMT 2024, code=STP0102, productTypeName=Active Speakers, name=TTL 31-A II, nameSearchable=TTL31AII, urlTitle=ttl-31-a-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 COMPACT LINE ARRAY MODULE</Subtitle><Subtitle language-id=\"de_DE\">AKTIVES KOMPAKTES LINE ARRAY MODUL</Subtitle><Subtitle language-id=\"es_ES\">ACTIVE COMPACT LINE ARRAY MODULE</Subtitle><Subtitle language-id=\"fr_FR\">ACTIVE COMPACT LINE ARRAY MODULE</Subtitle><Subtitle language-id=\"it_IT\">MODULO ARRAY ATTIVO A 2 VIE</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 TTL31A is a full range, ultra compact, wide dispersion, active line array module. 
\nIts extremely compact size combined to its high output and definition makes it the ideal solution for indoor applications, live performances and events.</Description><Description language-id=\"de_DE\">Das TTL 31-A ist ein Fullrange, ultrakompaktes aktives Line Array Modul mit breiter Abstrahlung 
\nDas TTL31-A ist ein „Mini-Size“ 2-Wege Line Array Modul. Die bemerkenswerte hohe Ausgangsleistung und Dynamik, die extreme Genauigkeit und die hohe Reichweite im Hochtonbereich bei kompakter Größe machen das TTL31-A zum idealen Werkzeug für verschiedenste professionelle Beschallungsaufgaben.</Description><Description language-id=\"es_ES\">El TTL31A es un mini line array dos vías 
\nSu gran salida y dinámica, la extrema precisión y extensión de frecuencias altas, sumado a su tamaño tan compacto, hacen del TTL31A la herramienta ideal para aplicaciones en lugares cerrados, presentaciones en vivo y eventos.</Description><Description language-id=\"fr_FR\">The TTL31A is a full range, ultra compact, wide dispersion, active line array module. 
\nIts extremely compact size combined to its high output and definition makes it the ideal solution for indoor applications, live performances and events.</Description><Description language-id=\"it_IT\">TTL31-A è un line array a 2 vie di dimensioni “mini”. 
\nGrazie al suo elevato livello di pressione e di dinamica, l’estrema definizione ed estensione alle alte frequenze unite ad un formato decisamente compatto, TTL31-A diventa la soluzione ideale nelle applicazioni indoor, performance live ed eventi di vario genere.</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>
Product Line
Application
Our Services
2021 Copyright ® RCF | RCF S.P.A. cf/p.iva 04081310965