En familia. El arte de ser persona

La obra maestra que podemos ser

4 de diciembre de 2024 2 minutos


Ricardo Piñero Moral
Palabra, 2024
128 páginas | 9,90 euros

La familia, como el talento que posee un artista, es un regalo que se acoge y una misión que se emprende. En su reflexión sobre esta idea, el catedrático de Estética Ricardo Piñero parte del diagnóstico del mundo contemporáneo. El desconcierto, la incomprensión, el agotamiento, la desmembración y la secularización que vemos en la sociedad también se palpan en el arte. Pero, lejos de quedarse en un «pesimismo comodón», y apoyado a lo largo del libro en las palabras que Juan Pablo II y Benedicto XVI dirigieron en diferentes ocasiones a los artistas, el autor propone hacer de la propia vida y de la propia familia una obra maestra. 

Para este empeño, el arte cumple un papel no solo de «sismógrafo sensible de la vida, de la sociedad, de la realidad humana», sino también de explorar soluciones, ya que «se atreve a aventurar algunas respuestas». Así se entiende la importancia que otorga Piñero a experimentar la verdadera belleza, que llena de entusiasmo y confianza cada día: «No es algo accesorio o secundario en la búsqueda del sentido y de la felicidad», en palabras del papa alemán.

Para cerrar el libro, el autor repasa una selección de obras en las que se plasman diferentes valores que considera medulares para la familia: así Van Eyck en El matrimonio Arnolfini habla de respeto y delicadeza; Murillo pinta la responsabilidad en la Sagrada Familia del pajarito; Las meninas, de Velázquez, expresan justicia; y la confianza se cincela en las formas entrelazadas de The Family Group, de Moore. A través de estas y otras seis obras más, se perciben los acordes de lo que afirma Piñero: «Si la belleza puede salvarnos, solo lo puede porque es signo de amor; y la familia es el espacio de amor, es el espacio en el que somos amados y aprendemos a amar».


Otras reseñas

Se ha producido un error al procesar la plantilla.
Failed to "?eval" string with this error:

---begin-message---
Syntax error in ?eval-ed string in line 1, column 2:
Encountered ")", but was expecting one of:
    <STRING_LITERAL>
    <RAW_STRING>
    "false"
    "true"
    <INTEGER>
    <DECIMAL>
    "."
    "+"
    "-"
    "!"
    "["
    "("
    "{"
    <ID>
---end-message---

