Crítica cultural Raíces Migraciones Nº 723 Cine
El festival de Málaga y el desarraigo

Crítica cultural Raíces Migraciones Nº 723 Cine
En el escaparate del cine español se repitió un tema, la búsqueda de unas mejores condiciones de vida, que ha propiciado películas con dos argumentos: la inmigración y la vuelta al campo.
Al margen de la calidad de los largometrajes presentados, irregular a veces, el de Málaga es un festival interesante porque funciona como una plataforma de lanzamiento de jóvenes cineastas españoles. Aquí pudimos ver las óperas primas de Rodrigo Sorogoyen, Carla Simón o Pilar Palomero, y este año hemos descubierto Sorda, la magnífica propuesta de Eva Libertad, de la que ya hablamos en Nuestro Tiempo. Centrado en la industria nacional, el certamen es una cartelera donde se anuncian las tendencias argumentales que llegarán a las salas durante los meses siguientes. Y, aunque podría parecer pueril agrupar las ediciones por temas, la realidad apunta a que, como el cine en gran parte refleja la sociedad, no resulta extraño que varios proyectos compartan argumentos. Si en 2023 y 2024 predominaron las historias sobre relaciones, en 2025 varias películas han expuesto sobre el tapete la inmigración.
Sin duda, la más destacada fue Muy lejos. En su debut, Gerard Oms cuenta las dificultades de un joven barcelonés, interpretado por Mario Casas, que lucha por abrirse camino en Utrecht. La cinta explora de manera especial las barreras culturales y los prejuicios hacia el extranjero. El protagonista sufre además la precariedad material y la soledad. Señala bien el caro peaje que pagan quienes toman ese camino.
En una línea similar encontramos Los Tortuga, que se llevó el premio especial del jurado. Dirigida por Belén Funes, narra la vida de Anabel (Elvira Lara), una estudiante de Comunicación Audiovisual que vive en la ciudad condal con su madre, una taxista chilena interpretada por Antonia Zegers. Aunque la película se centra en el conflicto maternofilial, abre también el foco para hablar de la mirada distinta entre los inmigrantes de primera y segunda generación, el drama del desahucio o el dilema de la vuelta al campo, aunque suponga recortar algunas oportunidades a los propios hijos. En poco más de cien minutos, Funes construye una historia que ayuda a entender la complejidad del fenómeno de la inmigración.
En el fondo, el deseo del migrante de una vida mejor está, a su modo, latente en la persona que deja la ciudad para vivir en el campo. Quizás aquí no pesan tanto las condiciones materiales como la búsqueda de un entorno más tranquilo, más sano o quizás más anónimo.
Es el caso de La buena suerte, la adaptación de Gracia Querejeta de la novela de Rosa Montero. El protagonista, interpretado por Hugo Silva, es Pablo, un arquitecto de éxito, que, para escapar del grave problema que tiene con uno de sus hijos, decide desaparecer y alquila una casa semiderruida en un pequeño pueblo dejado de la mano de Dios. Allí entabla relación con algunos vecinos y con Raluca (Megan Montaner), una treintañera rumana que, por necesidad, ha dejado atrás sus raíces y trabaja duro de cajera para salir adelante. Es interesante cómo la película indaga en las dos caras de un mismo hecho.
En Málaga también se hizo notar Lo que queda de ti. El notable estreno en el largometraje de Gala Gracia cuenta la historia de Sara, una chica que está a punto de grabar un disco de jazz en Nueva York cuando recibe la noticia de la muerte de su padre. Sara rememora el pueblo del Pirineo oscense en el que pasó la infancia y donde vive su hermana, para cuidar de la casa familiar, las tierras y los animales. A través del conflicto entre ellas, magníficamente interpretadas por Laia Manzanares y Ángela Cervantes, Gracia introduce cuestiones como la pérdida de un modo de estar en el mundo más humano y la importancia de los lazos familiares, en especial cuando alguno de los miembros ha tenido que emigrar.
El elemento común de todas estas cintas es una mirada compasiva y honesta sobre la inmigración, alejada de presupuestos ideológicos y, al mismo tiempo, sin idealizar ni esconder la complejidad de este fenómeno. Como en otros temas, el cine y la narrativa sirven para acercarnos a realidades que superan lo político. De hecho, quizás el séptimo arte, con su potente elemento de identificación, puede hacer más por la inmigración que muchos discursos y eslóganes que, a veces, se olvidan de los protagonistas; todas aquellas personas que, por unas razones u otras, se ven obligadas a huir de sus países de origen.
En consonancia con ese espíritu de servicio, Nuestro Tiempo es una revista gratuita. Su contenido está accesible en internet, y enviamos también la edición impresa a los donantes de la Universidad.
The following has evaluated to null or missing: ==> revista_number [in template "10136#10174#53349399" at line 91, column 33] ---- 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: ${revista_number} [in template "10136#10174#53349399" at line 91, column 31] ----
1<#-- Template: Articulos Relacionados 3 Columnas -->
2<#-- Obtener los servicios necesarios -->
3<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
4<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
5<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6<#assign assetDisplayPageFriendlyURLProvider = serviceLocator.findService("com.liferay.asset.display.page.portlet.AssetDisplayPageFriendlyURLProvider") />
7
8<#-- Obtener el artículo actual -->
9<#assign journalArticle = journalArticleLocalService.getArticle(getterUtil.getLong(groupId), .vars['reserved-article-id'].data) />
10<#assign groupId = themeDisplay.getScopeGroupId() />
11<#assign resourcePrimKey = journalArticle.getResourcePrimKey() />
12<#assign structureKey = journalArticle.getDDMStructureKey() />
13<#assign authorId = journalArticle.getUserId() />
14
15<#-- Buscar y mostrar artículos relacionados -->
16<#assign relatedArticles = journalArticleLocalService.getArticlesByStructureId(groupId, structureKey, 0, 1000, null) />
17
18 <#-- Ordenar los art�culos por fecha de modificaci�n y seleccionar los m�s recientes -->
19 <#assign relatedArticles = relatedArticles?sort_by("displayDate")?reverse />
20 <#-- Limitar a 3 si hay suficientes -->
21 <#if relatedArticles?size gt 3>
22 <#assign relatedArticles = relatedArticles[0..2] />
23 </#if>
24
25<div class="container">
26 <div class="row">
27 <#list relatedArticles as curArticle>
28 <#if curArticle.getResourcePrimKey() != resourcePrimKey>
29 <#assign viewURL = assetDisplayPageFriendlyURLProvider.getFriendlyURL("com.liferay.journal.model.JournalArticle", curArticle.getResourcePrimKey(), themeDisplay) />
30 <#if !viewURL?has_content>
31 <#assign viewURL = "/" />
32 </#if>
33 <#assign aArticleXML = saxReaderUtil.read(curArticle.getContentByLocale(locale)) />
34 <#assign autores = aArticleXML.selectNodes("//dynamic-element[@name='autor']/dynamic-content") />
35 <#assign imagenArticulo = aArticleXML.valueOf("//dynamic-element[@name='imagen']/dynamic-content/text()") />
36 <#assign detalle = aArticleXML.valueOf("//dynamic-element[@name='detalle']/dynamic-content") />
37
38 <#assign categoriesList = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", curArticle.getResourcePrimKey())/>
39 <#assign vocabularyTemaName = "Tema" />
40 <#assign vocabularyNRevistaName = "Nº de revista" />
41 <#assign vocabularyTopicName = "Topic" />
42 <#assign avoidTopic = "PRINCIPAL" />
43
44 <#-- Featured Image of the Article -->
45 <#assign featuredImage = curArticle.getArticleImageURL(themeDisplay)!""/>
46
47 <#if curArticle?index < 3>
48 <div class="col-md border-left <#if curArticle?index == 2> border-right</#if>">
49 <article class="article article-small">
50 <figure class="media">
51 <picture>
52 <#if featuredImage?has_content>
53 <img src="${featuredImage}" />
54 <#else>
55 <#if imagenArticulo?? && imagenArticulo?has_content>
56 <#attempt>
57 <#assign jsonObject = imagenArticulo?eval/>
58 <#assign entryUuid = jsonObject.uuid />
59 <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) />
60 <#assign entryAlt = jsonObject.alt />
61 <#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
62 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
63 <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) />
64 <#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) />
65 <#assign assetRenderer = assetEntry.assetRenderer />
66 <#assign imagen = assetRenderer.getURLDownload(themeDisplay) />
67 <img alt="${entryAlt}" data-fileentryid="${dlFileEntry.fileEntryId}" src="${imagen}" />
68 <#recover>
69 </#attempt>
70 </#if>
71 </#if>
72 </picture>
73 </figure>
74
75 <#if categoriesList?has_content>
76 <#list categoriesList as category>
77 <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) />
78 <#if categoryVocabulary.getName() == vocabularyNRevistaName>
79 <#assign revista_number = category.getTitle(locale)/>
80 </#if>
81 </#list>
82 </#if>
83 <p class="kicker">
84 <#if categoriesList?has_content>
85 <#list categoriesList as category>
86 <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) />
87 <#if categoryVocabulary.getName() == vocabularyTemaName>
88 <a title="${category.getTitle(locale)}">${category.getTitle(locale)}</a>
89 </#if>
90 </#list>
91 <a title="${revista_number}">${revista_number}</a>
92 <#list categoriesList as category>
93 <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) />
94 <#if categoryVocabulary.getName() == vocabularyTopicName && category.getTitle(locale) != avoidTopic>
95 <a title="${category.getTitle(locale)}">${category.getTitle(locale)}</a>
96 </#if>
97 </#list>
98 </#if>
99 </p>
100
101 <#assign title = curArticle.getTitle(locale) />
102 <h2 class="title title-standard">
103 <a href="${viewURL}" title="${title}">${title}</a>
104 </h2>
105
106 <p class="meta">
107 <#assign fecha = dateUtil.getDate(curArticle.getDisplayDate(), "d 'de' MMMM 'de' yyyy", locale) />
108 <#if fecha?has_content>
109 <span>${fecha}</span>
110 </#if>
111
112 <#assign tiempo = "" />
113 <#if detalle?has_content>
114 <#assign content = detalle?trim />
115 <#if content != "">
116 <#assign contentCount = content?replace("<[^>]+>", "", "r")?word_list?size />
117 <#if contentCount gt 0>
118 <#assign minutesValue = (contentCount/200)?round />
119 <#if minutesValue == 0>
120 <#assign tiempo = "Unos segundos" />
121 <#elseif minutesValue == 1>
122 <#assign tiempo = minutesValue + " minuto" />
123 <#else>
124 <#assign tiempo = minutesValue + " minutos" />
125 </#if>
126 </#if>
127 </#if>
128 </#if>
129 <#if tiempo?? && tiempo != "">
130 <span><i class="fa fa-regular fa-clock"></i> ${tiempo}</span>
131 </#if>
132 </p>
133
134 <p class="author">
135 <#if autores?has_content>
136 <#list autores as autor>
137 <#assign aArticleXMLAutores = saxReaderUtil.read(autor.getParent().asXML()) />
138 <#assign autorJournalArticle = aArticleXMLAutores.valueOf("//dynamic-element[@name='autor']/dynamic-content") />
139 <#attempt>
140 <#assign jsonObject = autorJournalArticle?eval/>
141 <#assign articleClassPK = jsonObject.classPK />
142 <#assign articleGroupId = getterUtil.getLong(jsonObject.groupId) />
143 <#assign articleAutor = journalArticleLocalService.fetchLatestArticle(articleClassPK?number)>
144 <#assign aArticleXMLAutor = saxReaderUtil.read(articleAutor.getContentByLocale(locale)) />
145 <#assign nombre = aArticleXMLAutor.valueOf("//dynamic-element[@name='nombre']/dynamic-content/text()") />
146 <#assign apellidos = aArticleXMLAutor.valueOf("//dynamic-element[@name='apellidos']/dynamic-content/text()") />
147 <a title="${nombre} ${apellidos}">${nombre} ${apellidos}</a>
148 <#recover>
149 </#attempt>
150 </#list>
151 </#if>
152 </p>
153 </article>
154 </div>
155 </#if>
156 </#if>
157 </#list>
158 </div>
159</div>
160
161<style>
162/* default image size */
163.nuestro-tiempo .article.article-small .media img{
164 object-fit: contain;
165 height: 200px;
166}
167/* alternative
168.nuestro-tiempo .article.article-small .media img{
169 object-fit: cover;
170 height: 100%;
171}
172*/
173</style>