Are you looking for a place for your congress, meeting or incentive trip?

Come in, Asturias is a meeting place

Asturias combines nature, tradition and the avant-garde. Here you will find first class facilities with more than 200,000 square metres of congress venues and unique venues that evoke tradition and culture.

Its urban area, made up of Oviedo/Uviéu, Gijón/Xixón and Avilés -with17,000 hotel beds-, is just a stone's throw away from rural areas that are home to the most characteristic landscapes of this natural paradise. Incentive activities, along its seven Biosphere Reserves and its 400 km of the best preserved coastline in Spain, represent one more incentive to choose Asturias as a setting for events.

Because in Asturias, a corporate event can become a unique experience: a dive in an old mine, a day of bear watching in a natural park or a meeting in a majestic 15th century palace a few kilometres from the centre of Oviedo/Uviéu.

Welcome to Asturias Meeting Land!

Asturias: a unique setting for congresses, meetings and incentives

An error occurred while processing the template.
The following has evaluated to null or missing:
==> rawUrl?split("v=")[1]  [in template "37703#37743#1232308" at line 54, column 70]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: temp = rawUrl?split("v=")[1]  [in template "37703#37743#1232308" at line 54, column 57]
----
1<#assign imageBackground = dlTool.getThumbnail(Fondo.data, "4")! /> 
2<div class="template template-background-video video-component" style="background-image: url('${imageBackground}');"> 
3	<div class="info-container pt-6 pt-lg-8"> 
4		<div class="container"> 
5			<div class="row gy-20"> 
6				<div class="col-lg-6 col-xl-5 col-12 col-info"> 
7					<div class="info-wrapper pb-lg-6 pr-lg-6"> 
8						<#if Titulo.data?has_content> 
9							<div class="title-cursive">${Titulo.data}</div> 
10						</#if> 
11						<#if Subtitulo.data?has_content> 
12							<div class="title">${Subtitulo.data}</div> 
13						</#if> 
14						<#if Texto.data?has_content> 
15							<div class="text">${Texto.data}</div> 
16						</#if> 
17						<#if Enlace?? && Enlace.EnlacePagina?? && Enlace.EnlaceExterno??> 
18							<#if Enlace.data?has_content && (Enlace.EnlacePagina.data?has_content || Enlace.EnlaceExterno.data?has_content)> 
19							 
20								<#assign link = "" /> 
21								<#assign target = false /> 
22								<#if Enlace.EnlaceExterno.data?has_content> 
23									<#assign link = Enlace.EnlaceExterno.data /> 
24									<#assign target = true /> 
25								<#elseif Enlace.EnlacePagina.data?has_content > 
26									<#assign longLayoutId = Enlace.EnlacePagina.data /> 
27									<#assign layoutItem = layoutTool.getLayoutByLayoutId(getterUtil.getLong(groupId), false, getterUtil.getLong(longLayoutId)) /> 
28									<#if validator.isNotNull(layoutItem) > 
29										<#if layoutItem.isTypeURL()> 
30											<#assign link = portalUtil.getLayoutURL(layoutItem, themeDisplay) /> 
31										<#else> 
32											<#assign link = portalUtil.getLayoutFullURL(layoutItem, themeDisplay) /> 
33										</#if> 
34									</#if> 
35								</#if> 
36								<div class="btn-wrapper mt-5"> 
37									<a class="btn btn-border text-uppercase" href="${link}" <#if target>onclick="this.target='_blank'"</#if> title="${languageUtil.format(request, 'go-to-x', Enlace.data)}"><span class="fas fa-tv"><span class="hide-accessible">${Enlace.data}</span></span> ${Enlace.data} 
38										<#if target> 
39											<span class="sr-only">(se abre en una pestaña nueva)</span> 
40										</#if> 
41									</a> 
42								</div> 
43							</#if> 
44						</#if>						 
45					</div> 
46				</div> 
47				<div class="col-lg-6 col-xl-7 col-12 col-info"> 
48					<#if Video.data?has_content> 
49					    <#assign portalURL = themeDisplay.getURLPortal()?trim /> 
50						<#if portalURL?ends_with("/")> 
51							<#assign portalURL = portalURL?substring(0, portalURL?length - 1) /> 
52						</#if> 
53						<#assign rawUrl = Video.getData()?trim 
54							temp       = rawUrl?split("v=")[1] 
55							videoId    = temp?split("&")[0] 
56							videoURL   = "https://www.youtube-nocookie.com/embed/${videoId}" + "?autoplay=0&rel=0&origin=${portalURL}" 
57							videoText  = Video.TextoVideo.getData() 
58						/> 
59						<#assign titulo   = Video.TitleVideo.data?default("Vídeo") /> 
60						<div class="video-wrapper"> 
61							<div class="video-responsive" role="region" aria-roledescription="video" aria-label="${titulo}"> 
62								<button id="play" class="play-button" aria-expanded="false" aria-controls="youtube-video" aria-label="${languageUtil.get(request,'infoasturias-video-play')}"> 
63									<img src="/o/turismo-asturias-theme/images/icons/video_play.png" alt="${languageUtil.get(request,'infoasturias-video-play')}" /> 
64								</button> 
65								<iframe id="youtube-video" class="responsive-iframe visually-hidden" hidden aria-hidden="true" src="${videoURL}" title="${titulo}" frameborder="0" allow="autoplay; encrypted-media; fullscreen" loading="lazy"></iframe> 
66							</div> 
67						</div> 
68						<#if validator.isNotNull(videoText)> 
69							<div class="small text-center my-2"> 
70								<button id="transcript-toggle" class="btn btn-primary font-size-08" aria-expanded="false" aria-controls="transcript-drawer" data-show-text="${languageUtil.get(request,'infoasturias-video-transcripcion-show')}" data-hide-text="${languageUtil.get(request,'infoasturias-video-transcripcion-hide')}"> 
71									${languageUtil.get(request,"infoasturias-video-transcripcion-show")} 
72								</button> 
73							</div> 
74							<div id="transcript-drawer" class="transcript-drawer" role="region" aria-labelledby="transcript-toggle" tabindex="-1" aria-hidden="true"> 
75								<div class="title"> 
76									${languageUtil.get(request,"infoasturias-video-transcripcion")} 
77								</div> 
78								<div class="transcription-body"> 
79									${videoText} 
80								</div> 
81							</div> 
82						</#if>			 
83					</#if> 
84				</div> 
85			</div> 
86		</div> 
87	</div> 
88</div> 
89<script> 
90	Liferay.on('allPortletsReady', function() { 
91		var playBtn   = document.getElementById('play'); 
92		var iframe    = document.getElementById('youtube-video'); 
93		var toggleBtn = document.getElementById('transcript-toggle'); 
94		var drawer    = document.getElementById('transcript-drawer'); 
95 
96		if (playBtn && iframe) { 
97			var showText = toggleBtn?.getAttribute('data-show-text') || 'Ver transcripción'; 
98			var hideText = toggleBtn?.getAttribute('data-hide-text') || 'Ocultar transcripción'; 
99 
100			playBtn.addEventListener('click', function() { 
101				playBtn.hidden = true; 
102				playBtn.setAttribute('aria-expanded', 'true'); 
103				iframe.src = '${videoURL}'; 
104				iframe.hidden = false; 
105				iframe.removeAttribute('aria-hidden'); 
106				iframe.classList.remove('visually-hidden'); 
107			}); 
108 
109			playBtn.addEventListener('keydown', function(e) { 
110				if (e.key === 'Enter' || e.key === ' ') { 
111					e.preventDefault(); 
112					playBtn.click(); 
113
114			}); 
115 
116			if (toggleBtn && drawer) { 
117				drawer.setAttribute('aria-hidden', 'true'); 
118				drawer.classList.remove('open'); 
119				toggleBtn.setAttribute('aria-expanded', 'false'); 
120				toggleBtn.textContent = showText; 
121				toggleBtn.setAttribute('aria-label', showText); 
122 
123				function toggleDrawer(open) { 
124					toggleBtn.setAttribute('aria-expanded', String(open)); 
125					toggleBtn.textContent   = open ? hideText : showText; 
126					toggleBtn.setAttribute('aria-label', open ? hideText : showText); 
127					drawer.classList.toggle('open', open); 
128					drawer.setAttribute('aria-hidden', String(!open)); 
129					if (open) drawer.focus(); 
130					else playBtn.focus(); 
131
132 
133				toggleBtn.addEventListener('click', function() { 
134					var isOpen = this.getAttribute('aria-expanded') === 'true'; 
135					toggleDrawer(!isOpen); 
136				}); 
137 
138				document.addEventListener('keydown', function(e) { 
139					if (e.key === 'Escape' && drawer.classList.contains('open')) { 
140						toggleDrawer(false); 
141
142				}); 
143
144
145	}); 
146</script> 
147<style type="text/css"> 
148	.template-background-video .video-wrapper:after{ 
149		background-image: url('${imageBackground}'); 
150
151</style>