PCOs and event planning companies
If you need a company to deliver your turnkey event project or you are looking for a complementary professional service for the design and implementation of a corporate meeting, here you can find companies in Asturias that work in the organisation and execution of events, congresses, events and incentives.
Back MG.lab
An error occurred while processing the template.
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@4f12c5de"; 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>