IB - Press Release Banner

Navigation Menu

IB - Insights - Press Releas - HeadLine

CIBC Innovation Banking Press Releases

Find the latest news on CIBC Innovation Banking, as it happens.

CustomFeedList

Latest news release : 

 
 

IB - Press Release Spokesperson List

An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy708.getLatestArticle(long)" threw an exception when invoked on com.sun.proxy.$Proxy708 object "com.liferay.journal.service.impl.JournalArticleLocalServiceImpl@4e038d26"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: journalArticle = JournalArticleLocalS...  [in template "709831#709857#665826" at line 31, column 25]
----
1<style>.component-title, .metadata-author{ 
2	display:none; 
3
4</style> 
5<#-- 
6Web content templates are used to lay out the fields defined in a web 
7content structure. 
8 
9Please use the left panel to quickly add commonly used variables. 
10Autocomplete is also available and can be invoked by typing "${". 
11--> 
12<#assign  
13    serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() 
14    themeDisplay = serviceContext.getThemeDisplay() 
15    group_id = themeDisplay.getScopeGroupId()                     
16    JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")     
17
18<#macro language 
19        key 
20
21${languageUtil.get(locale, key)} 
22</#macro> 
23<div class="insight-section spokeperson-section container"> 
24<h2 class="headline_lg text-center"><@liferay.language key="spokespeople" /></h2> 
25<#if PressReleaseSpokesPerson.getSiblings()?has_content> 
26    <div class="row"> 
27	<#list PressReleaseSpokesPerson.getSiblings() as cur_PressReleaseSpokesPerson> 
28		<#assign 
29			webContentData = jsonFactoryUtil.createJSONObject(cur_PressReleaseSpokesPerson.getData()) 
30			classPk = webContentData.classPK 
31			journalArticle = JournalArticleLocalService.getLatestArticle(classPk?number) 
32			document = saxReaderUtil.read(journalArticle.getContentByLocale(locale)) 
33            firstNameNode = document.selectSingleNode("/root/dynamic-element[@name='FirstName']/dynamic-content") 
34            lastNameNode = document.selectSingleNode("/root/dynamic-element[@name='LastName']/dynamic-content") 
35            designationNode = document.selectSingleNode("/root/dynamic-element[@name='Designation']/dynamic-content") 
36            emailAddressNode = document.selectSingleNode("/root/dynamic-element[@name='EmailAddress']/dynamic-content") 
37            imageNode = document.selectSingleNode("/root/dynamic-element[@name='ProfileImage']/dynamic-content") 
38            documentUrl = getArticleDLEntryUrl(imageNode.getStringValue()) 
39            highResolutionImageNode = document.selectSingleNode("/root/dynamic-element[@name='HighResolutionImage']/dynamic-content") 
40            highResolutionUrl = getArticleDLEntryUrl(highResolutionImageNode.getStringValue()) 
41            bioUrl=document.selectSingleNode("/root/dynamic-element[@name='BioPageLink']/dynamic-content") 
42             
43            siteUrl = layout.getGroup().getDisplayURL(themeDisplay,true) 
44             
45            webcontentFriendlyUrl = siteUrl + "/-/" + journalArticle.getUrlTitle() 
46		/> 
47		<div class="col-md-4 mb-3"> 
48		    <div class="card spokeperson-card m-0"> 
49		        <img src="${documentUrl}" class="card-img-top" alt="${firstNameNode.getText()} ${lastNameNode.getText()} <@liferay.language key='profile-picture-alt-label' />"/> 
50                <div class="card-body"> 
51                    <div class="subhead_md">${firstNameNode.getText()} ${lastNameNode.getText()}</div> 
52                        <div class="font_lg"> 
53                            <div class="spokeperson-designation  pb-2">${designationNode.getText()}</div> 
54                            <div class="row pb-2"> 
55                                <div class="icon-mail my-auto"></div> 
56                                <a ria-label="<@liferay.language key="opens-user-main-box"/>  ${emailAddressNode.getText()}" href="mailto:${emailAddressNode.getText()}" target="_blank" rel="noopener noreferrer" style="display: inline-flex;word-break: break-all;color: #383B3E;" class="spokeperson-email">${emailAddressNode.getText()}</a> 
57                            </div> 
58                            <div><a href="${bioUrl.getText()}" class="primary-color" data-spokesperson="${firstNameNode.getText()}-${lastNameNode.getText()}" aria-label="<@liferay.language key="read-biography" /> <@liferay.language key="of" /> ${firstNameNode.getText()} ${lastNameNode.getText()}"><@liferay.language key="read-biography" /></a></div> 
59                            <#if highResolutionUrl??> 
60                                <a href="${highResolutionUrl}" class="primary-color press-release-download" download data-spokesperson="${firstNameNode.getText()}-${lastNameNode.getText()}"><@liferay.language key="download-high-resolution-photo" /></a> 
61                            </#if> 
62                    </div> 
63                 </div> 
64            </div> 
65		</div> 
66		 
67	</#list> 
68	</div> 
69</#if> 
70</div> 
71<#function getArticleDLEntryUrl xmlValue> 
72    <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")> 
73    <#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")> 
74    <#local docUrl = "" /> 
75 
76    <#if xmlValue?has_content> 
77    <#local jsonObject = xmlValue?eval /> 
78 
79    <#local entryUuid = jsonObject.uuid /> 
80    <#local entryGroupId = getterUtil.getLong(jsonObject.groupId) /> 
81 
82    <#local dlFileEntry = dlFileEntryLocalService.getDLFileEntryByUuidAndGroupId(entryUuid, entryGroupId) /> 
83 
84    <#local assetEntry = assetEntryLocalService.getEntry("com.liferay.document.library.kernel.model.DLFileEntry", dlFileEntry.fileEntryId) /> 
85    <#local assetRenderer = assetEntry.assetRenderer /> 
86 
87    <#local docUrl = assetRenderer.getURLDownload(themeDisplay) /> 
88  </#if> 
89  <#return docUrl /> 
90</#function> 
91 
92<style> 
93    .spokesperson-picture { 
94        height: 75vh; 
95        object-position: top; 
96        object-fit: cover; 
97
98    .spokeperson-card { 
99        height: 100%; 
100        background: #f2f3f2 !important; 
101
102    @media only screen and (min-width: 768px) and (max-width: 992px) { 
103        .spokeperson-section { 
104        	max-width: 100% 
105
106        .spokeperson-card .subhead_md { 
107            font-size: 24px; 
108
109        .spokeperson-card .spokeperson-email { 
110            font-size: 13px; 
111
112        .spokeperson-card .font_lg { 
113            font-size: 16px; 
114
115
116    @media only screen and (min-width: 768px) and (max-width: 830px) { 
117        .spokeperson-designation { 
118            min-height: 105px; 
119
120
121@media only screen and (min-width: 831px) { 
122  .spokeperson-designation { 
123	min-height: 90px; 
124
125
126</style> 

IB - Media contacts

Media contacts

If you are not part of the media but would like more information about CIBC and its products and services, please contact us.
Katarina Milicevic
416-586-3609
Deb Rowe
416-586-7019