Turismo cultural
Los municipios de la Costa Blanca reflejan el paso de antiguas civilizaciones, como la ciudad ibero romana de Lucentum en Alicante o la Illeta dels Banyets en El Campello. Por no hablar de la Ruta de los Castillos por la comarca del Vinalopó o las rutas europeas de arquitectura modernista en Alcoy o Novelda.
La provincia de Valencia ofrece un riquísimo programa cultural con visitas al Castillo de Cullera, el Palacio Ducal de Gandia, los vestigios romanos de Sagunto o el Territorio Borgia en el casco histórico de Xàtiva, entre otros.
Por su parte, la provincia de Castellón ofrece arte rupestre y vanguardista en un pequeño radio de kilómetros. Destaca la riqueza cultural de municipios turísticos como Benicasim, Oropesa del Mar o Peñíscola.
Encuentra
Inspírate




Propuestas de viaje
The following has evaluated to null or missing: ==> fotodeportada [in template "20099#20135#413073" at line 343, column 128] ---- Tip: If the failing expression is known to be 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: #if fotodeportada?length gt 0 [in template "20099#20135#413073" at line 343, column 123] ----
1<#if selectionStyle == "dynamic" >
2<#assign aeq = objectUtil("com.liferay.asset.kernel.service.persistence.AssetEntryQuery")/>
3<#assign pathKey = serviceLocator.findService("es.cv.urlfilter.service.PathKeyLocalService")>
4<#assign pathValue = serviceLocator.findService("es.cv.urlfilter.service.PathValueLocalService")>
5<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
6<#assign AssetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")>
7<#assign pfu = serviceLocator.findService("com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil")>
8<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
9
10
11<#assign language = locale.getLanguage()!"es" />
12 <#assign custom_language = "Es"
13 language_url = "/"+language>
14
15 <#if language == "es">
16 <#assign custom_language = "Es">
17 <#elseif language == "en">
18 <#assign custom_language = "En">
19 <#elseif language == "fr">
20 <#assign custom_language = "Fr">
21 <#elseif language == "de">
22 <#assign custom_language = "De">
23 <#elseif language == "ca">
24 <#assign custom_language = "Va"
25 language_url="/va" >
26 </#if>
27
28
29
30<#assign slugs = {
31 "province": (avtContext.provinceSlug)!'',
32 "township": (avtContext.townshipSlug)!'',
33 "type": (avtContext.typeSlug)!'',
34 "subtype": (avtContext.subtypeSlug)!'',
35 "segment": (avtContext.segmentSlug)!'',
36 "subsegment": (avtContext.subsegmentSlug)!'',
37 "resource": (avtContext.resourceSlug)!''
38 } />
39
40<#assign dinamicPage = "false">
41<#assign typePathKey = "">
42<#assign idPathKey = 0>
43<#assign slug = "">
44
45<#assign queryValues0 = [] >
46<#if portletPreferences["queryValues0"]??>
47 <#assign queryValues0 = portletPreferences["queryValues0"] >
48</#if>
49
50
51<#if portletPreferences["orderByColumn1"]??>
52 <#assign orders1 = portletPreferences["orderByColumn1"] >
53</#if>
54
55<#if portletPreferences["orderByColumn2"]??>
56 <#assign orders2 = portletPreferences["orderByColumn2"] >
57</#if>
58
59<#assign queryValues1 = [] >
60<#if portletPreferences["queryValues1"]??>
61 <#assign queryValues1 = portletPreferences["queryValues1"] >
62</#if>
63
64<#assign deltas = [] >
65<#if portletPreferences["delta"]??>
66 <#assign deltas = portletPreferences["delta"] >
67</#if>
68
69<#assign queryAndOperator0 = [] >
70<#if portletPreferences["queryAndOperator0"]??>
71 <#assign queryAndOperator0 = portletPreferences["queryAndOperator0"] >
72</#if>
73
74<#assign queryAndOperator1 = [] >
75<#if portletPreferences["queryAndOperator1"]??>
76 <#assign queryAndOperator1 = portletPreferences["queryAndOperator1"] >
77</#if>
78
79<#assign queryNames0 = [] >
80<#if portletPreferences["queryName0"]??>
81 <#assign queryNames0 = portletPreferences["queryName0"] >
82</#if>
83
84<#assign queryNames1 = [] >
85<#if portletPreferences["queryName1"]??>
86 <#assign queryNames1 = portletPreferences["queryName1"] >
87</#if>
88
89
90<#assign categoriesArrayAND = [] />
91<#assign categoriesArrayOR = [] />
92
93<#assign tagsArrayAND = [] />
94<#assign tagsArrayOR = [] />
95
96
97<#--Numero de elementos a mostrar-->
98<#assign size = 20?number >
99<#list deltas as delta>
100 <#assign size = delta?number >
101</#list>
102
103<#--Nombre de la primera query-->
104<#list queryNames0 as queryName0>
105 <#assign firstQuery = queryName0 >
106</#list>
107<#--Nombre de la segunda query-->
108<#list queryNames1 as queryName1>
109 <#assign secondQuery = queryName1 >
110</#list>
111
112<#--Operador de la primera query-->
113<#list queryAndOperator0 as order0Aux>
114 <#assign orderAnd0 = order0Aux >
115</#list>
116
117<#--Operador de la primera query-->
118<#list queryAndOperator1 as order1Aux>
119 <#assign orderAnd1 = order1Aux >
120</#list>
121
122
123<#if firstQuery??>
124 <#if firstQuery == "assetCategories">
125 <#list queryValues0 as queryValue0>
126 <#assign num = queryValue0?number>
127 <#if orderAnd0 == "true">
128 <#assign categoriesArrayAND = categoriesArrayAND + [ num ] />
129 </#if>
130 <#if orderAnd0 == "false">
131 <#assign categoriesArrayOR = categoriesArrayOR + [ num ] />
132 </#if>
133 </#list>
134 <#elseif firstQuery == "assetTags">
135 <#list queryValues0 as queryValue0>
136 <#assign dynamicQuery = AssetTagLocalService.dynamicQuery().add(pfu.forName("name").like("%" + queryValue0 + "%"))>
137 <#assign tags = AssetTagLocalService.dynamicQuery(dynamicQuery, 0, 1) >
138 <#list tags as tag>
139 <#if orderAnd0 == "true">
140 <#assign tagsArrayAND = tagsArrayAND + [ tag.getTagId() ] />
141 </#if>
142 <#if orderAnd0 == "false">
143 <#assign tagsArrayOR = tagsArrayOR + [ tag.getTagId() ] />
144 </#if>
145 </#list>
146 </#list>
147 </#if>
148</#if>
149
150
151<#if secondQuery??>
152 <#if secondQuery == "assetCategories">
153 <#list queryValues1 as queryValue1>
154 <#assign num = queryValue1?number>
155 <#if orderAnd1 == "true">
156 <#assign categoriesArrayAND = categoriesArrayAND + [ num ] />
157 </#if>
158 <#if orderAnd1 == "false">
159 <#assign categoriesArrayOR = categoriesArrayOR + [ num ] />
160 </#if>
161 </#list>
162 <#elseif secondQuery == "assetTags">
163 <#list queryValues1 as queryValue1>
164 <#assign dynamicQuery = AssetTagLocalService.dynamicQuery().add(pfu.forName("name").like("%" + queryValue1 + "%"))>
165 <#assign tags = AssetTagLocalService.dynamicQuery(dynamicQuery, 0, 1) >
166 <#list tags as tag>
167 <#if orderAnd1 == "true">
168 <#assign tagsArrayAND = tagsArrayAND + [ tag.getTagId() ] />
169 </#if>
170 <#if orderAnd1 == "false">
171 <#assign tagsArrayOR = tagsArrayOR + [ tag.getTagId() ] />
172 </#if>
173 </#list>
174 </#list>
175 </#if>
176</#if>
177
178
179
180
181<#if slugs["township"]?has_content && slugs["province"]?has_content>
182 <#assign typePathKey = pathKey.findByType("township")>
183 <#assign slug = slugs["township"]>
184 <#assign idPathKey = typePathKey.getKeyId()>
185 <#assign nameCategory = pathValue.getBySlugName(idPathKey, slug, custom_language)>
186
187
188 <#assign dynamicQuery = AssetCategoryLocalService.dynamicQuery().add(pfu.forName("name").like("%" + nameCategory + "%"))>
189 <#assign categories = AssetCategoryLocalService.dynamicQuery(dynamicQuery, 0, 1) >
190 <#list categories as category>
191 <#assign categoriesArrayAND = categoriesArrayAND + [ category.getCategoryId() ] />
192 </#list>
193<#elseif slugs["province"]?has_content>
194 <#assign typePathKey = pathKey.findByType("province")>
195 <#assign slug = slugs["province"]>
196
197 <#assign idPathKey = typePathKey.getKeyId()>
198 <#assign nameCategory = pathValue.getBySlugName(idPathKey, slug, custom_language)>
199 <#assign nameCategory = nameCategory + " (Provincia)">
200
201 <#assign dynamicQuery = AssetCategoryLocalService.dynamicQuery().add(pfu.forName("name").like("%" + nameCategory + "%"))>
202 <#assign categories = AssetCategoryLocalService.dynamicQuery(dynamicQuery, 0, 1) >
203 <#list categories as category>
204 <#assign categoriesArrayAND = categoriesArrayAND + [ category.getCategoryId() ] />
205 </#list>
206
207</#if>
208
209
210<#if slugs["type"]?has_content>
211 <#assign typePathKey = pathKey.findByType("type")>
212 <#assign slug = slugs["type"]>
213
214 <#assign idPathKey = typePathKey.getKeyId()>
215 <#assign nameCategory = pathValue.getBySlugName(idPathKey, slug, custom_language)>
216
217
218 <#assign dynamicQuery = AssetCategoryLocalService.dynamicQuery().add(pfu.forName("name").like("%" + nameCategory + "%"))>
219 <#assign categories = AssetCategoryLocalService.dynamicQuery(dynamicQuery, 0, 1) >
220 <#list categories as category>
221 <#assign categoriesArrayAND = categoriesArrayAND + [ category.getCategoryId() ] />
222 </#list>
223
224</#if>
225
226<#if slugs["subtype"]?has_content>
227 <#assign typePathKey = pathKey.findByType("subtype")>
228 <#assign slug = slugs["subtype"]>
229
230 <#assign idPathKey = typePathKey.getKeyId()>
231 <#assign nameCategory = pathValue.getBySlugName(idPathKey, slug, custom_language)>
232
233
234 <#assign dynamicQuery = AssetCategoryLocalService.dynamicQuery().add(pfu.forName("name").like("%" + nameCategory + "%"))>
235 <#assign categories = AssetCategoryLocalService.dynamicQuery(dynamicQuery, 0, 1) >
236 <#list categories as category>
237 <#assign categoriesArrayAND = categoriesArrayAND + [ category.getCategoryId() ] />
238 </#list>
239
240</#if>
241
242<#if slugs["segment"]?has_content>
243 <#assign typePathKey = pathKey.findByType("segment")>
244 <#assign slug = slugs["segment"]>
245
246 <#assign idPathKey = typePathKey.getKeyId()>
247 <#assign nameCategory = pathValue.getBySlugName(idPathKey, slug, custom_language)>
248
249
250 <#assign dynamicQuery = AssetCategoryLocalService.dynamicQuery().add(pfu.forName("name").like("%" + nameCategory + "%"))>
251 <#assign categories = AssetCategoryLocalService.dynamicQuery(dynamicQuery, 0, 1) >
252 <#list categories as category>
253 <#assign categoriesArrayAND = categoriesArrayAND + [ category.getCategoryId() ] />
254 </#list>
255
256</#if>
257
258
259<#if slugs["subsegment"]?has_content>
260 <#assign typePathKey = pathKey.findByType("subsegment")>
261 <#assign slug = slugs["subsegment"]>
262
263 <#assign idPathKey = typePathKey.getKeyId()>
264 <#assign nameCategory = pathValue.getBySlugName(idPathKey, slug, custom_language)>
265
266
267 <#assign dynamicQuery = AssetCategoryLocalService.dynamicQuery().add(pfu.forName("name").like("%" + nameCategory + "%"))>
268 <#assign categories = AssetCategoryLocalService.dynamicQuery(dynamicQuery, 0, 1) >
269 <#list categories as category>
270 <#assign categoriesArrayAND = categoriesArrayAND + [ category.getCategoryId() ] />
271 </#list>
272
273</#if>
274
275
276<#assign prueba = aeq.setAllCategoryIds(categoriesArrayAND) >
277<#assign prueba = aeq.setAnyCategoryIds(categoriesArrayOR) >
278
279<#assign prueba = aeq.setAllTagIds(tagsArrayAND) >
280<#assign prueba = aeq.setAnyTagIds(tagsArrayOR) >
281
282<#assign prueba = aeq.setStart(0) >
283<#assign prueba = aeq.setEnd(size) >
284
285<#if orders1??>
286 <#assign prueba = aeq.setOrderByCol1(orders1[0]) >
287</#if>
288
289<#if orders2??>
290 <#assign prueba = aeq.setOrderByCol2(orders2[0]) >
291</#if>
292
293
294<#assign assetEntryList = AssetEntryLocalService.getEntries(aeq)>
295<#else>
296 <#assign assetEntryList = entries>
297</#if>
298
299
300
301<#assign pdfCarrusel = "pdf-carrusel-" + randomNamespace>
302<#if assetEntryList?has_content>
303 <#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
304 <section id="${pdfCarrusel}" class="pt-5 pb-5">
305 <h2 class="text-center title-big"> <@liferay.language key="published.last-publication"/> </h2>
306 <div class="pdf-carrusel carousel slick-carousel wrapped-content">
307 <#list assetEntryList as entry>
308 <#assign renderer = entry.getAssetRenderer()>
309 <#assign className = renderer.getClassName() >
310 <#if className == "com.liferay.journal.model.JournalArticle" >
311 <#assign journalArticle = renderer.getArticle() >
312 <#assign document = saxReaderUtil.read(journalArticle.getContent()) >
313 <#assign rootElement = document.getRootElement() >
314 <#assign urlFriendly = "/"+locale.getLanguage()+"/publicaciones" >
315 <#assign urlFriendly = urlFriendly+"/"+journalArticle.getUrlTitle() >
316
317 <#assign publicacionPDF =[]
318 publicacionText=[] >
319
320 <#list rootElement.elements() as dynamicElement >
321 <#if "fotodeportada" == dynamicElement.attributeValue("name") >
322 <#assign fotodeportada = dynamicElement.element("dynamic-content").getText() >
323 </#if>
324 <#if "publicacion" == dynamicElement.attributeValue("name") >
325 <#assign publicacion = dynamicElement.element("dynamic-content").getText() >
326 <#assign publicacionElements = dynamicElement.element("dynamic-content").elements() >
327 <#list dynamicElement.element("dynamic-element").elements() as dpubli >
328 <#if dpubli.getText()?trim?length gt 0 >
329 <#assign publicacionText = publicacionText + [dpubli.getText()] >
330 </#if>
331 </#list>
332 <#list dynamicElement.elements() as algo >
333 <#if algo.getText()?trim?length gt 0 >
334 <#assign publicacionPDF = publicacionPDF + [algo.getText()] >
335 </#if>
336 </#list>
337 </#if>
338 </#list>
339
340 <div class="slick-item h-100">
341 <div class="row">
342 <div class="col-4 mt-0 mb-auto">
343 <img class="image-pdf w-100 image-result" <#if fotodeportada?length gt 0 > src="${fotodeportada}" <#else> src="/o/main-theme/images/publicaciones.svg" </#if> alt="Image"/>
344 </div>
345 <div class="col-8">
346 <p class="tag-title">
347 <a href="${urlFriendly}">${journalArticle.getTitle()}</a>
348 </p>
349 <div class="tag-download">
350 <@liferay.language key="download" />:
351 </div>
352 <#assign textpubli = "" >
353 <#list publicacionPDF as pdf >
354 <#if pdf?index lt publicacionText?size >
355 <#if pdf?length gt 0 >
356 <#if textpubli?contains(publicacionText[pdf?index]) == false >
357 <#assign textpubli = textpubli +" "+publicacionText[pdf?index] >
358 <a class="link-pdf text-uppercase" href="${pdf}" target="_blank" download="${journalArticle.getTitle()}">${publicacionText[pdf?index]}</a>
359 </#if>
360 </#if>
361 </#if>
362 </#list>
363 </div>
364 </div>
365 </div>
366 </#if>
367
368 </#list>
369 </div>
370 </section>
371
372
373 <style>
374 #${pdfCarrusel} { padding: 5rem 0; }
375 #${pdfCarrusel} .image-pdf { min-height: 5rem; height: auto; max-height: 10rem; object-fit: cover; margin: 0 auto; }
376 #${pdfCarrusel} .slick-item { padding: 1rem; }
377 #${pdfCarrusel} .slick-item[aria-hidden=true] { visibility: hidden; height: 0; }
378 #${pdfCarrusel} .tag-title a{ font-size: 1.4rem; text-transform: uppercase; transform: scaleX(0.9); transform-origin: left; color:#CB4F40; }
379 #${pdfCarrusel} .tag-download{ font-size: 1rem; }
380 #${pdfCarrusel} .link-pdf { font-size: 1rem; color: #0078BF; }
381 </style>
382
383
384
385 <link rel="stylesheet" type="text/css" href="slick/slick.css"/>
386 <link rel="stylesheet" type="text/css" href="slick/slick-theme.css"/>
387 <script>
388 $(window).ready(function() {
389 if(typeof $.fn.slick === 'function'){
390 var total = "${assetEntryList?size}";
391 $("#${pdfCarrusel} .pdf-carrusel:not(.slick-initialized)").slick({
392 dots: total>4,
393 arrows: false,
394 infinite: true,
395 slidesToShow: 4,
396 slidesToScroll: 4,
397 responsive: [
398 {
399 breakpoint: 1024,
400 settings: {
401 slidesToShow: 3,
402 slidesToScroll: 3,
403 infinite: true,
404 dots: true
405 }
406 },
407 {
408 breakpoint: 600,
409 settings: {
410 slidesToShow: 2,
411 slidesToScroll: 2
412 }
413 },
414 {
415 breakpoint: 480,
416 settings: {
417 slidesToShow: 1,
418 slidesToScroll: 1
419 }
420 }
421 // You can unslick at a given breakpoint now by adding:
422 // settings: "unslick"
423 // instead of a settings object
424 ]
425 });
426 }
427 });
428 </script>
429
430 <#else>
431<#assign usrRoles = user.getRoles()>
432<#list usrRoles as usrRole>
433 <#if usrRole.getName() == "Administrator">
434 <section class="pt-5 pb-5">
435 <h5 class="text-uppercase text-center empty-message f-source-sans-pro">
436 <@liferay.language key="highlighted.search.results.empty"/>
437 </h5>
438 </section>
439 </#if>
440</#list>
441</#if>