OPC's y empresas de organización de eventos
Si necesitas una empresa que te entregue el proyecto de tu evento llave en mano o estás buscando un servicio profesional complementario para el diseño y la puesta en marcha de un encuentro corporativo, aquí puedes encontrar empresas en Asturias que trabajan en la organización y realización de eventos, congresos, eventos e incentivos.
Atrás Cade Comunicación
Se ha producido un error al procesar la plantilla.
Java method "as.asac.template.tools.DLToolImpl.getThumbnailByJSON(String, String)" threw an exception when invoked on as.asac.template.tools.DLToolImpl object "as.asac.template.tools.DLToolImpl@1d931f40"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign slideThumbnail1 = dlTool.getT... [in template "37703#37743#8983071" at line 61, column 73]
----
1<#-- Services -->
2<#assign assetEntryLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
3<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/>
4<#assign journalArticleResourceServiceUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")/>
5<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
7<#assign ddmStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService")/>
8
9<#-- Reserved vbles -->
10<#assign title = .vars['reserved-article-title'].data>
11<#assign articleId=.vars["reserved-article-id"].data />
12<#assign description=.vars["reserved-article-description"].data />
13<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data />
14<#assign date=.vars["reserved-article-display-date"].data />
15<#assign request = .vars['request']>
16
17<#-- Init -->
18
19<#assign assetEntry = journalTool.getAssetEntryByArticleId(groupId, articleId)>
20<#assign journalArticle = journalTool.getJournalArticleByAssetEntry(assetEntry)>
21<#assign ddmStructureNameNormalize = "template-${friendlyURLNormalizerTool.normalize(journalArticle.getDDMStructure().getName(localeUtil.getDefault()))}" />
22<#assign articleURL = themeDisplay.getURLPortal()+themeDisplay.getURLCurrent()>
23<#assign articleMainImageThumbnail3 = dlTool.getThumbnail(smallImageUrl, "3", layoutSetBannerPath)! />
24<#assign articleMainImageThumbnail1 = dlTool.getThumbnail(smallImageUrl, "1")! />
25
26
27<#-- Categories -->
28<#assign concejo = journalTool.getCategories(groupId, articleId, ["MICE :: Concejo"])/>
29
30
31<article class="template template-mice template-${ddmStructureNameNormalize} template-mice-article" role="article" >
32
33 <div class="container">
34 <div class="row no-gutters">
35 <div class="col-12">
36
37 <h2 class="article-title" itemprop="name">${title}</h2>
38
39
40 <#if validator.isNotNull(Descripcion.getData())>
41 <div class="article-description mt-2 mb-4">
42 ${Descripcion.getData()}
43 </div>
44 </#if>
45
46 <#assign slideImagesCount = 0 />
47 <#assign slideImagesSize = Visualizador.Imagen.getSiblings()?size />
48 <#if validator.isNotNull(Visualizador.Imagen.data) || validator.isNotNull(smallImageUrl)>
49 <div id="article-carousel" class="carousel slide carousel-fade carousel-article" data-ride="carousel" data-interval="5000">
50 <span aria-hidden="true" class="loading-animation loading-bg"></span>
51 <div class="carousel-inner">
52 <#if validator.isNotNull(smallImageUrl)>
53 <div class="carousel-item active aspect-ratio-bg-cover" style="background-image: url(${articleMainImageThumbnail3});">
54 <img class="hide" src="${articleMainImageThumbnail1}" alt="${title}" title="${title}"/>
55 </div>
56 <#assign slideImagesCount = slideImagesCount + 1 />
57 </#if>
58 <#list Visualizador.Imagen.getSiblings() as Slide>
59 <#if Slide?? && validator.isNotNull(Slide) && Slide.data?? && validator.isNotNull(Slide.data)>
60
61 <#assign slideThumbnail1 = dlTool.getThumbnailByJSON(Slide.data, "1")! />
62 <#assign slideThumbnail3 = dlTool.getThumbnailByJSON(Slide.data, "3")! />
63 <#assign slideTitle = "${languageUtil.get(request, 'image')} ${title}" />
64 <#assign slideAlt = slideTitle />
65 <#if Slide.TituloImagen?? && Slide.TituloImagen.data?has_content>
66 <#assign slideTitle = Slide.TituloImagen.data />
67 <#assign slideAlt = slideTitle />
68 </#if>
69 <#if Slide.AltImagen?? && validator.isNotNull(Slide.AltImagen.getData())>
70 <#assign slideAlt = Slide.AltImagen.getData() />
71 </#if>
72 <#else>
73 <#continue>
74 </#if>
75 <div class="carousel-item aspect-ratio-bg-cover" style="background-image: url(${slideThumbnail3});">
76 <img class="hide" src="${slideThumbnail1}" alt="${slideAlt}" title="${slideTitle}"/>
77 </div>
78 <#assign slideImagesCount = slideImagesCount + 1 />
79 </#list>
80 </div>
81 <#if Visualizador.Imagen.getSiblings()?size gt 1>
82 <a class="carousel-control-prev" href="#article-carousel" data-slide="prev">
83 <span class="carousel-control-prev-icon" aria-hidden="true"><!-- ${languageUtil.get(request, "previous")} --></span>
84 <span class="hide-accessible">${languageUtil.get(request, "previous")}</span>
85 </a>
86 <a class="carousel-control-next" href="#article-carousel" data-slide="next">
87 <span class="carousel-control-next-icon" aria-hidden="true"><!-- ${languageUtil.get(request, "next")}--></span>
88 <span class="hide-accessible">${languageUtil.get(request, "next")}</span>
89 </a>
90 <ol class="carousel-indicators ">
91 <#assign index = 0 />
92 <#list 1..slideImagesCount as item>
93 <li data-target="#article-carousel" data-slide-to="${index}" <#if index==0> class="active"</#if>></li>
94 <#assign index = index + 1 />
95 </#list>
96 </ol>
97 </#if>
98 </div>
99 </#if>
100 </div>
101 </div>
102 <#if validator.isNotNull(Geolocalizacion.Coordenadas.getData())>
103 <div class="article-map-switch mt-2 mb-4">
104 <label class="toggle-switch">
105 <input class="toggle-switch-check mapShow" type="checkbox" onclick="showArticleMap(${articleId})"/>
106 <span aria-hidden="true" class="toggle-switch-bar">
107 <span class="toggle-switch-handle"></span>
108 </span>
109 </label>
110 <span class="label-map text-lowercase">${languageUtil.get(request, "infoasturias-mice-mostrar-ubicacion")}</span>
111 </div>
112 <#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) />
113 <div id="article-map-wrapper-${articleId}" class="article-section-map article-map-wrapper my-4 hide-visibility">
114 <div id="article-map-content-${articleId}" style="width: 100%; height: 388px; z-index:1"><!-- MAP --></div>
115 <div class="article-map-form">
116 <div class="name important">${title}</div>
117 <div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${Geolocalizacion.Coordenadas.data}</span></div>
118 <form action="https://maps.google.es/maps" method="get" target="_blank">
119 <input type="hidden" name="daddr" value="${coordenadas[0]},${coordenadas[1]}">
120 <label for="saddrText"><span class="label hide-accessible">${languageUtil.get(request,'infoasturias-insert-from')}: </span></label>
121 <label for="saddr"><span class="label">${languageUtil.get(request,'infoasturias-from')}: </span></label>
122 <input class="form-control" type="text" maxlength="40" name="saddrText" id="saddrText" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}">
123 <input class="form-control" type="hidden" name="saddr" id="saddr" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}">
124 <button class="btn btn-text" type="submit">${languageUtil.get(request,'infoasturias-como-llegar')} »</button>
125 </form>
126 </div>
127 <div class="article-section-scripts">
128 <script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script>
129 <script type="text/javascript">
130 AUI().ready('aui-base', function(A){
131 var lat = ${coordenadas[0]},
132 lng = ${coordenadas[1]},
133 zoom = 16;
134 mapContent = new L.map('article-map-content-${articleId}', {center: [lat, lng], zoom: 16});
135
136 //Marker
137 var defaultIconTheme = '/o/turismo-asturias-theme/css/images/icons/mark-box.png';
138 var defaultIcon = L.icon({
139 iconUrl: defaultIconTheme,
140 iconSize: [36, 53],
141 iconAnchor: [18, 53],
142 iconShadow: [0,0],
143 popupAnchor: [0, -30]
144 });
145 var marker = L.marker([lat, lng], {icon: defaultIcon}).addTo(mapContent);
146
147 //Contributor
148 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
149 attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.'
150 }).addTo(mapContent);
151
152 }); //AUI.ready
153
154 function showArticleMap(articleId){
155 if($("#article-map-wrapper-"+articleId).hasClass("hide-visibility")){
156 $(".toggle-switch-check").attr( 'checked', '' );
157 $(".label-map").text("${languageUtil.get(request, 'infoasturias-mice-ocultar-ubicacion')}");
158 $("#article-map-wrapper-"+articleId).removeClass("hide-visibility");
159 }else{
160 $(".toggle-switch-check").removeAttr( 'checked');
161 $(".label-map").text("${languageUtil.get(request, 'infoasturias-mice-mostrar-ubicacion')}");
162 $("#article-map-wrapper-"+articleId).addClass("hide-visibility");
163 }
164 }
165 </script>
166 </div>
167 </div>
168 </#if>
169 <#if concejo?size gt 0 || validator.isNotNull(Direccion.getData()) || validator.isNotNull(CP.getData()) || validator.isNotNull(Poblacion.getData()) || validator.isNotNull(Telefono.getData()) || validator.isNotNull(Email.getData()) || validator.isNotNull(Web.getData()) || validator.isNotNull(PersonaDeContacto.getData()) || validator.isNotNull(Cargo.getData()) || validator.isNotNull(RedesSociales.Facebook.getData()) || validator.isNotNull(RedesSociales.Twitter.getData()) || validator.isNotNull(RedesSociales.Instagram.getData()) || validator.isNotNull(RedesSociales.Linkedin.getData()) || validator.isNotNull(RedesSociales.TikTok.getData()) || validator.isNotNull(RedesSociales.Youtube.getData()) || validator.isNotNull(RedesSociales.Pinterest.getData())>
170 <div class="article-info-table mb-4">
171 <div class="article-info-table-row">
172 <#if validator.isNotNull(Direccion.getData()) || validator.isNotNull(CP.getData()) || validator.isNotNull(Poblacion.getData()) || validator.isNotNull(Telefono.getData()) || validator.isNotNull(Email.getData()) || validator.isNotNull(Web.getData()) || validator.isNotNull(PersonaDeContacto.getData()) || validator.isNotNull(Cargo.getData())>
173 <div class="article-info-table-cell col-lg-7 col-12">
174 <ul class="article-list list-unstyled article-list-info">
175 <#if validator.isNotNull(Direccion.getData())>
176 <li class="article-list-item">
177 <span class="far fa-address-card">
178 <span class="hide-accessible">${languageUtil.get(request,"address")}</span>
179 </span>
180 <span class="field-wrapper">
181 <span class="field">${languageUtil.get(request, "address")}:</span>
182 <span class="text">${Direccion.getData()}</span>
183 <#if validator.isNotNull(CP.getData()) && validator.isNotNull(Poblacion.getData())>
184 <span class="text"> ■ ${CP.getData()} - ${Poblacion.getData()}</span>
185 </#if>
186 </span>
187 </li>
188 </#if>
189
190 <#if Telefono.getSiblings()?has_content>
191 <li class="article-list-item">
192 <span class="fas fa-phone-alt">
193 <span class="hide-accessible">${languageUtil.get(request,"phone")}</span>
194 </span>
195 <span class="field-wrapper">
196 <span class="field">${languageUtil.get(request, "phone")}:</span>
197 <#list Telefono.getSiblings() as telephone>
198 <#assign numberTelefono = telephone.data?replace(" ", "")/>
199 <#assign numberLength = numberTelefono?length/>
200 <#if numberLength == 9>
201 <#assign number = "+34${numberTelefono}"/>
202 <#else>
203 <#assign number = numberTelefono/>
204 </#if>
205 <span class="text">
206 <a href="tel:${number}" itemprop="telephone">${telephone.data}</a>
207 <#if !telephone?is_last>|</#if>
208 </span>
209 </#list>
210 </span>
211 </li>
212 </#if>
213 <#if validator.isNotNull(Email.getData())>
214 <li class="article-list-item">
215 <span class="far fa-envelope">
216 <span class="hide-accessible">${languageUtil.get(request,"email")}</span>
217 </span>
218 <span class="field-wrapper">
219 <span class="field">${languageUtil.get(request, "email")}:</span>
220
221 <span class="text">
222 <a class="" href="mailto:${Email.getData()}" title="${languageUtil.format(request,'send-email-to-x', 'Email.getData()')}" itemprop="email">${Email.getData()}</a>
223 </span>
224
225 </span>
226 </li>
227 </#if>
228 <#if validator.isNotNull(Web.getData())>
229 <li class="article-list-item web">
230 <span class="fas fa-link">
231 <span class="hide-accessible">${languageUtil.get(request,"site")}</span>
232 </span>
233 <span class="field-wrapper">
234 <span class="field">${languageUtil.get(request, "site")}:</span>
235 <span class="text">
236 <#assign linkURL = Web.getData()/>
237 <#if !stringUtil.startsWith(linkURL, "http")>
238 <#assign linkURL = "https://${Web.getData()}"/>
239 </#if>
240 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}" itemprop="url">${Web.getData()}</a>
241 </span>
242 </span>
243 </li>
244 </#if>
245 </ul>
246 </div>
247 </#if>
248
249 <#if validator.isNotNull(Servicios.getData()) || validator.isNotNull(RedesSociales.Facebook.getData()) || validator.isNotNull(RedesSociales.Twitter.getData()) || validator.isNotNull(RedesSociales.Instagram.getData()) || validator.isNotNull(RedesSociales.Linkedin.getData()) || validator.isNotNull(RedesSociales.TikTok.getData()) || validator.isNotNull(RedesSociales.Youtube.getData()) || validator.isNotNull(RedesSociales.Pinterest.getData())>
250 <div class="article-info-table-cell col-lg-5 col-12">
251 <#if validator.isNotNull(Servicios.getData()) || validator.isNotNull(RedesSociales.Facebook.getData()) || validator.isNotNull(RedesSociales.Twitter.getData()) || validator.isNotNull(RedesSociales.Instagram.getData()) || validator.isNotNull(RedesSociales.Linkedin.getData()) || validator.isNotNull(RedesSociales.TikTok.getData()) || validator.isNotNull(RedesSociales.Youtube.getData()) || validator.isNotNull(RedesSociales.Pinterest.getData())>
252 <#if validator.isNotNull(Servicios.getData())>
253 <div class="article-description mt-2 mb-4">
254 ${Servicios.getData()}
255 </div>
256 </#if>
257 <div class="socials-wrapper">
258 <div class="socials">
259 <ul class="list-inline items socials">
260 <#if validator.isNotNull(RedesSociales.Facebook.getData())>
261 <#assign linkURL = RedesSociales.Facebook.data/>
262
263 <#if !stringUtil.startsWith(linkURL, "http")>
264 <#assign linkURL = "https://${RedesSociales.Facebook.data}"/>
265 </#if>
266 <li class="list-inline-item item facebook">
267 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Facebook')}" onclick="this.target='_blank'">
268 <span class="fab fa-facebook-f">
269 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Facebook')}</span>
270 </span>
271 </a>
272 </li>
273 </#if>
274 <#if validator.isNotNull(RedesSociales.Twitter.getData())>
275 <#assign linkURL = RedesSociales.Twitter.data/>
276
277 <#if !stringUtil.startsWith(linkURL, "http")>
278 <#assign linkURL = "https://${RedesSociales.Twitter.data}"/>
279 </#if>
280 <li class="list-inline-item item twitter">
281 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Twitter')}" onclick="this.target='_blank'">
282 <span class="fab fa-twitter">
283 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Twitter')}</span>
284 </span>
285 </a>
286 </li>
287 </#if>
288 <#if validator.isNotNull(RedesSociales.Instagram.getData())>
289
290 <#if RedesSociales.Instagram.data?has_content>
291 <#assign linkURL = RedesSociales.Instagram.data/>
292
293 <#if !stringUtil.startsWith(linkURL, "http")>
294 <#assign linkURL = "https://${RedesSociales.Instagram.data}"/>
295 </#if>
296 <li class="list-inline-item item instagram">
297 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Instagram')}" onclick="this.target='_blank'">
298 <span class="fab fa-instagram">
299 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Instagram')}</span>
300 </span>
301 </a>
302 </li>
303 </#if>
304 </#if>
305 <#if validator.isNotNull(RedesSociales.Youtube.getData())>
306 <#assign linkURL = RedesSociales.Youtube.data/>
307
308 <#if !stringUtil.startsWith(linkURL, "http")>
309 <#assign linkURL = "https://${RedesSociales.Youtube.data}"/>
310 </#if>
311 <li class="list-inline-item item youtube">
312 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Youtube')}" onclick="this.target='_blank'">
313 <span class="fab fa-youtube">
314 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Youtube')}</span>
315 </span>
316 </a>
317 </li>
318 </#if>
319 <#if validator.isNotNull(RedesSociales.Linkedin.getData())>
320 <#if RedesSociales.Linkedin.data?has_content>
321 <#assign linkURL = RedesSociales.Linkedin.data/>
322
323 <#if !stringUtil.startsWith(linkURL, "http")>
324 <#assign linkURL = "https://${RedesSociales.Linkedin.data}"/>
325 </#if>
326 <li class="list-inline-item item linkedin">
327 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Linkedin')}" onclick="this.target='_blank'">
328 <span class="fab fa-linkedin">
329 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Linkedin')}</span>
330 </span>
331 </a>
332 </li>
333 </#if>
334 </#if>
335 <#if validator.isNotNull(RedesSociales.TikTok.getData())>
336 <#if RedesSociales.TikTok.data?has_content>
337 <#assign linkURL = RedesSociales.TikTok.data/>
338
339 <#if !stringUtil.startsWith(linkURL, "http")>
340 <#assign linkURL = "https://${RedesSociales.TikTok.data}"/>
341 </#if>
342 <li class="list-inline-item item tiktok">
343 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Tiktok')}" onclick="this.target='_blank'">
344 <span class="fab fa-tiktok">
345 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Tiktok')}</span>
346 </span>
347 </a>
348 </li>
349 </#if>
350 </#if>
351 <#if validator.isNotNull(RedesSociales.Pinterest.getData())>
352 <#assign linkURL = RedesSociales.Pinterest.data/>
353
354 <#if !stringUtil.startsWith(linkURL, "http")>
355 <#assign linkURL = "https://${RedesSociales.Pinterest.data}"/>
356 </#if>
357 <li class="list-inline-item item pinterest">
358 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Pinterest')}" onclick="this.target='_blank'">
359 <span class="fab fa-pinterest-p">
360 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Pinterest')}</span>
361 </span>
362 </a>
363 </li>
364 </#if>
365 </ul>
366 </div>
367 </div>
368 </#if>
369 </div>
370 </#if>
371 </div>
372 </div>
373 </#if>
374 </div>
375</article>