Blog del Grupo Social ONCE

 

Ejemplos sencillos de lenguaje inclusivo para el día a día

Aprende con ejemplos reales cómo usar el lenguaje inclusivo. Comunica sin excluir a nadie con frases fáciles de aplicar.

Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy147.getTags(String, long)" threw an exception when invoked on com.sun.proxy.$Proxy147 object "com.liferay.asset.tags.internal.service.AssetTagLocalServiceWrapper@6128a4c0"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign blogTags = AssetTagLocalServi...  [in template "20192#20219#44696503" at line 75, column 37]
----
1<#assign currentURL = portalUtil.getCurrentURL(renderRequest) /> 
2<#assign firmaIdParam = portalUtil.getOriginalServletRequest(portalUtil.getHttpServletRequest(renderRequest)).getParameter("firmaid")!"" /> 
3 
4<#assign blogsEntryLocalService = serviceLocator.findService("com.liferay.blogs.service.BlogsEntryLocalService")/> 
5 
6<#if entries?has_content> 
7    <#assign AssetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")> 
8    <#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
9     
10    <#-- 1. Capturar firmaId de la URL y servicio de enlaces --> 
11    <#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.link.service.AssetLinkLocalService") /> 
12    <#assign pathFriendlyURLPublic = "/web" /> 
13    <#assign groupFriendlyURL = "" /> 
14    <#if themeDisplay??> 
15        <#assign pathFriendlyURLPublic = themeDisplay.getPathFriendlyURLPublic() /> 
16        <#assign groupFriendlyURL = themeDisplay.getScopeGroup().getFriendlyURL() /> 
17    <#else> 
18        <#assign group = GroupLocalService.fetchGroup(groupId) /> 
19        <#assign groupFriendlyURL = group.getFriendlyURL() /> 
20    </#if> 
21    <#assign preffixPublicSiteURL = pathFriendlyURLPublic + groupFriendlyURL /> 
22 
23    <div class="container"> 
24        <div class="row blogs justify-content-between"> 
25            <#list entries as curEntry> 
26                <#-- 2. Lógica de filtrado --> 
27                <#assign showEntry = true /> 
28                 
29                <#if firmaIdParam?has_content> 
30                    <#assign showEntry = false /> 
31                    <#assign links = assetLinkLocalService.getDirectLinks(curEntry.entryId) /> 
32                    <#list links as link> 
33                        <#if link.entryId2?string == firmaIdParam || link.entryId1?string == firmaIdParam> 
34                            <#assign showEntry = true /> 
35                            <#break> 
36                        </#if> 
37                    </#list> 
38                </#if> 
39 
40                <#-- 3. Renderizado condicional --> 
41                <#if showEntry> 
42                    <#assign currentBlogClassPK = curEntry.classPK/> 
43                    <#assign curBlogEntry = blogsEntryLocalService.getEntry(currentBlogClassPK)/> 
44                    <#assign viewEntryPortletURL = renderResponse.createRenderURL() /> 
45										${viewEntryPortletURL.setParameter("mvcRenderCommandName", "/blogs/view_entry")} 
46										<#if validator.isNotNull(curBlogEntry.getUrlTitle())> 
47											${viewEntryPortletURL.setParameter("urlTitle", curBlogEntry.getUrlTitle())} 
48										<#else> 
49											${viewEntryPortletURL.setParameter("entryId", curBlogEntry.getEntryId()?string)} 
50										</#if> 
51											 
52										<#assign link = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry)> 
53											 
54                    <div class="col-md-12 col-lg-6 d-flex align-items-stretch"> 
55                        <div class="card"> 
56                            <#if curBlogEntry.getCoverImageURL(themeDisplay)??> 
57                                <div class="card-img"> 
58                                    <img src="${curBlogEntry.getCoverImageURL(themeDisplay)}"> 
59                                </div> 
60                            </#if> 
61                             
62                            <div class="card-body"> 
63                                <h2 class="card-title"> 
64                                    <a class="title__blog__link mt-auto" href="/b/${curBlogEntry.urlTitle}"> 
65                                        ${curBlogEntry.getTitle()} 
66                                    </a> 
67                                </h2> 
68                                <#if curBlogEntry.getDescription()??> 
69                                    <p class="card-text">${curBlogEntry.getDescription()}</p> 
70                                </#if> 
71                            </div> 
72                             
73                            <div class="card-footer"> 
74                                <div class="d-flex flex-wrap align-items-start float-left pb-3"> 
75                                    <#assign blogTags = AssetTagLocalService.getTags("com.liferay.blogs.model.BlogsEntry", curBlogEntry.entryId)> 
76																		<#assign bookmarkURL = renderResponse.createRenderURL() /> 
77																		${bookmarkURL.setWindowState(windowStateFactory.getWindowState("NORMAL"))} 
78																		${bookmarkURL.setParameter("mvcRenderCommandName", "/blogs/view_entry")} 
79																		<#if validator.isNotNull(curBlogEntry.getUrlTitle())> 
80																			${bookmarkURL.setParameter("urlTitle", curBlogEntry.getUrlTitle())} 
81																	  <#else> 
82																			${bookmarkURL.setParameter("entryId", curBlogEntry.getEntryId()?string)} 
83																	  </#if> 
84                                    <#if blogTags?has_content> 
85                                        <#list blogTags as blogTag> 
86                                            <#assign tagURL = renderResponse.createRenderURL() /> 
87                                            ${tagURL.setParameter("resetCur", "true")} 
88                                            ${tagURL.setParameter("tag", blogTag.getName())} 
89                                            <a class="blog-categories" href="${tagURL}"><i aria-hidden="true">#</i>${blogTag.getName()}</a> 
90                                        </#list> 
91                                    </#if> 
92                                </div> 
93                                <div class="float-right img"> 
94                                    <a href="/b/${curBlogEntry.urlTitle}" class="gso__readmore-square"> 
95                                        <@liferay.language key="Leer Más" /> 
96                                    </a> 
97                                </div> 
98                            </div> 
99                        </div> 
100                    </div> 
101                </#if> <#-- Fin de if showEntry --> 
102            </#list> 
103        </div> 
104    </div> 
105</#if> 
106									 
107<style> 
108/* --- Configuración de Imágenes --- */ 
109.card-img, 
110.card-img picture { 
111  width: 100%; 
112  height: 250px; 
113  display: block; 
114
115 
116img { 
117  height: inherit; 
118  width: inherit; 
119  object-fit: cover; 
120
121 
122/* --- Estructura de la Card --- */ 
123.card { 
124  border-radius: 0 96px 0 0; 
125  overflow: hidden; 
126  border: none; 
127  line-height: 150% !important; 
128  margin-bottom: 100px; 
129
130 
131.card h2, 
132.card p { 
133  line-height: 150% !important; 
134  word-wrap: normal; /* Corregido: era world-wrap */ 
135
136 
137.card .card-body { 
138  margin: 25px 40px; 
139  padding: unset; 
140
141 
142/* --- Tipografía y Enlaces --- */ 
143.card-title { 
144  margin-bottom: 15px; 
145  font-size: 1.3rem !important; 
146
147 
148.card-title a { 
149  color: #485156; 
150  font-family: "Avenir LT Std", sans-serif; 
151  font-size: 28px; 
152  font-style: normal; 
153  font-weight: 700; 
154  transition: color 0.3s ease-in-out; 
155  text-decoration: none; 
156
157 
158.card-body .card-text { 
159  color: #485156; 
160  font-family: "Avenir LT Std", sans-serif; 
161  font-size: 20px; 
162  font-style: normal; 
163  font-weight: 400; 
164  margin-bottom: 27px; 
165
166 
167/* --- Footer y Elementos Extra --- */ 
168.card .card-footer { 
169  display: contents; 
170  height: max-content; 
171
172 
173.card-footer .d-flex { 
174  margin-left: 40px; 
175  width: 60%; 
176  padding: 1.25rem; 
177
178 
179.card-footer .float-left div:first-child { 
180  padding-left: unset; 
181
182 
183.img { 
184  bottom: 0; 
185  right: 0; 
186  position: absolute; 
187
188 
189/* --- Media Queries --- */ 
190 
191/* Escritorio / Tablet grande */ 
192@media (min-width: 991px) { /* Corregido: punto y coma eliminado */ 
193  .container .blogs .col-lg-6 { 
194    flex: 0 0 47%; 
195    max-width: 47%; 
196
197
198 
199/* Móvil */ 
200@media (max-width: 500px) { 
201  .blog-categories { 
202    padding-right: 0; 
203
204 
205  .img { 
206    width: auto; 
207    position: unset; 
208
209 
210  #content, 
211  #content section.bg- .col-md-12 { 
212    padding: 0; 
213
214 
215  .card .card-body { 
216    padding: unset; 
217    margin: 1.25rem; 
218
219 
220  .card-title a { 
221    font-size: 1.375rem; 
222
223
224 
225/* --- Liferay Fixes --- */ 
226#p_p_id${renderResponse.getNamespace()} .portlet-title-text { 
227  display: none; 
228
229</style> 
Editar imagen banner principal