Actualidad

Actualidad

Un total de 214.085 personas de 16 años o más con autorización de residencia por arraigo estaban trabajando y cotizando a la Seguridad Social en nuestro país a 31 de diciembre de 2025. 

Actualidad

Todos los españoles que residen en otro país y sus familiares han visto ampliado su derecho a asistencia sanitaria durante sus estancias temporales en territorio nacional tras la aprobación del Real Decreto 180/2026.

Actualidad

Importass, la aplicación oficial de la Tesorería General de la Seguridad Social (TGSS), ha superado los dos millones de descargas en dispositivos móviles, en concreto, son 2.065.163 hasta el 14 de marzo. 

Actualidad

Va a iniciar el trámite de audiencia pública el proyecto de Real Decreto que declara computable como cotizado para la pensión de jubilación esos periodos. Beneficiará a las personas que practicaron cualquier disciplina deportiva con contrato profesional en territorio español entre el 15 de marzo de 1980 y la fecha de su integración en el Régimen General.

Actualidad

La ministra de Inclusión, Seguridad Social y Migraciones, Elma Saiz, ha puesto en valor la política migratoria del Gobierno de España y la aportación de las personas migrantes en el crecimiento económico de nuestro país, durante su participación en un diálogo organizado por el Cercle d´Economia en Barcelona sobre “La necesidad de una política migratoria: modelo productivo, integración y bienestar social”.
Organismos lista
Últimas noticias

Atrás Proyecto Wafira

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 177:
Lexical error: encountered "u" (117), after "\"Elma Saiz, durante su participaci\u00f3n en un di\u00e1logo organizado por el Cercle d\u00b4Economia en Barcelona sobre \\".
---end-message---

The failing expression:
==> newsImage?eval  [in template "20097#20123#NOTICIA" at line 185, column 126]

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign imageData = newsImage?eval  [in template "20097#20123#NOTICIA" in macro "getRelatedNews" at line 185, column 105]
	- Reached through: @getRelatedNews  [in template "20097#20123#NOTICIA" at line 130, column 4]
