contenido-sidebar-lateral-inicio-independiente

Título Radios - Página de Inicio

RADIOS

Radios - Página de Inicio

Título Proyectos - Página de Inicio

PROYECTOS

contenido-proyectos-lista-audioteca

Imagen de una junta administrativa a modo de decoración del proyecto Interferencia

INTERFERENCIA

Investigamos, interpretamos y contamos historias. Somos parte de Radioemisoras UCR.

Ir a Interferencia
Imagen de una junta administrativa a modo de decoración del proyecto Doble Check

DOBLE CHECK

Verificar información es parte de la vida en una sociedad democrática. Nuestra misión es ayudarte en esa tarea diaria y constante.

Ir a Doble Check
Imagen de una junta administrativa a modo de decoración del proyecto Audioteca

LA AUDIOTECA

La aUdioteca es un espacio para escuchar la literatura costarricense e internacional, presentado por las Radios UCR, el SIEDIN y la Asociación Costarricense de Escritoras.

Ir a La aUdioteca

Título Destacados - Página de Inicio

DESTACADOS

Publicador de contenidos

Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy115.getFileEntry(long)" threw an exception when invoked on com.sun.proxy.$Proxy115 object "com.liferay.document.library.opener.google.drive.web.internal.service.DLOpenerGoogleDriveDLAppServiceWrapper@5b4d45d2"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign imgFileEntry = service.getFil...  [in template "20097#20123#76983" at line 91, column 19]
----
1<style> 
2    .news-cover-card-home { 
3    border-radius: 20px; 
4    overflow: hidden; 
5    padding: 5px; 
6    display: flex; 
7    flex-direction: column; 
8    row-gap: 12px; 
9    width: 100%; 
10
11     
12</style> 
13 
14<div class="main-container"> 
15<div class="side-publisher"> 
16 
17       
18       
19       
20       
21 
22     
23    <#-- PUBLICADOR 1 --> 
24    <div class="news-cover-card-home bg-white"> 
25      <@liferay_portlet["runtime"] 
26        portletName="com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet" 
27        instanceId="PUBLISHER_1" 
28      /> 
29    </div> 
30 
31    <#-- PUBLICADOR 2 --> 
32    <div class="news-cover-card-home bg-white"> 
33      <@liferay_portlet["runtime"] 
34        portletName="com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet" 
35        instanceId="PUBLISHER_2" 
36      /> 
37    </div> 
38     
39    <#-- PUBLICADOR 3 --> 
40    <div class="news-cover-card-home bg-white"> 
41      <@liferay_portlet["runtime"] 
42        portletName="com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet" 
43        instanceId="PUBLISHER_3" 
44      /> 
45    </div> 
46     
47    <#-- PUBLICADOR 4 --> 
48    <div class="news-cover-card-home bg-white"> 
49      <@liferay_portlet["runtime"] 
50        portletName="com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet" 
51        instanceId="PUBLISHER_4" 
52      /> 
53    </div> 
54 
55 
56     
57 
58 
59    <#-- Inyectar servicio remoto para manejar imágenes correctamente --> 
60    <#assign service = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")> 
61 
62    <#-- Función para construir URL de la imagen --> 
63    <#function getFileEntryURL fileEntry> 
64      <#return themeDisplay.getPathContext() + "/documents/" + fileEntry.getRepositoryId()?c + "/" + 
65        fileEntry.getFolderId()?c + "/" + htmlUtil.unescape(fileEntry.getTitle())> 
66    </#function> 
67 
68    <div class="news-cover-card-home bg-white"> 
69      <#if entries?has_content> 
70        <#list entries as curEntry> 
71          <#assign renderer = curEntry.getAssetRenderer() /> 
72          <#assign journalArticle = renderer.getArticle() /> 
73          <#assign document = saxReaderUtil.read(journalArticle.getContent()) /> 
74          <#assign rootElement = document.getRootElement() /> 
75 
76          <#-- Inicializar variables --> 
77          <#assign imagenPequena = "/documents/20121/49457/Portada.jpg/307a8a4a-25c8-822a-1f93-32c4d3218d9b?version=1.1&t=1752169972481&imagePreview=1"> 
78          <#assign imagenPequenaAlt = "Imagen por defecto"> 
79          <#assign tituloNoticia = "" /> 
80          <#assign descripcion_noticia = "" /> 
81          <#assign etiquetaNoticia = "DOBLE CHECK" /> 
82          <#assign fechaFormateada = "" /> 
83          <#assign link = "#" /> 
84 
85          <#list rootElement.elements() as dynamicElement> 
86            <#if "ImagenPortada" == dynamicElement.attributeValue("name")> 
87              <#assign imgObj = dynamicElement.element("dynamic-content").getText() /> 
88              <#if imgObj?has_content> 
89                <#assign imgJson = jsonFactoryUtil.createJSONObject(imgObj) /> 
90                <#if imgJson.has("fileEntryId")> 
91                  <#assign imgFileEntry = service.getFileEntry(imgJson.fileEntryId?number) /> 
92                  <#assign imagenPequena = getFileEntryURL(imgFileEntry) /> 
93                  <#assign imagenPequenaAlt = imgJson.alt!"Imagen por defecto" /> 
94                </#if> 
95              </#if> 
96            </#if> 
97            <#if "Titulo" == dynamicElement.attributeValue("name")> 
98              <#assign tituloNoticia = dynamicElement.element("dynamic-content").getText() /> 
99            </#if> 
100            <#if "Contenido" == dynamicElement.attributeValue("name")> 
101              <#assign descripcion_noticia = dynamicElement.element("dynamic-content").getText() /> 
102            </#if> 
103            <#if "Etiqueta" == dynamicElement.attributeValue("name")> 
104              <#assign etiquetaNoticia = dynamicElement.element("dynamic-content").getText() /> 
105            </#if> 
106            <#if "FechaDate" == dynamicElement.attributeValue("name")> 
107                <#assign dateNoticia = dynamicElement.element("dynamic-content").getData()> 
108                <#if dateNoticia?? && dateNoticia != ""> 
109                    <#assign fechaFormateada = dateNoticia?date("yyyy-MM-dd")?string("dd 'de' MMMM 'del' yyyy")> 
110                </#if> 
111            </#if> 
112          </#list> 
113 
114          <#if curEntry??> 
115            <#assign link = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, renderer, curEntry, true) /> 
116          </#if> 
117 
118          <a href="${link}" class="a-reset clean-link-article" aria-label="Leer noticia: ${tituloNoticia}"> 
119            <article class="news-cover-card bg-white" style="    min-height: 380px; 
120"> 
121              <img 
122                class="news-cover-list__image" 
123                src="${imagenPequena}" 
124                alt="${imagenPequenaAlt}" 
125                loading="lazy" 
126              /> 
127              <div class="news-cover-list__content"> 
128                <span class="heading-7 tag bg-color-doble-check-accesibilidad fw-bold white u-rounded-10 mb-0_875"> 
129                  ${etiquetaNoticia} 
130                </span> 
131                <p class="items-sm fw-bold gray-5" style="margin-bottom:32px;"> 
132                  ${tituloNoticia} 
133                </p> 
134                <span class="items-sm black"> 
135                  ${fechaFormateada} 
136                </span> 
137              </div> 
138            </article> 
139          </a> 
140        </#list> 
141      </#if> 
142    </div> 
143 
144</div> 
145</div> 

Título Podcasts - Página de Inicio

PODCASTS

Título Reels - Página de Inicio

REELS

Reels de Instagram

Radio U 101.9 FM
Radio Universidad 96.7 FM
Radio 870 UCR 870 AM
Interferencia Periodismo independiente con enfoque crítico.

Título Vídeos - Página de Inicio

VIDEOS

Lista de Vídeos - Página de Inicio

SEKA en El Sillón Azul - Sesiones Radio U

¡El punk y el ska inundan el Estudio de Radios UCR! SEKA se unió a celebrar los 30 años de Radio U con una imperdible Sesión en El Sillón Azul en el mes de mayo.

¿Sentir inseguridad es solo un tema de percepción?

Voces desde Alta Contención

Cuatro privados de libertad del CAI Terrazas conversaron con Interferencia

Título Horas Estudiante - Página de Inicio

HORAS ESTUDIANTE

Banner Horas Estudiante - Página de Inicio

contenido-inicio-titulo-seccion-contacto

Contacto

Información de contacto - Página de Inicio