
Grandes temas Inteligencia Artificial Fotorreportaje nº 722 Arte
The following has evaluated to null or missing: ==> revista_number [in template "10136#10174#47095546" at line 33, column 29] ---- 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#47095546" at line 33, column 27] ----
1<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
2<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
4<#assign assetDisplayPageFriendlyURLProvider = serviceLocator.findService("com.liferay.asset.display.page.portlet.AssetDisplayPageFriendlyURLProvider")>
5<#assign journalArticle = journalArticleLocalService.getArticle(getterUtil.getLong(groupId),.vars['reserved-article-id'].data) />
6<#assign categoriesList = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) />
7
8<#assign vocabularyTemaName = "Tema" />
9<#assign vocabularyNRevistaName = "Nº de revista" />
10<#assign vocabularyTopicName = "Topic" />
11<#assign avoidTopic = "PRINCIPAL" />
12
13<#assign viewURL = assetDisplayPageFriendlyURLProvider.getFriendlyURL("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey(), themeDisplay)>
14
15<article class="hero">
16 <div class="headings">
17 <#if categoriesList?has_content>
18 <#list categoriesList as category>
19 <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) />
20 <#if categoryVocabulary.getName() == vocabularyNRevistaName>
21 <#assign revista_number = category.getTitle(locale)/>
22 </#if>
23 </#list>
24 </#if>
25 <p class="kicker">
26 <#if categoriesList?has_content>
27 <#list categoriesList as category>
28 <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) />
29 <#if categoryVocabulary.getName() == vocabularyTemaName>
30 <a title="${category.getTitle(locale)}">${category.getTitle(locale)}</a>
31 </#if>
32 </#list>
33 <a title="${revista_number}">${revista_number}</a>
34 <#list categoriesList as category>
35 <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) />
36 <#if categoryVocabulary.getName() == vocabularyTopicName && category.getTitle(locale) != avoidTopic>
37 <a title="${category.getTitle(locale)}">${category.getTitle(locale)}</a>
38 </#if>
39 </#list>
40 </#if>
41 </p>
42
43 <#assign articleTitle = .vars['reserved-article-title'].data />
44 <#if (articleTitle?? && articleTitle != "")>
45 <h2 class="title">
46 ${articleTitle}
47 </h2>
48 </#if>
49
50 <p class="meta">
51 <#assign originalLocale = .locale>
52 <#setting locale = localeUtil.getDefault()>
53 <#assign fecha = .vars['reserved-article-display-date'].data?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
54 <#assign locale = originalLocale>
55
56 <#if fecha??>
57 <span>${fecha?string["d 'de' MMMM 'de' yyyy"]}</span>
58 </#if>
59
60 <#assign tiempo = "" />
61 <#if detalle.getData()?? && detalle.getData() != ''>
62 <#assign content = detalle.getData()?trim />
63 <#if content != "">
64 <#assign contentCount = content?replace("<[^>]+>", "", "r")?word_list?size />
65 <#if contentCount gt 0>
66 <#assign minutesValue = (contentCount/200)?round />
67 <#if minutesValue == 0>
68 <#assign tiempo = "Unos segundos" />
69 <#elseif minutesValue == 1>
70 <#assign tiempo = minutesValue + " minuto" />
71 <#else>
72 <#assign tiempo = minutesValue + " minutos" />
73 </#if>
74 </#if>
75 </#if>
76 </#if>
77 <#if tiempo?? && tiempo != "">
78 <span>
79 <i class="fa fa-regular fa-clock"></i> ${tiempo}
80 </span>
81 </#if>
82 </p>
83
84 <#if autor.getSiblings()?has_content>
85 <p class="author">
86 <#list autor.getSiblings() as cur_autor>
87 <#if cur_autor.getData()?? && cur_autor.getData()?has_content>
88 <#attempt>
89 <#assign jsonObject = cur_autor.getData()?eval/>
90 <#assign articleClassPK = jsonObject.classPK />
91 <#assign articleGroupId = getterUtil.getLong(jsonObject.groupId) />
92 <#assign article = journalArticleLocalService.fetchLatestArticle(articleClassPK?number)>
93 <#assign aArticleXML = saxReaderUtil.read(article.getContentByLocale(locale)) />
94 <#assign nombre = aArticleXML.valueOf("//dynamic-element[@name='nombre']/dynamic-content/text()") />
95 <#assign apellidos = aArticleXML.valueOf("//dynamic-element[@name='apellidos']/dynamic-content/text()") />
96 <a title="${nombre} ${apellidos}">${nombre} ${apellidos}</a>
97 <#recover>
98 </#attempt>
99 </#if>
100 </#list>
101 </p>
102 </#if>
103 </div>
104
105 <#if (imagen.getData())?? && imagen.getData() != "">
106 <figure class="media">
107 <img alt="${imagen.getAttribute("alt")}" data-fileentryid="${imagen.getAttribute("fileEntryId")}" src="${imagen.getData()}" />
108 </figure>
109 </#if>
110</article>
En la vida, como en el cine, querer a quienes pueblan el guion es la única forma de hacerlos humanos, creíbles, auténticos. Aunque las comparaciones son odiosas, Los perdonados y La isla de Bergman nos enseñan cómo construir un buen personaje y cómo echarlo a perder.
«Ama a tus personajes». Con esta frase resume el gurú del guion Robert McKee el método más eficaz para construir papeles creíbles y con gancho. Es imposible pensar que Indiana Jones, E.T., el mago de Oz o incluso Vito Corleone hayan salido de un escritor indiferente y desganado. No se puede crear un buen personaje si no se le quiere, si no se le respeta. Pensaba en la frase de McKee porque he visto recientemente dos películas, en cierto modo parecidas y que, sin embargo, están a años luz en su capacidad de conmover. Los perdonados se estrenó en España en julio y adapta la novela homónima de Lawrence Osborne: la historia de un matrimonio maduro —él médico y ella escritora— que viajan a Marruecos para participar en una fastuosa fiesta llena de excesos. Pretenden, de paso, recuperar su maltrecha relación. En el trayecto atropellan y matan a un joven marroquí y este suceso trastocará sus vidas. La película esgrime dos protagonistas de lujo —Ralph Fiennes y Jessica Chastain— y, sin embargo, recibió un potente y merecido varapalo por parte de la crítica, porque el guion naufraga en un aspecto clave: el diseño de los dos protagonistas. En ningún momento llegamos a entender sus motivaciones ni sus metas, las razones por las que actúan. Lo que se cuenta es dramático, pero resulta casi imposible empatizar con ese drama.
Pocos días antes, Mia Hansen-Løve —guion y dirección— estrenó La isla de Bergman, una historia escrita y dirigida por ella y protagonizada por otro matrimonio —esta vez de cineastas americanos— que viaja a la isla de Faro, el lugar donde Igmar Bergman escribió la mayoría de sus películas, en busca de inspiración. Tenemos una pareja en crisis, aunque de menor intensidad, y otro viaje exótico. Sin embargo, la indefinición de los protagonistas de Los perdonados y la falta de empatía que produce en el espectador se vuelve todo lo contrario en La isla de Bergman. Conocemos y comprendemos a los personajes, a pesar de que el incidente detonador —el primer punto de giro que hace avanzar la acción— es mucho más fuerte en el primer film que en el segundo. ¿Qué hace diferente la cinta de HansenLøve?
RobertMcKee señala la importancia de que el guionista saque de su propia experiencia, de su intimidad, de su autoconocimiento, la interioridad, las razones de los personajes, su vulnerabilidad y su valía. Eso hace Hansen-Løve: un trabajo muy cuidado de desarrollo de los papeles y, sobre todo, la cineasta se ha enamorado de sus protagonistas. Los ha creado a su imagen y semejanza, a partir de sus recuerdos y sentimientos, de sus inseguridades y de sus afirmaciones. No puede no amarlos porque, en cierto modo, son ella misma. Y ese amor se traslada del libreto a la pantalla, y también de la pantalla al espectador.
No diría yo que a un personaje así creado se le perdone todo. Con ese mimo, algunos guionistas han escrito papeles perversos, cínicos y malvados. De la pluma de autores enamorados han salido Hannibal Lecter, el Joker o Darth Vader. Los espectadores los hemos temido e incluso he mos llegado a odiarlos… pero no pudimos despreciarlos y nos resultan imposibles de olvidar. Por más que lo hayamos intentado, no hemos conseguido que nos parezcan indiferentes. Quizás porque, en el fondo, los hemos comprendido: hemos descifrado la herida del hijo en el Joker o la del padre en Darth Vader y, aunque nos horrorice el canibalismo de Hannibal Lecter en El silencio de los corderos, algo nos dice —como a la psicóloga Clarice Starling— que ese absoluto descoloque de piezas puede tener una razón que no sea solo la maldad. Intuimos también que, con toda probabilidad, Thomas Harris, al inventar a Lecter, trabajó sobre todo el motivo último de su comportamiento. Para entenderle y, si no podía amarle, al menos para tratar de redimirle. Si eso se hace con un villano, qué no hará un guionista con su héroe. Su trabajo es el de un artista que extrae de su propia humanidad los resortes para infundir espíritu a sus creaciones.
En la vida real, todos tenemos algo de guionistas cuando nos enamoramos de los personajes que pueblan nuestro día a día. Del portero que nos saluda al salir del edificio, de la taxista que quizás no habla porque le preocupa su futuro e incluso de ese vecino que siempre encuentra algo que recriminarnos antes de pronunciar un buenos días. Si conocemos sus historias, sus metas, sus dolores y fallos, será más fácil entenderlos y enamorarnos. Y convertirlos en héroes y construir con ellos la mejor película, la de la propia vida.
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.