AMDI Schedule
AMDI Event
Training Schedule
Training Registration
Library Event
Upcoming Event
There are no upcoming event lately
An error occurred while processing the template.
The following has evaluated to null or missing:
==> assetRenderer.getURLViewInContext(renderRequest, renderResponse, null) [in template "20116#20152#12841815" at line 127, column 44]
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign viewUrl = assetRenderer.getUR... [in template "20116#20152#12841815" at line 127, column 25]
----
1<#--
2This is ADT for Asset Publisher using Blogs Entry Asset Type
3Tested on: Liferay 7 GA3 CE
4
5-->
6<#assign blogsEntryLocalService = serviceLocator.findService("com.liferay.blogs.kernel.service.BlogsEntryLocalService") />
7
8<style type="text/css">
9 #p_p_id<@portlet.namespace /> .subscribe-action {
10 margin-bottom: 0 !important;
11 }
12 #<@portlet.namespace />slider-news .right-supergraphic{
13 left: -9px;
14 }
15 .<@portlet.namespace />carousel .img-entry {
16 width: 100%;
17 height:250px;
18 object-fit: cover;
19 border-radius: 4px;
20 }
21 .<@portlet.namespace />carousel .card {
22 margin-top: 10px;
23 box-shadow: 4px 9px 12px -1px rgba(57, 55, 55, 0.8);
24 border-radius: 4px;
25 }
26 #<@portlet.namespace />prev {
27 left: -35px;
28 top: -200px;
29 }
30 #<@portlet.namespace />next {
31 right: -25px;
32 top: -200px;
33 }
34 .amdi-next::before {
35 border-left: 30px solid #fff;
36 }
37 .amdi-prev:before {
38 border-right: 30px solid #fff;
39 }
40 @media (max-width: 991px) {
41 #<@portlet.namespace />prev {
42 left: 40%;
43 top: -30px;
44 }
45 #<@portlet.namespace />next {
46 right: 40%;
47 top: -30px;
48 }
49 #<@portlet.namespace />prev:before {
50 border-top: 20px solid transparent !important;
51 border-bottom: 20px solid transparent !important;
52 border-right: 20px solid #fff !important;
53 }
54 #<@portlet.namespace />next:before {
55 border-top: 20px solid transparent !important;
56 border-bottom: 20px solid transparent !important;
57 border-left: 20px solid #fff !important;
58 }
59 }
60
61 .<@portlet.namespace />carousel .news-title {
62 position: absolute;
63 max-width: 90%;
64 background-color: rgba(255,255,255,0.8);
65 font-size: 1rem;
66 top: 25px;
67 color: #005aab;
68 width: 100%;
69 padding: 0 15px;
70 }
71
72 .<@portlet.namespace />carousel .news-title > p{
73 overflow: hidden;
74 white-space: nowrap;
75 text-overflow: ellipsis;
76 text-align: left;
77 }
78
79 .<@portlet.namespace />carousel .show-more{
80 font-size: 1rem;
81 padding: 3px 10px;
82 color: #005aab;
83 }
84 #<@portlet.namespace />news {
85 margin: 0 auto;
86 }
87 #<@portlet.namespace />news .news-information > .news-title > h3{
88 font-weight: 700 !important;
89 margin: 5px 0;
90
91 }
92
93 #<@portlet.namespace />news .news-information {
94 color: #fff !important;
95 }
96
97 #<@portlet.namespace />news .news-description p {
98 margin-bottom: 0 !important;
99 }
100</style>
101<div class="row" id="<@portlet.namespace />slider-news">
102 <div class="col-md-1 supergraphic-wrapper d-flex">
103 <div class="supergraphic-individual left-supergraphic d-flex">
104 <div class="supergraphic1"></div>
105 <div class="supergraphic2"></div>
106 <div class="supergraphic3"></div>
107 <div class="supergraphic4"></div>
108 <div class="supergraphic5"></div>
109 </div>
110 </div>
111 <div class="col-md-8 text-center" id="<@portlet.namespace />news">
112 <div class="news-information text-center">
113 <div class="news-title">
114 <h3 class="font-weight-bold">Amdi News</h3>
115 </div>
116 <div class="news-description">
117 <p>Lorem ipsum dolor sit amet</p>
118 </div>
119 </div>
120
121 <div class="<@portlet.namespace />carousel">
122 <#if entries?has_content>
123 <#assign images_path = themeDisplay.getPathThemeImages() />
124 <#list entries as entry>
125 <#assign blogsEntry = blogsEntryLocalService.getEntry(entry.getClassPK()) />
126 <#assign assetRenderer = entry.getAssetRenderer() />
127 <#assign viewUrl = assetRenderer.getURLViewInContext(renderRequest, renderResponse, null) />
128 <#assign viewImageUrl = blogsEntry.getCoverImageURL(themeDisplay)!"${images_path}/news.png" />
129 <div>
130 <div class="col-md-12">
131 <a href="${viewUrl}">
132 <div class="card">
133 <img class="img-fluid img-entry" src="${viewImageUrl}" alt="Global News Image">
134 <div class="news-title">
135 <p class="card-text">${blogsEntry.getTitle()}</p>
136 </div>
137 <p class="card-text text-center show-more">Baca Selengkapnya</p>
138 </div>
139 </a>
140 </div>
141 </div>
142 </#list>
143 </#if>
144 </div>
145 <div class="col-md-12">
146 <button class="slick-next slick-arrow next-button amdi-next" id="<@portlet.namespace />next" aria-label="Next" type="button" style="display: block;">Next</button>
147 <button class="slick-prev slick-arrow prev-button amdi-prev" id="<@portlet.namespace />prev" aria-label="Previous" type="button" style="display: block;">Previous</button>
148 </div>
149 </div>
150 <div class="col-md-1 d-flex supergraphic-wrapper">
151 <div class="supergraphic-individual right-supergraphic d-flex">
152 <div class="supergraphic1"></div>
153 <div class="supergraphic2"></div>
154 <div class="supergraphic3"></div>
155 <div class="supergraphic4"></div>
156 <div class="supergraphic5"></div>
157 </div>
158 </div>
159</div>
160
161<script type="text/javascript">
162 $('.<@portlet.namespace />carousel').slick({
163 dots: false,
164 slidesToShow: 3,
165 slidesToScroll: 3,
166 autoplay: true,
167 autoplaySpeed: 5000,
168 prevArrow: $('#<@portlet.namespace />prev'),
169 nextArrow: $('#<@portlet.namespace />next'),
170 responsive: [
171 {
172 breakpoint: 1024,
173 settings: {
174 slidesToShow: 2,
175 slidesToScroll: 2
176 }
177 },
178 {
179 breakpoint: 600,
180 settings: {
181 slidesToShow: 2,
182 slidesToScroll: 2
183 }
184 },
185 {
186 breakpoint: 480,
187 settings: {
188 slidesToShow: 1,
189 slidesToScroll: 1
190 }
191 }
192 // You can unslick at a given breakpoint now by adding:
193 // settings: "unslick"
194 // instead of a settings object
195 ]
196 });
197</script>
An error occurred while processing the template.
The following has evaluated to null or missing:
==> assetRenderer.getURLViewInContext(renderRequest, renderResponse, null) [in template "20116#20152#12841916" at line 82, column 52]
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign viewUrl = assetRenderer.getUR... [in template "20116#20152#12841916" at line 82, column 33]
----
1<#--
2This is ADT for Asset Publisher using Blogs Entry Asset Type
3Tested on: Liferay 7 GA3 CE
4
5-->
6<#assign blogsEntryLocalService = serviceLocator.findService("com.liferay.blogs.kernel.service.BlogsEntryLocalService") />
7
8<style type="text/css">
9 .<@portlet.namespace />carousel .second-column {
10 height: 100%;
11 display: flex;
12 flex-direction: column;
13 justify-content: center;
14 }
15 .<@portlet.namespace />carousel .lighter-slider {
16 display: flex;
17 justify-content: center;
18 margin: 30px 20px 0px 20px
19 }
20
21 .<@portlet.namespace />carousel button.slick-next {
22 right:30px;
23 z-index: 4;
24 }
25 .<@portlet.namespace />carousel button.slick-prev {
26 left:0;
27 z-index: 4;
28 }
29 @media (max-width: 991px) {
30 #<@portlet.namespace />lighter .supergraphic-individual {
31 display:none !important;
32 }
33 .<@portlet.namespace />carousel button.slick-prev {
34 left:10px;
35 }
36 .<@portlet.namespace />carousel button.slick-next {
37 right:25px;
38 }
39 #<@portlet.namespace />lighter .lighter-information {
40 margin: 0px 20px;
41 }
42 }
43</style>
44<div class="row" id="<@portlet.namespace />lighter">
45 <div class="col-md-1">
46 <div class="supergraphic-individual left-supergraphic d-flex">
47 <div class="supergraphic1"></div>
48 <div class="supergraphic2"></div>
49 <div class="supergraphic3"></div>
50 <div class="supergraphic4"></div>
51 <div class="supergraphic5"></div>
52 </div>
53 </div>
54 <div class="col-md-5">
55 <div class="lighter-information content-information">
56 <div class="lighter-title default-color">
57 <h3>Lighters</h3>
58 </div>
59 <div class="lighter-description default-color">
60 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id purus lacinia, rutrum tellus vitae, dapibus sapien. Nam sed nunc est. In vehicula elit eu lobortis volutpat. Mauris placerat erat vitae imperdiet malesuada.
61 </p>
62 </div>
63 </div>
64 </div>
65 <div class="col-md-1">
66 <div class="supergraphic-individual right-supergraphic d-flex">
67 <div class="supergraphic1"></div>
68 <div class="supergraphic2"></div>
69 <div class="supergraphic3"></div>
70 <div class="supergraphic4"></div>
71 <div class="supergraphic5"></div>
72 </div>
73 </div>
74 <div class="col-md-5">
75 <div class="<@portlet.namespace />carousel">
76 <#assign counter = 1 />
77 <#if entries?has_content>
78 <#list entries as entry>
79
80 <#assign blogsEntry = blogsEntryLocalService.getEntry(entry.getClassPK()) />
81 <#assign assetRenderer = entry.getAssetRenderer() />
82 <#assign viewUrl = assetRenderer.getURLViewInContext(renderRequest, renderResponse, null) />
83 <#assign viewImageUrl = blogsEntry.getCoverImageURL(themeDisplay)!"google.com" />
84 <#if (counter+2) % 3 == 0 > <!-- cek counter yg isinya 1,4,7,10 -->
85 <div>
86 <div class="d-flex lighter-slider">
87 <div class="col-md-5">
88 <div class="col-md-12">
89 <div>
90 <a href="${viewUrl}">
91 <div class="image-wrapper">
92 <div class="cover-image image-round">
93 <img src="${viewImageUrl}">
94 </div>
95 <div class="blog-information text-center">
96 <p>${blogsEntry.getTitle()} ${entries?size}</p>
97 </div>
98 </div>
99 </a>
100 </div>
101 </div> <!-- berhenti kondisi pertama -->
102 <#elseif (counter+1) % 3 == 0>
103 <div class="col-md-12">
104 <div>
105 <a href="${viewUrl}">
106 <div class="image-wrapper">
107 <div class="cover-image image-round">
108 <img src="${viewImageUrl}">
109 </div>
110 <div class="blog-information text-center">
111 <p>${blogsEntry.getTitle()}</p>
112 </div>
113 </div>
114 </a>
115 </div>
116 </div>
117 </div>
118 <#elseif counter % 3 == 0>
119 <div class="col-md-5">
120 <div class="col-md-12 second-column">
121 <div>
122 <a href="${viewUrl}">
123 <div class="image-wrapper">
124 <div class="cover-image image-round">
125 <img src="${viewImageUrl}">
126 </div>
127 <div class="blog-information text-center">
128 <p>${blogsEntry.getTitle()}</p>
129 </div>
130 </div>
131 </a>
132 </div>
133 </div>
134 </div>
135 </div>
136 </div>
137 </#if>
138 <#assign counter++ />
139 </#list>
140 <#if entries?size %3 != 0>
141 </div>
142 </div>
143 </div>
144 </#if>
145
146 </#if>
147 </div>
148 </div>
149</div>
150
151<script type="text/javascript">
152 $('.<@portlet.namespace />carousel').slick({
153 dots: true,
154 autoplay: true,
155 autoplaySpeed: 3000
156 });
157</script>
Podcast
An error occurred while processing the template.
The following has evaluated to null or missing:
==> assetRenderer.getURLViewInContext(renderRequest, renderResponse, null) [in template "20116#20152#12842006" at line 125, column 44]
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign viewUrl = assetRenderer.getUR... [in template "20116#20152#12842006" at line 125, column 25]
----
1<#--
2This is ADT for Asset Publisher using Blogs Entry Asset Type
3Tested on: Liferay 7 GA3 CE
4
5-->
6<#assign blogsEntryLocalService = serviceLocator.findService("com.liferay.blogs.kernel.service.BlogsEntryLocalService") />
7
8<style type="text/css">
9 #p_p_id<@portlet.namespace /> .portlet-content.portlet-content-editable {
10 padding: 0;
11 background-color: #fff;
12 margin-bottom: 20px !important;
13 }
14 #p_p_id<@portlet.namespace /> .subscribe-action {
15 margin-bottom: 0 !important;
16 }
17 #<@portlet.namespace />slider-news .right-supergraphic{
18 left: -9px;
19 }
20 .<@portlet.namespace />carousel .img-entry {
21 width: 100%;
22 height:250px;
23 object-fit: cover;
24 border-radius: 4px;
25 }
26 .<@portlet.namespace />carousel .card {
27 margin-top: 10px;
28 box-shadow: 4px 9px 12px -1px rgba(186,186,186,0.8);
29 border-radius: 4px;
30 }
31 #<@portlet.namespace />prev {
32 left: -35px;
33 top: -200px;
34 }
35 #<@portlet.namespace />next {
36 right: -25px;
37 top: -200px;
38 }s
39
40 @media (max-width: 991px) {
41 #<@portlet.namespace />prev {
42 left: 40%;
43 top: -30px;
44 }
45 #<@portlet.namespace />next {
46 right: 40%;
47 top: -30px;
48 }
49 #<@portlet.namespace />prev:before {
50 border-top: 20px solid transparent !important;
51 border-bottom: 20px solid transparent !important;
52 border-right: 20px solid #005aab !important;
53 }
54 #<@portlet.namespace />next:before {
55 border-top: 20px solid transparent !important;
56 border-bottom: 20px solid transparent !important;
57 border-left: 20px solid #005aab !important;
58 }
59 }
60
61 .<@portlet.namespace />carousel .news-title {
62 position: absolute;
63 max-width: 90%;
64 background-color: rgba(255,255,255,0.8);
65 font-size: 1rem;
66 top: 25px;
67 color: #005aab;
68 width: 100%;
69 padding: 0 15px;
70 }
71
72 .<@portlet.namespace />carousel .news-title > p{
73 overflow: hidden;
74 white-space: nowrap;
75 text-overflow: ellipsis;
76 text-align: left;
77 }
78
79 .<@portlet.namespace />carousel .show-more{
80 font-size: 1rem;
81 padding: 3px 10px;
82 color: #005aab;
83 }
84 #<@portlet.namespace />news {
85 margin: 0 auto;
86 }
87 #<@portlet.namespace />news .news-information > .news-title > h3{
88 font-weight: 700 !important;
89 margin: 5px 0;
90 }
91
92 #<@portlet.namespace />news .news-information {
93 color: #005aab !important;
94 }
95 #<@portlet.namespace />news .news-description p {
96 margin-bottom: 0 !important;
97 }
98</style>
99<div class="row" id="<@portlet.namespace />slider-news">
100 <div class="col-md-1 supergraphic-wrapper d-flex">
101 <div class="supergraphic-individual left-supergraphic d-flex">
102 <div class="supergraphic1"></div>
103 <div class="supergraphic2"></div>
104 <div class="supergraphic3"></div>
105 <div class="supergraphic4"></div>
106 <div class="supergraphic5"></div>
107 </div>
108 </div>
109 <div class="col-md-8 text-center" id="<@portlet.namespace />news">
110 <div class="news-information text-center">
111 <div class="news-title">
112 <h3 class="font-weight-bold">Global News</h3>
113 </div>
114 <div class="news-description">
115 <p>Lorem ipsum dolor sit amet</p>
116 </div>
117 </div>
118
119 <div class="<@portlet.namespace />carousel">
120 <#if entries?has_content>
121 <#assign images_path = themeDisplay.getPathThemeImages() />
122 <#list entries as entry>
123 <#assign blogsEntry = blogsEntryLocalService.getEntry(entry.getClassPK()) />
124 <#assign assetRenderer = entry.getAssetRenderer() />
125 <#assign viewUrl = assetRenderer.getURLViewInContext(renderRequest, renderResponse, null) />
126 <#assign viewImageUrl = blogsEntry.getCoverImageURL(themeDisplay)!"${images_path}/news.png" />
127 <div>
128 <div class="col-md-12">
129 <a href="${viewUrl}">
130 <div class="card">
131 <img class="img-fluid img-entry" src="${viewImageUrl}" alt="Global News Image">
132 <div class="news-title">
133 <p class="card-text">${blogsEntry.getTitle()}</p>
134 </div>
135 <p class="card-text text-center show-more">Baca Selengkapnya</p>
136 </div>
137 </a>
138 </div>
139 </div>
140 </#list>
141 </#if>
142 </div>
143 <div class="col-md-12">
144 <button class="slick-next slick-arrow next-button" id="<@portlet.namespace />next" aria-label="Next" type="button" style="display: block;">Next</button>
145 <button class="slick-prev slick-arrow prev-button" id="<@portlet.namespace />prev" aria-label="Previous" type="button" style="display: block;">Previous</button>
146 </div>
147 </div>
148 <div class="col-md-1 d-flex supergraphic-wrapper">
149 <div class="supergraphic-individual right-supergraphic d-flex">
150 <div class="supergraphic1"></div>
151 <div class="supergraphic2"></div>
152 <div class="supergraphic3"></div>
153 <div class="supergraphic4"></div>
154 <div class="supergraphic5"></div>
155 </div>
156 </div>
157
158</div>
159
160<script type="text/javascript">
161 $('.<@portlet.namespace />carousel').slick({
162 dots: false,
163 slidesToShow: 3,
164 slidesToScroll: 3,
165 autoplay: true,
166 autoplaySpeed: 5000,
167 prevArrow: $('#<@portlet.namespace />prev'),
168 nextArrow: $('#<@portlet.namespace />next'),
169 responsive: [
170 {
171 breakpoint: 1024,
172 settings: {
173 slidesToShow: 2,
174 slidesToScroll: 2
175 }
176 },
177 {
178 breakpoint: 600,
179 settings: {
180 slidesToShow: 2,
181 slidesToScroll: 2
182 }
183 },
184 {
185 breakpoint: 480,
186 settings: {
187 slidesToShow: 1,
188 slidesToScroll: 1
189 }
190 }
191 // You can unslick at a given breakpoint now by adding:
192 // settings: "unslick"
193 // instead of a settings object
194 ]
195 });
196</script>