----
1<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
2<#assign dlAppLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"] > 
3<#assign dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"] > 
4<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") > 
5<#assign assetEntryQuery = objectUtil('com.liferay.asset.kernel.service.persistence.AssetEntryQuery')> 
6<#assign assetPublisherHelper = serviceLocator.findService('com.liferay.asset.publisher.util.AssetPublisherHelper')> 
7<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]> 
8<#assign assetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")> 
9<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
10<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
11 
12<#assign articleId = .vars['reserved-article-id'].data> 
13<#assign className = "com.liferay.journal.model.JournalArticle"> 
14<#assign currentArticle = journalArticleLocalService.getLatestArticle(groupId, articleId, 0)/> 
15<#assign categoryList = assetCategoryLocalServiceUtil.getCategories(className, currentArticle.resourcePrimKey) > 
16<#assign tagList=assetTagLocalService.getTags(className, currentArticle.resourcePrimKey) > 
17<#assign tagSearchLayoutURL = portalUtil.getLayoutURL(layoutLocalService.fetchLayoutByFriendlyURL(themeDisplay.getLayoutSet().getGroupId(), themeDisplay.getLayoutSet().getPrivateLayout(), "/tag-search"),themeDisplay) > 
18 
19<#if (newsImage.getData())?? && newsImage.getData() != ""> 
20<#assign imageAlt = newsImage.getAttribute("alt")>   
21</#if> 
22 
23<#if !imageAlt?has_content> 
24     
25    <#assign imageAlt =.vars['reserved-article-title'].data> 
26</#if> 
27 
28 
29<div class="container ss-news"> 
30    <#if Antetitulo?? && Antetitulo.getData() != ""> 
31        <div class="row pt-2 pb-4 ml-1"> 
32        ${Antetitulo.getData()} 
33        </div> 
34    </#if> 
35    <#if title?? && title.getData() != ""> 
36        <div class="h3 row border-bottom pb-3 w-100 d-flex flex-nowrap"> 
37            <i class="ss-icon ss-icon-portal ss-icon--24 mr-3 mt-3"> 
38                <i class="path path1"></i> 
39                <i class="path path2"></i> 
40                <i class="path path3"></i> 
41            </i> 
42            <span> ${title.getData()}</span> 
43        </div> 
44    </#if> 
45 
46    <div class="row pt-2 pb-4 ml-1"> 
47        <div class="col-6 col-lg-2 p-0"> 
48            ${dateUtil.getDate(currentArticle.displayDate, "dd/MM/yyyy", locale, timeZone)} 
49        </div> 
50 
51        <div class="col-6 col-lg-4 p-0"> 
52            <#list categoryList as category> 
53                <p class="text--color mb-0"> 
54                    <strong> 
55                        ${category.getTitle(locale)} 
56                    </strong> 
57                </p> 
58            </#list> 
59        </div> 
60    </div> 
61 
62    <#if getterUtil.getBoolean(showImageInDetail.getData())> 
63        <#assign marginBottom = "pb-4" /> 
64    <#else> 
65        <#assign marginBottom = "pb-2" /> 
66    </#if> 
67 
68    <div class="row pt-2 ${marginBottom} ml-1"> 
69        ${author.getData()} 
70    </div> 
71 
72    <#if getterUtil.getBoolean(showImageInDetail.getData())> 
73        <div class="row pb-5 w-100"> 
74            <#if newsImage.getData()?? && newsImage.getData() != ""> 
75                <img class="w-100" alt="${getImageAlt(newsImage)}" 
76                     data-fileentryid="${newsImage.getAttribute("fileEntryId")}" src="${newsImage.getData()}"/> 
77            </#if> 
78        </div> 
79    </#if> 
80 
81    <#if mainText?? && mainText.getData() != ""> 
82        <div class="row"> 
83            <div class="col-12 p-0"> 
84            ${mainText.getData()} 
85            </div> 
86        </div> 
87    </#if> 
88 
89    <#if documenTitle?? && documenTitle.getData() != "" && documenTitle.getSiblings()?has_content> 
90        <div class="row mt-3 mb-3"> 
91            <#list documenTitle.getSiblings() as cur_documenTitle> 
92                <div class="col-12 col-md-6 col-lg-4"> 
93                    <a class="ss-text-link card ss-card shadow p-4 d-flex flex-column justify-content-between" href="${cur_documenTitle.document.getData()}" target="_blank" title="<@liferay_ui["message"] key="accesibility.new-window" />"> 
94                        <span class="h5 font-weight-bold">${cur_documenTitle.getData()}</span> 
95                        <i class="ss-icon ss-icon-download ss-icon--24 align-self-end"></i> 
96                    </a> 
97                </div> 
98            </#list> 
99        </div> 
100    </#if> 
101 
102    <div class="asset-tags mb-3"> 
103        <span class="taglib-asset-tags-summary"> 
104            <#if tagSearchLayoutURL?contains("/portal/layout")> 
105                <#list tagList as tag>       
106                    ${tag.name}  
107                </#list> 
108            <#else> 
109                <#list tagList as tag>   
110                    <#assign tagURL = renderResponse.createRenderURL() /> 
111 
112                    ${tagURL.setParameter("resetCur", "true")} 
113                    ${tagURL.setParameter("tag", tag.name)} 
114 
115                    <#assign searchURL = tagURL?keep_after("?")/> 
116                    <#assign searchURL = "${tagSearchLayoutURL}?" + searchURL /> 
117 
118                    <a class="label label-lg label-secondary text-uppercase" href="${searchURL}"> 
119                        ${tag.name} 
120                    </a> 
121                </#list> 
122            </#if> 
123        </span> 
124    </div> 
125 
126 
127</div> 
128 
129 <!-- Contenidos relacionados --> 
130   <@getRelatedNews />    
131 
132<script type="text/javascript"> 
133    // Correccion del scroll automatico que se realiza en el detalle de las noticias 
134    var esDetalleNoticia = true; 
135</script> 
136 
137<!-- Contenidos relacionados --> 
138<#macro getRelatedNews> 
139 
140    <#assign tagsListIds = []> 
141    <#list tagList as tag> 
142        <#assign tagsListIds = tagsListIds + [tag.tagId]> 
143    </#list> 
144 
145    <#assign groupIds = [groupId]> 
146    <#assign void = assetEntryQuery.setGroupIds(groupIds)> 
147    <#assign void = assetEntryQuery.setClassName(className)> 
148    <#assign void = assetEntryQuery.setAnyTagIds(tagsListIds)> 
149    <#assign void = assetEntryQuery.setOrderByCol1("publishDate")> 
150    <#assign relatedNews = assetEntryLocalService.getEntries(assetEntryQuery)> 
151 
152    <#if relatedNews?has_content && (relatedNews?size > 1) &&  (tagsListIds?size >= 1)> 
153 
154        <#assign baseUrl = themeDisplay.getScopeGroup().getPathFriendlyURL(themeDisplay.getLayout().isPrivateLayout(),themeDisplay)> 
155        <#assign groupUrl = groupLocalService.getGroup(themeDisplay.getLayout().getGroupId()).getFriendlyURL()> 
156 
157        <#assign relatedCount = 0 > 
158        <nav class="row mb-5 mt-5"> 
159            <div class="h4 col-12 mb-4"><@liferay_ui["message"] key="related.news" /></div> 
160			  <ul class="row mb-5 mt-5 list-related-news list-related-news"> 
161				<#list relatedNews as related> 
162					<#if journalArticleLocalService.getArticlesByResourcePrimKey(related.getClassPK())?has_content && (journalArticleLocalService.getArticlesByResourcePrimKey(related.getClassPK())?size >= 1)> 
163						<#if relatedCount < 3> 
164 
165							<#if related.getClassName() == className> 
166 
167								<#assign relatedCount = relatedCount + 1/> 
168 
169								<#assign assetRenderer = related.getAssetRenderer()/> 
170								<#assign journalArticle =  assetRenderer.getAssetObject() /> 
171 
172							<#-- Si es contenido web y de la misma estructura--> 
173								<#if articleId != journalArticle.articleId && currentArticle.getDDMStructureKey() == journalArticle.getDDMStructureKey()> 
174									<li class="col-12 col-md-6 col-xl-4"> 
175										<#assign document = saxReaderUtil.read(journalArticle.getContent())> 
176										<#assign rootElement = document.getRootElement()> 
177										<#assign defaultLanguageId = parseXml ("@default-locale", rootElement)> 
178										<#assign layoutURL = journalArticle.urlTitle /> 
179										<#assign newsTitle = getField("title", locale, defaultLanguageId, rootElement)!> 
180										<#assign newsImage = getField("newsImage", locale, defaultLanguageId, rootElement)!> 
181										<div class="ss-card ss-card--news card"> 
182											<#if newsImage?has_content> 
183												<div class="card-img-top"> 
184 
185													<#assign imageData = newsImage?eval /> 
186													<#assign image = getDocumentURL(imageData)/> 
187													<img src="${image}" alt="${imageAlt}"/> 
188												</div> 
189											</#if> 
190											<#if newsTitle?has_content && newsTitle != ""> 
191												<#assign newsUrl = getterUtil.getString(assetRenderer.getURLViewInContext(renderRequest, renderResponse,null)) /> 
192												<#if validator.isNotNull(newsUrl) > 
193													<div class="card-body shadow"> 
194														<a class="ss-text-link" 
195															href="${newsUrl}"  
196															title="Ir al contenido relacionado: ${newsTitle}">${newsTitle}</a> 
197													</div> 
198												<#elseif renderRequest.portlet.portletName == "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet" > 
199													<div class="card-body shadow">   
200														<a class="ss-text-link" 
201															href="${assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, related)}" title="Ir al contenido relacionado: ${newsTitle}">${newsTitle}</a> 
202													</div> 
203												</#if> 
204											</#if> 
205										</div> 
206									</li> 
207								</#if> 
208							</#if> 
209						</#if> 
210					</#if> 
211				</#list> 
212			</ul> 
213        </nav> 
214    </#if> 
215</#macro> 
216 
217<#function getField field languageId defaultLanguageId xml> 
218    <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]"> 
219    <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]"> 
220    <#local selector = saxReaderUtil.createXPath(localeSelector)> 
221    <#local value = selector.selectSingleNode(xml)!> 
222    <#if value?has_content><#return value.getText()></#if> 
223    <#local selector = saxReaderUtil.createXPath(defaultSelector)> 
224    <#local value = selector.selectSingleNode(xml)!> 
225    <#if value?has_content><#return value.getText()></#if> 
226    <#return ""> 
227</#function> 
228 
229<#function parseXml xpath xml> 
230    <#local selector = saxReaderUtil.createXPath(xpath)> 
231    <#local result = selector.selectSingleNode(xml)!> 
232    <#if result?has_content><#return result.getStringValue()></#if> 
233    <#return ""> 
234</#function> 
235 
236<#function getDocumentURL documentJson> 
237     
238    <#attempt> 
239    <#if documentJson?has_content> 
240        <#assign 
241        uuid = documentJson.uuid 
242        groupId = documentJson.groupId 
243        dlFile = dlAppLocalServiceUtil.getFileEntryByUuidAndGroupId(uuid,groupId?number) 
244        documentURL =  dlUtil.getPreviewURL(dlFile, dlFile.getFileVersion(), themeDisplay, '') 
245        /> 
246        <#return documentURL> 
247    </#if> 
248    <#recover> 
249     
250    <#assign documentURL ="${themeDisplay.getPathThemeImages()}/ImagenDefectoNoticia.png"/> 
251    <#return documentURL> 
252    <!-- Si se produce una excepción, haz algo aquí --> 
253     
254    </#attempt> 
255     
256    <#return ''> 
257</#function> 
258 
259<#function getImageAlt imageVar> 
260    <#assign imageAlt = imageVar.getAttribute("alt")> 
261    <#if !imageAlt?has_content> 
262        <#assign imageAlt =.vars['reserved-article-title'].data> 
263    </#if> 
264    <#return imageAlt> 
265     
266</#function>