Breadcrumb
ourteam-title

El nostre equip

People

Llistat de personal

  • Marta Ares

    Marta Ares

    Global Development and Policy Support Coordinator
  • Sara Arias Lázaro

    Sara Arias Lázaro

    Coordinadora de país (Marroc)
  • Aleix Cabrera

    Aleix Cabrera

    Tècnic de Comunicació
  • Gonzalo Fanjul

    Gonzalo Fanjul

    Director d'Anàlisi
  • Beatriz Fiestas

    Beatriz Fiestas

    Coordinadora de Comunicació. Campus Clínic
  • Clara Marín

    Clara Marín

    Coordinadora d'Anàlisi
  • Lucia Massini

    Lucia Massini

    Coordinadora de Desenvolupament Global
  • Yvette Moya-Angeler

    Yvette Moya-Angeler

    Tècnica de comunicació
  • Leire Pajín

    Leire Pajín

    Directora de Desenvolupament Global
  • Èlia Pons

    Èlia Pons

    Tècnica de Comunicació
  • Alberto Rocamora

    Alberto Rocamora

    Advocacy Advisor
  • Virginia Rodríguez

    Virginia Rodríguez

    Responsable del Projecte d'Incidència Política
  • Murchana Roychoudhury

    Murchana Roychoudhury

    Tècnica de Comunicació
  • Pau Rubio

    Pau Rubio

    Coordinador de Comunicació. Campus Mar
  • Celia Santos

    Celia Santos

    Tècnica de divulgació científica
  • Adelaida Sarukhan

    Adelaida Sarukhan

    Redactora científica
  • Yolanda Surriel

    Yolanda Surriel

    Personal Assistant to Rafael Vilasanjuan
  • Marina Tarrús

    Marina Tarrús

    Project manager / outreach technician
  • Raül Torán

    Raül Torán

    Responsable de Divulgació Científica
  • Rafael Vilasanjuan

    Rafael Vilasanjuan

    Director d'Anàlisi i Desenvolupament Global
  • Publicador de continguts
    S'ha produït un error mentre es processava la plantilla.
    The following has evaluated to null or missing:
    ==> PortalClassLoaderUtil  [in template "10153#10191#7998722" at line 67, column 112]
    
    ----
    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: #assign dynamicQuery = DynamicQueryFa...  [in template "10153#10191#7998722" at line 67, column 17]
    ----
    1<#-- ### CONSTANTES - IMPORTS - FUNCIONES ### --> 
    2<#include "${templatesPath}/TEMPLATE_INIT" /> 
    3<#include "${templatesPath}/TEMPLATE_FUNCTIONS" /> 
    4 
    5 
    6<#-- ### CONSTANTES CUSTOM ### --> 
    7<#assign VOCABULARY_INFO_NAMES = [CATEGORIES_VOCABULARY_NAME] /> 
    8<#assign DATE_PATTERN = "dd.MM.yyyy" /> 
    9<#assign URL_CURRENT = THEME_DISPLAY.getURLCurrent() /> 
    10 
    11<#-- ### SPECIAL LIBS ### --> 
    12<#attempt> 
    13	<#assign i18nblogsentryLocalService = serviceLocator.findService("org.isglobal.customblog.service.i18nblogsentryLocalService") /> 
    14	<#assign ExternalPersonnelLocalService = serviceLocator.findService("org.isglobal.customblog.service.ExternalPersonnelLocalService") /> 
    15	<#assign PersonaLocalService = serviceLocator.findService("org.isglobal.people.service.PersonaLocalService") /> 
    16	<#assign DynamicQueryFactoryUtil = staticUtil["com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil"] /> 
    17	<#assign RestrictionsFactoryUtil = staticUtil["com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil"] /> 
    18	<#assign PropertyFactoryUtil = staticUtil["com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil"] /> 
    19																																																					   
    20	 
    21	<#assign CUSTOM_LIBS_OK =  true /> 
    22<#recover> 
    23	<#assign ERROR_LIST =  ERROR_LIST + [ "Error getting libs from custom-blog-portlet or isglobal-people-portlet" ] /> 
    24	<#assign CUSTOM_LIBS_OK =  false /> 
    25</#attempt> 
    26 
    27<#function _getPersonaIdFromRequest request > 
    28	<#attempt> 
    29		<#local originalServletRequest = portalUtil.getOriginalServletRequest(request) /> 
    30		<#local parameterMap = (originalServletRequest.getParameterNames())!EMPTY_LIST /> 
    31		<#list parameterMap as parameterKey > 
    32			<#if parameterKey?matches(".*_personaId$") > 
    33				<#return originalServletRequest.getParameter(parameterKey)?number > 
    34			</#if> 
    35		</#list> 
    36	<#recover> 
    37	</#attempt> 
    38	<#return -1 > 
    39</#function> 
    40 
    41 
    42<#-- ### INFORMACION ### --> 
    43 
    44<#-- Estructura JSON ejemplo 
    45	{"blogs" : [ 
    46
    47			"title" : ${}, 
    48			"content" : ${}, 
    49			"description" : ${}, 
    50			"date" : ${}, 
    51			"url" : ${}, 
    52			"image" : ${}, 
    53			"image_alt" : ${}, 
    54			"categoryListName" : [], 
    55			"categoriesString" : ${} 
    56
    57	]} 
    58--> 
    59 
    60<#-- Get related posts from file author --> 
    61<#assign listPosts = [] /> 
    62<#assign personaId = _getPersonaIdFromRequest(request) /> 
    63<#if CUSTOM_LIBS_OK && (personaId > 0) > 
    64	<#assign persona = PersonaLocalService.getPersona(personaId) /> 
    65	<#assign blogUserId = persona.getUserId() /> 
    66	<#if (blogUserId > 0) > 
    67		<#assign dynamicQuery = DynamicQueryFactoryUtil.forClass("com.liferay.blogs.model.BlogsEntry", PortalClassLoaderUtil.getClassLoader()) /> 
    68		<#assign VOID = dynamicQuery.add(RestrictionsFactoryUtil.eq("userId", blogUserId)) /> 
    69		<#assign VOID = dynamicQuery.addOrder(PropertyFactoryUtil.forName("displayDate").desc()) /> 
    70		<#assign personaBlogs = BlogsEntryLocalService.dynamicQuery(dynamicQuery) /> 
    71		<#list personaBlogs as personaBlog > 
    72			<#assign personaBlogId = personaBlog.getEntryId() /> 
    73			<#attempt> 
    74				<#if personaBlog.getStatus() == 0 > 
    75					<#assign i18nBlog = i18nblogsentryLocalService.geti18nblogsentry(personaBlogId, locale) /> 
    76					<#if i18nBlog?has_content > 
    77						<#assign i18nBlogId = i18nBlog.getEntryId() /> 
    78						<#if !(ExternalPersonnelLocalService.findBlogId(i18nBlogId)?has_content) > 
    79							<#-- El autor es interno (de ISGlobal) --> 
    80							<#assign listPosts = listPosts + [personaBlog] /> 
    81						</#if> 
    82					</#if> 
    83				</#if> 
    84			<#recover> 
    85			</#attempt> 
    86		</#list> 
    87	</#if> 
    88</#if> 
    89 
    90<#assign blogs = [] /> 
    91<#if listPosts?has_content > 
    92 
    93	<#-- Get Blog Info --> 
    94	<#list listPosts as blogEntry> 
    95 
    96		<#-- creacion del objeto JSON a rellenar --> 
    97			<#assign data = {} /> 
    98			<#assign title = "" /> 
    99			<#assign content = "" /> 
    100			<#assign description = "" /> 
    101			<#assign date = "" /> 
    102			<#assign url = "" /> 
    103			<#assign image = "" /> 
    104 
    105		<#-- Extraccion de informacion --> 
    106			 
    107			<#-- Blog info --> 
    108			<#assign blogEntryId = blogEntry.getEntryId() /> 
    109			<#assign blogEntryUrl = blogEntry.getUrlTitle() /> 
    110			 
    111			<#assign title = blogEntry.getTitle() /> 
    112			<#assign content = blogEntry.getContent() /> 
    113			<#if CUSTOM_LIBS_OK > 
    114				<#attempt> 
    115					<#assign i18nEntry = i18nblogsentryLocalService.geti18nblogsentry(blogEntryId, locale.toString()) /> 
    116					<#if i18nEntry.getTitle()?has_content > 
    117						<#assign title = i18nEntry.getTitle() /> 
    118					</#if> 
    119					<#if i18nEntry.getContent()?has_content > 
    120						<#assign content = i18nEntry.getContent() /> 
    121					</#if> 
    122				<#recover> 
    123					<#assign ERROR_LIST =  ERROR_LIST + [ "Error getting i18n Blog Title" ] /> 
    124				</#attempt> 
    125			</#if> 
    126			<#assign description = stringUtil.shorten(htmlUtil.stripHtml(content), 150) /> 
    127			 
    128			<#assign date = dateUtil.getDate(blogEntry.getDisplayDate(), DATE_PATTERN, locale) /> 
    129			 
    130			<#assign blogUserExternalId = 0 /> 
    131			<#assign url = "${HEALTH_BLOG_PATH}/${blogEntryUrl}" /> 
    132			 
    133			<#assign image = DEFAULT_BLOG_IMAGE /> 
    134			<#if blogEntry.getSmallImageURL()?has_content > 
    135				<#assign image = blogEntry.getSmallImageURL() /> 
    136			</#if> 
    137			 
    138		<#-- Guardado de la informacion modo JSON --> 
    139		 
    140			<#assign data = data + {"title" : "${title}"} /> 
    141			<#assign data = data + {"content" : "${content}"} /> 
    142			<#assign data = data + {"description" : "${description}"} /> 
    143			<#assign data = data + {"date" : "${date}"} /> 
    144			<#assign data = data + {"url" : "${url}"} /> 
    145			<#assign data = data + {"image" : "${image}"} /> 
    146			<#assign data = data + {"image_alt" : _getAltImage(image)} /> 
    147			 
    148		<#-- JSON añadido a la lista de elementos --> 
    149			<#assign blogs = blogs + [data] /> 
    150		 
    151	</#list> 
    152</#if> 
    153 
    154<#-- ### HTML ### --> 
    155<#if blogs?has_content > 
    156	<aside class="interesting-items llista-blog"> 
    157		<h2 class="h3"><@liferay.language key="blog-posts"/></h2> 
    158		<section class="ultimes-noticies container-fluid"> 
    159			<div class="container"> 
    160				<div class="row slider-mixed "> 
    161					<div class="slider-noticies owl-carousel owl-theme noticies-state"> 
    162						 
    163						<#list blogs as elem> 
    164							<article class="item item-list item-post text-center col-12" data-link="${elem.url}"> 
    165								<div class="wrap-image wrap-image-icon"> 
    166									<img class="img-responsive" src="${elem.image}" alt="${elem.image_alt}"> 
    167								</div> 
    168								<div class=""> 
    169									<h3 class="title"> 
    170										<a href="${elem.url}">${elem.title}</a> 
    171									</h3> 
    172									<p class="description">${elem.description}</p> 
    173									<span class="info-date">${elem.date}</span> 
    174								</div> 
    175							</article> 
    176						</#list> 
    177						 
    178					</div> 
    179				</div> 
    180			</div> 
    181		</section> 
    182	</aside> 
    183</#if> 
    184 
    185<#-- Error control --> 
    186<@_errorMessage hasPermission=VIEW_ERROR_PERMISSION msgList=ERROR_LIST /> 
    187<@_jsonInfo hasPermission=ADMIN_PERMISSION info=blogs />