Detail Financial Services
An error occurred while processing the template.
Java method "com.liferay.asset.publisher.web.internal.util.AssetPublisherHelperImpl.getAssetViewURL(com.liferay.portal.kernel.portlet.LiferayPortletRequest, com.liferay.portal.kernel.portlet.LiferayPortletResponse, com.liferay.asset.kernel.model.AssetEntry, boolean)" threw an exception when invoked on com.liferay.asset.publisher.web.internal.util.AssetPublisherHelperImpl object "com.liferay.asset.publisher.web.internal.util.AssetPublisherHelperImpl@14b46bd4"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign directUrl = assetPublisherHel... [in template "20097#20123#117955" at line 83, column 25]
----
1<style>
2 .rl-courses .content .title {
3 height: 60px;
4 overflow: hidden;
5 display: -webkit-box;
6 -webkit-line-clamp: 3;
7 -webkit-box-orient: vertical;
8 }
9 .rl-courses .price {
10 color: #0097ce;
11 padding-left: 10px;
12 }
13
14</style>
15
16<section class="rl-courses">
17<div class="container">
18 <h2 class="title-1">What Others Also Enrolled In</h2>
19 <div class="sly-wrap sp-bot-2">
20 <div class="multisly" data-slide="1">
21 <div class="grid-4 clearfix sly-content" id="recommended_courses_home">
22
23 <!--LOOPING-->
24 <#if entries?has_content>
25 <#list entries as curEntry>
26
27 <#assign entryId = curEntry.getClassPK()/>
28 <#assign renderer = curEntry.getAssetRenderer()/>
29 <#assign className = renderer.getClassName()/>
30
31 <#if className = "com.liferay.journal.model.JournalArticle">
32
33 <#assign journalArticle = renderer.getArticle() />
34 <#assign document = saxReaderUtil.read(journalArticle.getContent()) />
35 <#assign rootElement = document.getRootElement()/>
36
37 <#assign getDisplayDate = journalArticle.getDisplayDate()/>
38 <#assign displayDate = dateUtil.getDate(getDisplayDate, "dd MMM yyyy", locale)/>
39
40 <#if journalArticle.getExpirationDate()??>
41 <#assign dateExp = journalArticle.getExpirationDate()/>
42 <#assign displayExpDate = dateUtil.getDate(dateExp, "dd MMM yyyy", locale)/>
43 <#assign expiredDate = displayExpDate/>
44 <#else>
45 <#assign expiredDate = "No Expired"/>
46 </#if>
47
48 <#list rootElement.elements() as dynamicElement>
49 <#if "image" == dynamicElement.attributeValue("name")>
50 <#assign ImageBackground = dynamicElement.element("dynamic-content").getStringValue()/>
51 <#assign path_image = "/documents/"/>
52 <#assign image_json = jsonFactoryUtil.createJSONObject(ImageBackground)/>
53 <#assign image_title = image_json.getString('title') />
54 <#assign image_grupid = image_json.getString('groupId') + "/" />
55 <#assign image_fileEntryId = image_json.getString('fileEntryId') + "/" />
56 <#assign image_name = stringUtil.replace(image_json.getString('name'), " ","%20" )/>
57 <#assign image_uuid = "/" + image_json.getString('uuid') + "/"/>
58 <#assign full_image = path_image + image_grupid + image_fileEntryId + image_name + image_uuid />
59 </#if>
60 <#if "title" == dynamicElement.attributeValue("name")>
61 <#assign title = dynamicElement.element("dynamic-content").getText()/>
62 </#if>
63 <#if "popular" == dynamicElement.attributeValue("name")>
64 <#assign popular = dynamicElement.element("dynamic-content").getText()/>
65 </#if>
66 <#if "courseTitle" == dynamicElement.attributeValue("name")>
67 <#assign courseTitle = dynamicElement.element("dynamic-content").getText()/>
68 </#if>
69
70 <#if "content" == dynamicElement.attributeValue("name")>
71 <#assign content = dynamicElement.element("dynamic-content").getText()/>
72 </#if>
73 <#if "funded" == dynamicElement.attributeValue("name")>
74 <#assign funded = dynamicElement.element("dynamic-content").getText()/>
75 </#if>
76 <#if "price" == dynamicElement.attributeValue("name")>
77 <#assign price = dynamicElement.element("dynamic-content").getText()/>
78 </#if>
79
80
81
82 </#list>
83 <#assign directUrl = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, curEntry, true)/>
84 <#assign finalUrl = directUrl>
85
86
87 <div class="item active">
88 <div class="inner imgeffect">
89 <figure class="imgwrap" style="height:270px !important">
90 <img class="w-100" style="height: 100%; object-fit: cover;" src="${full_image}"
91 ret-data="22618">
92 <!--<#if popular == "true">-->
93 <!-- <div class="status">POPULAR</div>-->
94 <!--<#else>-->
95
96 <!--</#if>-->
97
98 </figure>
99
100 <div class="content" style="height:150px">
101 <div class="box-status">
102 <#if popular == "true">
103 <span class="popular">Popular</span>
104 </#if>
105 <#if funded == "true">
106 <span class="funded">Funded</span>
107 </#if>
108 </div>
109 <p class="title">${courseTitle}</p>
110 <a href="${finalUrl}"
111 class="fxlink">View detail</a>
112 <div class="float-right small-text">
113 <#if funded == "true">
114 Before Funding
115 </#if>
116
117 <#assign fixprice="${price}">
118
119 <!--<#assign labelTitik=price?replace('.', ' titik ' ) />-->
120 <#if price == "" || price == "0" >
121 <!--<strong class="price"></strong>-->
122 <#else>
123 <strong class="price">$${fixprice?number?string.currency?replace('¤' , '')}</strong>
124 </#if>
125 </div>
126 </div>
127
128 <a data-senna-off="true" href="${finalUrl}"
129 class="fxlink link-detail">View detail</a>
130 </div>
131 </div>
132
133 </#if>
134 </#list>
135 </#if>
136 <!--LOOPING-->
137 </div>
138 </div>
139 <div class="scrollbar">
140 <div class="handle">
141 <div class="mousearea"></div>
142 </div>
143 </div>
144 <!--<button class="btn prevPage"><i class="fas fa-arrow-left"></i> prev</button>-->
145 <!--<button class="btn nextPage"><i class="fas fa-arrow-right"></i> next</button>-->
146 </div>
147 <!--<div class="text-center sp-bot-1">-->
148 <!-- <a href="#" class="btn-1">View all courses</a>-->
149 <!--</div>-->
150</div>
151</section>
152<script type="text/javascript">
153 $(document).ready(function(){
154 /* Updated 3 Jan 2025 */
155 let hiddenTileCnt = 0;
156 $('.rl-courses .multisly .item').each(function(){
157 var urlDetail = $(this).find('.link-detail').attr("href").replace(/en/, "en-gb");
158 var url = urlDetail.split("?");
159 var thisUrl = window.location.href;
160 var urlNow = thisUrl.split("?");
161 if (url[0] == urlNow[0]) {
162 $(this).css("display", "none");
163 hiddenTileCnt++;
164 }
165 });
166 /* If total tiles available == hiddenTileCnt, then hide the section title */
167 if ($('.rl-courses .multisly .item').length == hiddenTileCnt){
168 $('.rl-courses h2').hide();
169 }
170 });
171</script>