Upcoming Events Header

Recent Activities

Search Results
Filters
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • USABREEAMCase Study
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • Future Homes Standard: what it means and what comes next

    Future Homes Standard: what it means and what comes next

  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • NorwayBREEAMBREEAM InfrastructureRailCase Study
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • BREEAMBREEAM InfrastructureCase Study
  • What is a site waste management plan (SWMP) and how to implement one

    What is a site waste management plan (SWMP) and how to implement one

    ConstructionSmartWasteSustainabilityBlogsAntonio Hernandez
  • Fire fatalities beyond the dwelling of fire origin in Scotland

    Fire fatalities beyond the dwelling of fire origin in Scotland

  • From intent to evidence: how digital innovation and PropTech is redefining sustainability performance

    Sustainability
  • Why BREEAM New Construction V7 Matters for Carbon Reduction and the Future of Sustainable Buildings

    Why BREEAM New Construction V7 Matters for Carbon Reduction and the Future of Sustainable Buildings

    BREEAMBREEAM New ConstructionSustainabilityFlorence OwensBlogs
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
  • An error occurred while processing the template.
    The following has evaluated to null or missing:
    ==> autoPopulateDate  [in template "20096#20121#4729007" at line 35, column 45]
    
    ----
    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: #if (getterUtil.getBoolean(autoPopula...  [in template "20096#20121#4729007" at line 35, column 17]
    ----
    1<#assign  
    2    journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
    3    assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") 
    4    friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService") 
    5    classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService") 
    6    assetCategoryClassNameId = classNameLocalService.getClassNameId("com.liferay.asset.kernel.model.AssetCategory") 
    7 
    8    journalArticleId = .vars['reserved-article-id'].data 
    9    journalArticle = journalArticleService.getArticle(groupId, journalArticleId) 
    10    assetEntry = assetEntryLocalService.getEntry(journalArticle.getModelClassName(), journalArticle.getResourcePrimKey()) 
    11 
    12    assetCategories = assetEntry.getCategories() 
    13/> 
    14 
    15<#assign  
    16    requestedUrl = themeDisplay.getURLCurrent() 
    17    currentPath = requestedUrl?keep_before("?")?remove_ending("/") 
    18		queryparameter=requestedUrl?keep_after("?") 
    19    curerntPathWithoutTags = currentPath?keep_before("/tags/") 
    20/> 
    21 
    22<#assign excludedCategories = ["News","Events","Report","Reports","z_Report_listing","Report_list","BREEAMNews","LPCB","BRE Group","Cities","Press releases","Case_Study","Case study","BREEAM_Insights","BREEAM_NEWS","Insights"] /> 
    23 
    24<div class="c-article-stackable-card c-article-stackable-card--align-bottom"> 
    25    <#if (CardImage.getData())?? && CardImage.getData() != ""> 
    26        <div class="c-article-stackable-card__image"> 
    27				<#if (CardImage.getData())?? && CardImage.getData() != ""> 
    28            <img class="img-fluid lazy" loading="lazy"  alt='${CardImage.getAttribute("alt")}' 
    29                data-fileentryid='${CardImage.getAttribute("fileEntryId")}' data-src="${CardImage.getData()}" /> 
    30        </#if> 
    31				</div> 
    32    </#if> 
    33    <div class="c-article-stackable-card__body"> 
    34		 
    35		<#if (getterUtil.getBoolean(autoPopulateDate.getData()) && getterUtil.getBoolean(autoPopulateAuthor.getData())?has_content) || (MigrationDate.getData())?has_content> 
    36            <div class="c-article-stackable-card__byline c-article-stackable-card__byline--separator mb-1 mt-0"> 
    37        <#else> 
    38            <div class="c-article-stackable-card__byline mb-1 mt-0"> 
    39        </#if> 
    40                        
    41            <#if getterUtil.getBoolean(autoPopulateDate.getData())> 
    42                <span class="c-article-stackable-card__date"> 
    43                    <#assign CardDate=.vars["reserved-article-create-date"].data /> 
    44                    <#if validator.isNotNull(CardDate)> 
    45                        <#assign ArticleCardDate_DateObj=dateUtil.parseDate("EEE, d MMM yyyy HH:mm:ss Z", CardDate,locale)> 
    46                        ${dateUtil.getDate(ArticleCardDate_DateObj, "dd MMMMM yyyy", locale)} 
    47                    </#if> 
    48                </span> 
    49            <#else> 
    50                <span class="c-article-stackable-card__date"> 
    51                    <#if (MigrationDate.getData())?has_content> 
    52                        <#assign ArticleMigrationDate_Data=getterUtil.getString(MigrationDate.getData())> 
    53                        <#assign newDateobj=dateUtil.parseDate("yyyy-MM-dd HH:mm:ss", ArticleMigrationDate_Data, locale) /> 
    54                        <#assign migraDate=dateUtil.getDate(newDateobj, "dd MMMMM yyyy", locale) /> 
    55                        ${migraDate} 
    56                    </#if> 
    57                </span> 
    58            </#if> 
    59 
    60            <#if (AuthorName.getData())?has_content > 
    61						    <span class="c-article-stackable-card__author">${AuthorName.getData()}</span> 
    62            <#else> 
    63						  <#if getterUtil.getBoolean(autoPopulateAuthor.getData())> 
    64                <span class="c-article-stackable-card__author">${.vars["reserved-article-author-name"].data}</span> 
    65              </#if> 
    66						</#if> 
    67 
    68            </div> 
    69 
    70    <#if (CardTitle.getData())??> 
    71        <h3 class="c-article-stackable-card__title d-flex"> 
    72            <#if (buttonLink.getFriendlyUrl())?has_content> 
    73                <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}">${CardTitle.getData()}</a> 
    74            <#elseif (ExternalLink.getData())?has_content> 
    75                <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank">${CardTitle.getData()}</a> 
    76            <#else> 
    77                ${CardTitle.getData()} 
    78            </#if> 
    79        </h3> 
    80    </#if> 
    81 
    82    <#if assetCategories??> 
    83 
    84        <div class="c-article-stackable-card__category mt-auto mb-0"> 
    85            <#assign filterCategories = [] /> 
    86            <#list assetCategories as category> 
    87                <#if ! excludedCategories?seq_contains(category.getName())> 
    88                    <#assign filterCategories += [category] /> 
    89                </#if> 
    90            </#list> 
    91            <#list filterCategories as category> 
    92                <#assign categoryName = category.getName() /> 
    93 
    94                <#assign friendlyURLs =  
    95                    friendlyURLEntryLocalService.getFriendlyURLEntryLocalizations 
    96                        (category.getGroupId(), assetCategoryClassNameId, category.getCategoryId(), localeUtil.toLanguageId(locale), 0, 1, null) /> 
    97                <#if friendlyURLs?size == 1> 
    98                    <#assign curTagFriendlyUrl = friendlyURLs[0].getUrlTitle() /> 
    99                </#if> 
    100 
    101                <#assign curTagUrl = curerntPathWithoutTags + "/tags/" + curTagFriendlyUrl + "?" +queryparameter /> 
    102 
    103                <a href="${curTagUrl}" class="c-new-small-tag">${categoryName}</a><#sep>,&nbsp;</#sep> 
    104 
    105            </#list> 
    106        </div> 
    107    </#if> 
    108 
    109</div> 
    110 
    111<div class="c-link-redirection d-none"> 
    112    <#if (buttonLink.getFriendlyUrl())?has_content> 
    113        <a data-senna-off="true" href="${buttonLink.getFriendlyUrl()}"> 
    114            ${buttonLink.getFriendlyUrl()} 
    115        </a> 
    116    </#if> 
    117    <#if (ExternalLink.getData())?has_content> 
    118        <a data-senna-off="true" href="${ExternalLink.getData()}" target="_blank"> 
    119            ${ExternalLink.getData()} 
    120        </a> 
    121    </#if> 
    122</div> 
    123 
    124<style> 
    125    .c-article-stackable-card__title a { 
    126        font-family: "Recife Text"; 
    127        font-size: 1.75rem; 
    128        line-height: 2.125rem; 
    129        color: #1E1836; 
    130
    131    .c-article-stackable-card__category a { 
    132        font-family: unset; 
    133        /*color: #757283;*/ 
    134				color: unset; 
    135
    136		.c-report-listing .c-article-stackable-card__category:hover, 
    137		.c-article-stackable-card:hover .c-article-stackable-card__title { text-decoration: none; } 
    138</style> 
Category Facet