The failing expression:
==> articleAuthorNodes[0].getText()?eval  [in template "10136#10174#53980896" at line 45, column 46]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign articleAuthorJson = articleAu...  [in template "10136#10174#53980896" at line 45, column 17]
----
1<#-- Obtener los servicios necesarios --> 
2<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") /> 
3<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
4<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
5<#assign assetDisplayPageFriendlyURLProvider = serviceLocator.findService("com.liferay.asset.display.page.portlet.AssetDisplayPageFriendlyURLProvider") /> 
6 
7<#-- Obtener el art�culo actual --> 
8<#assign groupId = themeDisplay.getScopeGroupId() /> 
9<#assign journalArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
10<#assign resourcePrimKey = journalArticle.getResourcePrimKey() /> 
11<#assign structureKey = journalArticle.getDDMStructureKey() /> 
12 
13<#-- Obtener el autor del art�culo actual --> 
14<#assign aArticleXML = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) /> 
15<#assign authorNodes = aArticleXML.selectNodes("//dynamic-element[@name='autor']/dynamic-content") /> 
16<#assign authorId = "" /> 
17<#assign authorTitle = "" /> 
18 
19<#assign categoriesList = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) /> 
20<#assign vocabularyTopicName = "Topic" /> 
21 
22    <#list categoriesList as category> 
23	    <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) /> 
24    	<#if categoryVocabulary.getName() == vocabularyTopicName> 
25            <#assign categorySearch = category.getTitle(locale)/> 
26        </#if> 
27	  </#list>   
28 
29<#if authorNodes?has_content> 
30    <#assign authorJson = authorNodes[0].getText()?eval /> 
31    <#assign authorId = authorJson.classPK /> 
32    <#assign authorTitle = authorJson.title /> 
33</#if> 
34 
35<#-- Buscar art�culos del mismo autor y estructura --> 
36<#assign relatedArticles = [] /> 
37<#if authorId?has_content> 
38    <#assign allArticles = journalArticleLocalService.getArticlesByStructureId(groupId, structureKey, 0, 1000, null) /> 
39    <#list allArticles as article> 
40        <#if article.getResourcePrimKey() != resourcePrimKey && !article.isInTrash()> 
41            <#assign articleXML = saxReaderUtil.read(article.getContentByLocale(locale)) /> 
42             
43            <#assign articleAuthorNodes = articleXML.selectNodes("//dynamic-element[@name='autor']/dynamic-content") /> 
44            <#if articleAuthorNodes?has_content> 
45                <#assign articleAuthorJson = articleAuthorNodes[0].getText()?eval /> 
46                <#if articleAuthorJson.classPK == authorId> 
47                    <#assign relatedArticles = relatedArticles + [article] /> 
48                </#if> 
49            </#if> 
50        </#if> 
51    </#list> 
52    <#-- Ordenar los art�culos por fecha de modificaci�n y seleccionar los m�s recientes --> 
53    <#assign relatedArticles = relatedArticles?sort_by("modifiedDate")?reverse /> 
54    <#-- Limitar a 5 si hay suficientes --> 
55    <#if relatedArticles?size gt 5> 
56        <#assign relatedArticles = relatedArticles[0..4] /> 
57    </#if> 
58</#if> 
59 
60<#if relatedArticles?has_content> 
61    <div class="container"> 
62        <div class="row"> 
63            <#list relatedArticles as curArticle> 
64                <#-- Manejo de error para obtener la URL del art�culo --> 
65                <#assign viewURL = "" /> 
66                <#attempt> 
67                    <#if assetDisplayPageFriendlyURLProvider??> 
68                        <#assign viewURL = assetDisplayPageFriendlyURLProvider.getFriendlyURL("com.liferay.journal.model.JournalArticle", curArticle.getResourcePrimKey(), themeDisplay) /> 
69                    <#else> 
70                        <#assign viewURL = themeDisplay.getPortalURL() + themeDisplay.getPathMain() + "/portal/content/" + curArticle.getGroupId() + "/" + curArticle.getArticleId() /> 
71                    </#if> 
72                <#recover> 
73                    <#assign viewURL = themeDisplay.getPortalURL() + themeDisplay.getPathMain() + "/portal/content/" + curArticle.getGroupId() + "/" + curArticle.getArticleId() /> 
74                </#attempt> 
75 
76                <#assign curArticleXML = saxReaderUtil.read(curArticle.getContentByLocale(locale)) /> 
77                <#assign title = curArticle.getTitle(locale) /> 
78                <#assign tituloDestacado = curArticleXML.valueOf("//dynamic-element[@name='tituloDestacado']/dynamic-content") /> 
79                <#assign imagenArticulo = curArticleXML.valueOf("//dynamic-element[@name='imagen']/dynamic-content/text()") /> 
80                <#assign detalle = curArticleXML.valueOf("//dynamic-element[@name='detalle']/dynamic-content") /> 
81                <#-- Featured Image of the Article --> 
82                <#assign featuredImage = curArticle.getArticleImageURL(themeDisplay)!""/> 
83 
84                <#assign categoriesList = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", curArticle.getResourcePrimKey())/> 
85                <#assign vocabularyTemaName = "Tema" /> 
86                <#assign vocabularyNRevistaName = "N� de revista" /> 
87                 
88                <#if categoriesList?has_content> 
89                    <#list categoriesList as category> 
90                        <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) /> 
91                            <#if categoryVocabulary.getName() == vocabularyTopicName> 
92                                <#if categorySearch == category.getTitle(locale)> 
93                        <div class="col-md"> 
94                    <article class="article article-review"> 
95                        <figure class="media"> 
96                            <picture> 
97                                <#-- show featuredImage if set. --> 
98                                <#if featuredImage?has_content> 
99                                    <img src="${featuredImage}" /> 
100                                <#else> 
101                                    <#if imagenArticulo?? && imagenArticulo?has_content> 
102                                        <#attempt> 
103                                            <#assign jsonObject = imagenArticulo?eval/> 
104                                            <#assign entryUuid = jsonObject.uuid />     
105                                            <#assign entryGroupId = getterUtil.getLong(jsonObject.groupId) /> 
106                                            <#assign entryAlt = jsonObject.alt /> 
107                                            <#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
108                                            <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
109                                            <#assign dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) /> 
110                                            <#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) /> 
111                                            <#assign assetRenderer = assetEntry.assetRenderer /> 
112                                            <#assign imagen = assetRenderer.getURLDownload(themeDisplay) /> 
113                                            <img alt="${entryAlt}" data-fileentryid="${dlFileEntry.fileEntryId}" src="${imagen}" /> 
114                                        <#recover> 
115                                        </#attempt> 
116                                    </#if>  
117                                </#if>                                  
118                            </picture> 
119                        </figure> 
120                         
121                        <p class="author"> 
122                                <a title=${authorTitle}>${authorTitle}</a> 
123                        </p> 
124                         
125                        <#-- No es necesario para rese�as 
126                        <p class="kicker"> 
127                            <#if categoriesList?has_content> 
128                                <#list categoriesList as category> 
129                                    <#assign categoryVocabulary = assetVocabularyLocalService.getAssetVocabulary(category.getVocabularyId()) /> 
130                                    <#if categoryVocabulary.getName() == vocabularyTemaName || categoryVocabulary.getName() == vocabularyNRevistaName> 
131                                        <a title="${category.getTitle(locale)}">${category.getTitle(locale)}</a> 
132                                    </#if> 
133                                </#list> 
134                            </#if> 
135                        </p> 
136                         --> 
137                             
138                        <h2 class="title title-standard"> 
139                            <a href="${viewURL}" title="${title}">${title}</a> 
140                        </h2> 
141                             
142                        <#-- No es necesario para rese�as 
143                        <p class="meta"> 
144                            <#assign fecha = dateUtil.getDate(curArticle.getDisplayDate(), "d 'de' MMMM 'de' yyyy", locale)  /> 
145                            <#if fecha?has_content> 
146                                <span>${fecha}</span> 
147                            </#if> 
148                             
149                            <#assign tiempo = "" /> 
150                            <#if detalle?has_content> 
151                                <#assign content = detalle?trim /> 
152                                <#if content != ""> 
153                                    <#assign contentCount = content?replace("<[^>]+>", "", "r")?word_list?size /> 
154                                    <#if contentCount gt 0> 
155                                        <#assign minutesValue = (contentCount/200)?round /> 
156                                        <#if minutesValue == 0> 
157                                            <#assign tiempo = "Unos segundos" /> 
158                                        <#elseif minutesValue == 1> 
159                                            <#assign tiempo = minutesValue + " minuto" /> 
160                                        <#else> 
161                                            <#assign tiempo = minutesValue + " minutos" /> 
162                                        </#if> 
163                                    </#if> 
164                                </#if> 
165                            </#if>                             
166                            <#if tiempo?? && tiempo != ""> 
167                                <span><i class="fa fa-regular fa-clock"></i> ${tiempo}</span> 
168                            </#if> 
169                        </p> 
170                         --> 
171                             
172                         
173                    </article> 
174                </div> 
175                                </#if> 
176                            </#if> 
177         
178                    </#list> 
179                </#if> 
180                 
181                
182            </#list> 
183        </div> 
184    </div> 
185<#else> 
186    <#-- No se encontraron relacionados --> 
187    <div class="text"><p>No se han encontrado articulos relacionados</p></div> 
188</#if> 
189 
190<style> 
191/* default image size  TODO: fix in theme, this is a temporal workaround. */ 
192.nuestro-tiempo .article.article-review .media{ 
193    height: initial; 
194
195</style> 

¿Quieres escribir en nt?

Siempre estamos buscando buenos colaboradores para la revista. Si tienes una buena historia, queremos escucharte.

Newsletter