Asset Publisher Asset Publisher

An error occurred while processing the template.
Error on line 1, column 1 in 10155#10187#38868
utilLocator.findUtil("iop-template-helper-hook", "nz.co.skytv.templatehelper.AssetHelperService") is undefined.
It cannot be assigned to assetHelper
1<#assign assetHelper=utilLocator.findUtil("iop-template-helper-hook", "nz.co.skytv.templatehelper.AssetHelperService") > 
2<#assign themeHelper=utilLocator.findUtil("iop-template-helper-hook", "nz.co.skytv.templatehelper.ThemeHelperService") > 
3<#if assetVersion?? > 
4    <#assign articles = assetHelper.getRichContent(entries, themeDisplay, locale, assetVersion) > 
5<#else > 
6    <#assign articles = assetHelper.getRichContent(entries, themeDisplay, locale) > 
7</#if> 
8 
9<#assign cartEnabled = false /> 
10<#if themeHelper.hasPortletCssClass(portletPreferences.portletSetupCss, "show-product") || themeHelper.hasPortletCssClass(portletPreferences.portletSetupCss, "show-product-actions") || themeHelper.hasPortletCssClass(portletPreferences.portletSetupCss, "show-product-details") > 
11    <#assign cartEnabled = true /> 
12</#if> 
13 
14<#-- Setup the Slick auto-slide if required. --> 
15<#assign autoSlide = "" /> 
16<#assign autoSlideTime = themeHelper.getPortletCssClassSuffix(portletPreferences.portletSetupCss, "auto-slide") /> 
17<#-- The default hero auto-slide is 10 seconds --> 
18<#if !autoSlideTime?has_content > 
19    <#assign autoSlideTime = "10" /> 
20</#if> 
21<#if autoSlideTime?has_content> 
22    <#assign autoSlide = "autoplay='true' autoplay-speed='" + autoSlideTime + "000'" /> 
23</#if> 
24<#-- End Slick auto-slide configuration. --> 
25 
26<#macro displayText text element> 
27    <#if text?has_content> 
28        <${element} class=" 
29        <#if text?length < 12> 
30            large 
31        <#elseif text?length <= 20> 
32            medium 
33        <#else> 
34            small 
35        </#if> 
36        ">${text}</${element}> 
37    </#if> 
38</#macro> 
39 
40<#macro displayDetails article article_index > 
41    <#assign videoId = "vid_" + renderRequest.getAttribute("PORTLET_ID") + "_v" + article_index /> 
42    <#assign title = "" /> 
43    <#assign programTitle = "" /> 
44    <#assign programTime = "" /> 
45    <#assign streamingUrl = "" /> 
46    <#assign playLabel = "Watch" /> 
47    <#assign linkUrl = "" /> 
48    <#assign linkTarget = "_top" /> 
49    <#assign channel = assetHelper.getChannel(article.channelNumber, groupId, locale) /> 
50    <#if article.displayTitle?? && article.displayTitle?has_content > 
51        <#assign title = article.displayTitle /> 
52        <#if title?length gt 13 && title?length lt 26 > 
53            <#assign title = themeHelper.formatAsMultipleLineHtml(title, 2) /> 
54        </#if> 
55    </#if> 
56    <#if article.programTitle?? && article.programTitle?has_content > 
57        <#assign programTitle = article.programTitle /> 
58        <#if programTitle?length gt 23 && programTitle?length lt 45 > 
59            <#assign programTitle = themeHelper.formatAsMultipleLineHtml(programTitle, 2) /> 
60        </#if> 
61    </#if> 
62    <#if article.programTime?? && article.programTime?has_content > 
63        <#assign programTime = article.programTime /> 
64    </#if> 
65    <#if article.hasStreamingVideo() > 
66        <#assign streamingUrl = article.streamingUrl /> 
67    </#if> 
68    <#if article.url?? && article.url?has_content > 
69        <#assign linkUrl = article.url /> 
70        <#if article.linkTarget?? && article.linkTarget?has_content > 
71            <#assign linkTarget = article.linkTarget /> 
72        </#if> 
73    </#if>     
74    <#if article.multimediaContent?has_content > 
75        <#if article.multimediaContent.videoPlayLabel?? && article.multimediaContent.videoPlayLabel?has_content > 
76            <#assign playLabel = article.multimediaContent.videoPlayLabel /> 
77        </#if> 
78    </#if> 
79    <#assign coupon = "" /> 
80    <#if article.offers?? && article.offers?has_content > 
81        <#-- There should be only one promo code per Web Content --> 
82        <#assign offers = article.offers[0] /> 
83        <#if offers.couponCode?has_content> 
84            <#assign coupon = offers.couponCode /> 
85        <#elseif offers.couponCodeUpDirect?has_content> 
86            <#assign coupon = offers.couponCodeUpDirect /> 
87        <#elseif offers.couponCodeUpReseller?has_content> 
88            <#assign coupon = offers.couponCodeUpReseller /> 
89        </#if> 
90    </#if> 
91 
92    <div> 
93        <#if (channel?? && channel.channelLogoInverted?? && channel.channelLogoInverted?has_content && !linkUrl?has_content) > 
94            <#-- If channel supplied with no page link  --> 
95            <div class="iop-contenthero-channel"> 
96                <img src="${channel.channelLogoInverted}" alt="${channel.name}" /> 
97            </div> 
98        </#if> 
99        <h2>${title}</h2> 
100    </div> 
101    <#if programTitle?has_content > 
102        <h5>${programTitle}</h5> 
103    </#if> 
104    <#if programTime?has_content > 
105        <h4>${programTime}</h4> 
106    </#if> 
107 
108    <#if linkUrl?has_content > 
109        <#-- This content links to a page. --> 
110        <#if channel?? || article.hasStreamingVideo() > 
111            <ul> 
112                <#if (channel?? && channel.channelLogoInverted?? && channel.channelLogoInverted?has_content) > 
113                    <#-- Channel with page link --> 
114                    <li class="iop-contenthero-channel"> 
115                        <img src="${channel.channelLogoInverted}" alt="${channel.name}" /> 
116                    </li> 
117                </#if> 
118                <#if article.hasStreamingVideo() > 
119                    <#assign streamingName = themeHelper.getNameFromDomain(article.streamingUrl) /> 
120                    <li class="iop-contenthero-available"> 
121                        <p class="body-2">Available on</p> 
122                        <p> 
123                            <a target="_blank" href="${article.streamingUrl}" title="${streamingName} allows you to watch on your iOS/Android smartphone or tablet"> 
124                                <span class="icon-iop icon-iop-skygo-desktop"><!-- --></span> 
125                                <span class="icon-iop icon-iop-skygo-laptop"><!-- --></span> 
126                                <span class="icon-iop icon-iop-skygo-tablet"><!-- --></span> 
127                                <span class="icon-iop icon-iop-skygo-mobile iop-hide-text"><span>${streamingName}</span></span> 
128                            </a> 
129                        </p> 
130                    </li> 
131                </#if> 
132            </ul> 
133        </#if> 
134        <p> 
135            <#assign heroLabel = "Find out more" /> 
136            <#if article.heroLabel?? && article.heroLabel?has_content > 
137                <#assign heroLabel = article.heroLabel /> 
138            </#if> 
139            <#if coupon?? && coupon?has_content>  
140                <a class="iop-btn iop-btn-primary" target="${linkTarget}" ng-init="promotionCtrl.onOfferView('${coupon}')" ng-click="promotionCtrl.onOfferClick('${coupon}')" href="${linkUrl}"> 
141                    ${heroLabel} 
142                </a> 
143            <#else> 
144                <a class="iop-btn iop-btn-primary" target="${linkTarget}" href="${linkUrl}"> 
145                    ${heroLabel} 
146                </a> 
147            </#if> 
148            <#if article.hasVideo() > 
149                <#switch article.multimediaContent.type> 
150                    <#case "embedded"> 
151                        <a ng-click="heroCtrl.play('${videoId}')" class="iop-btn iop-btn-secondary" embedded-video="${article.multimediaContent.embeddedVideoUrl}" embedded-video-element="${'#' + videoId}"> 
152                            <span class="icon-iop-play"><!-- --></span> 
153                            ${playLabel} 
154                        </a> 
155                        <#break> 
156                    <#case "html5video"> 
157                        <a ng-click="heroCtrl.play('${videoId}')" class="iop-btn iop-btn-secondary" videojs-control="${videoId}"> 
158                            <span class="icon-iop-play"><!-- --></span> 
159                            ${playLabel} 
160                        </a> 
161                        <#break> 
162                </#switch> 
163            </#if> 
164        </p> 
165    <#else > 
166        <#-- This content does not link to a page. --> 
167        <#if article.hasStreamingOrAssociatedVideo() > 
168            <ul class="no-link"> 
169                <#if article.hasVideo() > 
170                    <#switch article.multimediaContent.type> 
171                        <#case "embedded"> 
172                            <li> 
173                                <a ng-click="heroCtrl.play('${videoId}')" class="iop-btn iop-btn-secondary" embedded-video="${article.multimediaContent.embeddedVideoUrl}" embedded-video-element="${'#' + videoId}"> 
174                                    <span class="icon-iop-play"><!-- --></span> 
175                                    ${playLabel} 
176                                </a> 
177                            </li> 
178                            <#break> 
179                        <#case "html5video"> 
180                            <li> 
181                                <a ng-click="heroCtrl.play('${videoId}')" class="iop-btn iop-btn-secondary" videojs-control="${videoId}"> 
182                                    <span class="icon-iop-play"><!-- --></span> 
183                                    ${playLabel} 
184                                </a> 
185                            </li> 
186                            <#break> 
187                    </#switch> 
188                </#if> 
189                <#if article.hasStreamingVideo() > 
190                    <#assign streamingName = themeHelper.getNameFromDomain(article.streamingUrl) /> 
191                    <li class="iop-contenthero-available"> 
192                        <p class="body-2">Available on</p> 
193                        <p> 
194                            <a target="_blank" href="${article.streamingUrl}" title="${streamingName} allows you to watch on your iOS/Android smartphone or tablet"> 
195                                <span class="icon-iop icon-iop-skygo-desktop"><!-- --></span> 
196                                <span class="icon-iop icon-iop-skygo-laptop"><!-- --></span> 
197                                <span class="icon-iop icon-iop-skygo-tablet"><!-- --></span> 
198                                <span class="icon-iop icon-iop-skygo-mobile iop-hide-text"><span>${streamingName}</span></span> 
199                            </a> 
200                        </p> 
201                    </li> 
202                </#if> 
203            </ul> 
204        </#if> 
205    </#if> 
206</#macro> 
207 
208<#macro displayProduct product > 
209    <#assign productName = "" /> 
210    <#assign productCost = "" /> 
211    <#assign productPeriod = "per month" /> 
212    <#assign productTerms = "" /> 
213    <#assign requirementName = "" /> 
214    <#assign requirementCost = "" /> 
215    <#assign requirementPeriod = "per month" /> 
216    <#assign cartNewUrl = "" /> 
217    <#assign cartUpgradeUrl = "" /> 
218    <#assign cartNewLabel = "Get it now" /> 
219    <#assign cartUpgradeLabel = "Upgrade" /> 
220 
221    <#if product.productName?? && product.productName?has_content > 
222        <#assign productName = product.productName /> 
223    </#if> 
224    <#if product.productCost?? && product.productCost?has_content > 
225        <#assign productCost = product.productCost /> 
226    </#if> 
227    <#if product.productPeriod?? && product.productPeriod?has_content > 
228        <#assign productPeriod = product.productPeriod /> 
229    </#if> 
230    <#if product.productTerms?? && product.productTerms?has_content > 
231        <#assign productTerms = product.productTerms /> 
232    </#if> 
233    <#if product.requirementName?? && product.requirementName?has_content > 
234        <#assign requirementName = product.requirementName /> 
235    </#if> 
236    <#if product.requirementCost?? && product.requirementCost?has_content > 
237        <#assign requirementCost = product.requirementCost /> 
238    </#if> 
239    <#if product.requirementPeriod?? && product.requirementPeriod?has_content > 
240        <#assign requirementPeriod = product.requirementPeriod /> 
241    </#if> 
242    <#if product.cartNewUrl?? && product.cartNewUrl?has_content > 
243        <#assign cartNewUrl = product.cartNewUrl /> 
244    </#if> 
245    <#if product.cartUpgradeUrl?? && product.cartUpgradeUrl?has_content > 
246        <#assign cartUpgradeUrl = product.cartUpgradeUrl /> 
247    </#if> 
248    <#if product.cartNewLabel?? && product.cartNewLabel?has_content > 
249        <#assign cartNewLabel = product.cartNewLabel /> 
250    </#if> 
251    <#if product.cartUpgradeLabel?? && product.cartUpgradeLabel?has_content > 
252        <#assign cartUpgradeLabel = product.cartUpgradeLabel /> 
253    </#if> 
254 
255    <div class="iop-contenthero-productwrapper"> 
256        <div class="iop-contenthero-product"> 
257            <div> 
258                <h3>Get ${productName}</h3> 
259                <div class="iop-contenthero-productinfo"> 
260                    <@displayText text=productName element="h4" /> 
261                    <p> 
262                        ${productCost} 
263                        <#if productPeriod?has_content > 
264                            <span>${productPeriod}</span> 
265                        </#if> 
266                    </p> 
267                </div> 
268                <#if requirementName?has_content && requirementCost?has_content > 
269                    <div class="iop-contenthero-productterms"> 
270                        <#if productTerms?has_content > 
271                            <p>${productTerms}</p> 
272                        </#if> 
273                        <p>Only <strong>available with</strong>:</p> 
274                    </div> 
275                    <div class="iop-contenthero-productinfo"> 
276                        <@displayText text=requirementName element="h4" /> 
277                        <p> 
278                            ${requirementCost} 
279                            <#if requirementPeriod?has_content > 
280                                <span>${requirementPeriod}</span> 
281                            </#if> 
282                        </p> 
283                    </div> 
284                <#elseif productTerms?has_content > 
285                    <div class="iop-contenthero-productterms"> 
286                        <p>${productTerms}</p> 
287                    </div> 
288                </#if> 
289                <div class="iop-contenthero-productcart"> 
290                    <#if cartNewUrl?has_content> 
291                        <p> 
292                            <a class="iop-btn iop-btn-primary" href="${cartNewUrl}">${cartNewLabel}</a> 
293                        </p> 
294                        <#if cartUpgradeUrl?has_content> 
295                            <p>Got SKY? <a class="iop-link" href="${cartUpgradeUrl}">${cartUpgradeLabel}</a></p> 
296                        </#if> 
297                    <#elseif cartUpgradeUrl?has_content> 
298                        <p> 
299                            <a class="iop-btn iop-btn-primary" href="${cartUpgradeUrl}">${cartUpgradeLabel}</a> 
300                        </p> 
301                    </#if> 
302                </div> 
303            </div> 
304        </div> 
305    </div> 
306</#macro> 
307 
308<#macro cartProduct product > 
309    <#assign sku = "" /> 
310    <#assign cartNewLabel = "Get it now" /> 
311    <#assign cartUpgradeLabel = "Upgrade" /> 
312    <#assign cartUpgradeUrl = "" /> 
313  
314    <#if product.sku?? && product.sku?has_content > 
315        <#assign sku = product.sku /> 
316    </#if> 
317    <#if product.cartNewLabel?? && product.cartNewLabel?has_content > 
318        <#assign cartNewLabel = product.cartNewLabel /> 
319    </#if> 
320    <#if product.cartUpgradeLabel?? && product.cartUpgradeLabel?has_content > 
321        <#assign cartUpgradeLabel = product.cartUpgradeLabel /> 
322    </#if> 
323    <#if product.cartUpgradeUrl?? && product.cartUpgradeUrl?has_content > 
324        <#assign cartUpgradeUrl = product.cartUpgradeUrl /> 
325    </#if> 
326 
327    <div cart-panel="${sku}"  
328         cart-panel-acquisition="${cartNewLabel}"  
329         cart-panel-upgrade="${cartUpgradeLabel}" 
330         cart-panel-upgrade-url="${cartUpgradeUrl}"></div> 
331</#macro> 
332 
333<#if articles?? && articles?size gt 0 > 
334    <#assign heroVideo = "#portlet_" + renderRequest.getAttribute("PORTLET_ID") + " .iop-contenthero-arrows" /> 
335    <#assign heroButtons = "#portlet_" + renderRequest.getAttribute("PORTLET_ID") + " .iop-contenthero-arrows" /> 
336    <#assign heroDots = "#portlet_" + renderRequest.getAttribute("PORTLET_ID") + " .iop-contenthero-dots" /> 
337	 
338    <div class="iop-contenthero" ng-controller="heroCtrl"> 
339        <div class="iop-contenthero-videocontainer"> 
340            <div class="iop-contenthero-videoinner" ng-class="{'video-selected' : heroCtrl.selected != ''}"> 
341                <#list articles as article> 
342                    <#assign videoId = "vid_" + renderRequest.getAttribute("PORTLET_ID") + "_v" + article_index /> 
343                    <#if article.multimediaContent?? && article.multimediaContent.videoOnTeaser > 
344                        <div class="container" ng-hide="heroCtrl.selected != '${videoId}'"> 
345                            <div class="grid-12"> 
346                                <div class="iop-contenthero-videoclose"> 
347                                    <#switch article.multimediaContent.type> 
348                                        <#case "embedded"> 
349                                            <span class="icon-iop icon-iop-close" ng-click="heroCtrl.close()" embedded-video embedded-video-element="${'#' + videoId}"><!-- --></span> 
350                                            <#break> 
351                                        <#case "html5video"> 
352                                            <span class="icon-iop icon-iop-close" ng-click="heroCtrl.close()" videojs-control="${videoId}" videojs-control-action="pause"><!-- --></span> 
353                                            <#break> 
354                                    </#switch> 
355                                </div> 
356                                <div class="iop-contenthero-videowrapper grid-8 push-2 push-mobile-0 grid-mobile-4"> 
357                                    <#switch article.multimediaContent.type> 
358                                        <#case "embedded"> 
359                                            <div class="iop-contenthero-video video-embedded" id="${videoId}"><!-- --></div> 
360                                            <#break> 
361                                        <#case "html5video"> 
362                                            <video id="${videoId}" width="auto" height="auto" preload="none" class="iop-contenthero-video video-js vjs-big-play-button" controls data-setup='{ "preload": "none" }'> 
363                                                <#list article.multimediaContent.html5Videos as video> 
364                                                    <source src="${video.url}" type="${video.format}" /> 
365                                                </#list> 
366                                                <p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p> 
367                                            </video> 
368                                            <#break> 
369                                    </#switch> 
370                                </div> 
371                            </div> 
372                        </div> 
373                    </#if> 
374                </#list> 
375            </div> 
376        </div> 
377        <div class="iop-contenthero-container" ng-class="{'video-selected' : heroCtrl.selected != ''}"> 
378            <div> 
379                <div class="container"> 
380                    <div class="iop-contenthero-arrows"><!-- --></div> 
381                </div> 
382                <div class="iop-contenthero-dots"><!-- --></div> 
383                <div class="iop-slick" slick ${autoSlide} speed="2500" arrows="true" dots="true" append-arrows="${heroButtons}" append-dots="${heroDots}" infinite="true" slides-to-show="1" slides-to-scroll="1" touch-move="true" adaptive-height="true" swipe-to-slide="true" lazy-load="progressive" > 
384                    <#list articles as article> 
385                        <#assign heroUrl = "" /> 
386                        <#if article.multimediaContent?has_content > 
387                            <#assign heroUrl = article.multimediaContent.heroUrl /> 
388                        </#if> 
389                        <#assign showProduct = ( cartEnabled || themeHelper.isCurrentUrl(renderRequest, article) ) && article.cartAction != "NONE" /> 
390 
391                        <div class="iop-contenthero-slide"> 
392                            <div class="iop-contenthero-bg" style="background-image:url('${heroUrl}')"> 
393                                <div class="iop-contenthero-overlay"> 
394                                    <div class="container"> 
395                                        <div class="grid-4 grid-mobile-4 push-tablet-1"> 
396                                            <div class="iop-contenthero-detailwrapper"> 
397                                                <#if !themeHelper.isCurrentUrl(renderRequest, article) > 
398                                                    <div class="iop-contenthero-details" ng-controller="promotionCtrl"> 
399                                                        <@displayDetails article=article article_index=article_index /> 
400                                                    </div> 
401                                                <#else> 
402                                                    <div class="iop-contenthero-details iop-contenthero-hidedetails"><!-- --></div> 
403                                                </#if> 
404                                            </div> 
405                                        </div>                                         
406                                        <#if showProduct  > 
407                                            <div class="grid-3 push-5 hide-mobile"> 
408                                                <#switch article.cartAction> 
409                                                    <#case "SKU"> 
410                                                        <@cartProduct product=article.product /> 
411                                                        <#break>       
412                                                    <#case "PPV"> 
413	                                                    <#assign ppvLabel = "" /> 
414	                                                    <#if article.ppvLabel?? && article.ppvLabel?has_content > 
415	                                                    <#assign ppvLabel = article.ppvLabel /> 
416	                                                    </#if> 
417                                                        <div ppv-panel="${article.ppvTitleCode}" ppv-button-label="${ppvLabel}"></div> 
418                                                        <#break> 
419                                                    <#case "MANUAL"> 
420                                                        <@displayProduct product=article.product /> 
421                                                        <#break> 
422                                                </#switch> 
423                                            </div> 
424                                            <div class="iop-contenthero mobile-products hide-tablet hide-desktop"> 
425                                                <#switch article.cartAction> 
426                                                    <#case "SKU"> 
427														<div class="grid-12 mobile-purchase-panel-background"> 
428															<div cart-panel="${article.sku}" cart-panel-upgrade-url="${article.cartUpgradeUrl}"></div> 
429														</div> 
430														<#break> 
431													<#case "PPV"> 
432														<#assign ppvLabel = "" /> 
433														<#if article.ppvLabel?? && article.ppvLabel?has_content > 
434															<#assign ppvLabel = article.ppvLabel /> 
435														</#if> 
436														<div class="grid-12 mobile-purchase-panel-background"> 
437															<div ppv-panel="${article.ppvTitleCode}" ppv-button-label="${ppvLabel}"></div> 
438														</div> 
439														<#break> 
440													<#case "MANUAL"> 
441														<div class="grid-12 mobile-purchase-panel-background"> 
442															<@displayProduct product=article /> 
443														</div> 
444														<#break> 
445                                                </#switch> 
446                                            </div> 
447                                        </#if> 
448                                    </div> 
449                                </div> 
450                            </div> 
451                        </div> 
452                    </#list> 
453                </div> 
454            </div> 
455        </div> 
456    </div>     
457</#if> 

Nested Portlets Nested Portlets

Nested Portlets is temporarily unavailable.

The Best on SKY The Best on SKY

An error occurred while processing the template.
Error on line 1, column 1 in 10155#10187#38874
utilLocator.findUtil("iop-template-helper-hook", "nz.co.skytv.templatehelper.AssetHelperService") is undefined.
It cannot be assigned to assetHelper
1<#assign assetHelper=utilLocator.findUtil("iop-template-helper-hook", "nz.co.skytv.templatehelper.AssetHelperService") > 
2<#assign themeHelper=utilLocator.findUtil("iop-template-helper-hook", "nz.co.skytv.templatehelper.ThemeHelperService") > 
3 
4<#-- Setup the Slick auto-slide if required. --> 
5<#assign autoSlide = "" /> 
6<#assign autoSlideTime = themeHelper.getPortletCssClassSuffix(portletPreferences.portletSetupCss, "auto-slide") /> 
7<#if autoSlideTime?has_content> 
8    <#assign autoSlide = "autoplay='true' autoplay-speed='" + autoSlideTime + "000'" /> 
9</#if> 
10<#-- End Slick auto-slide configuration. --> 
11 
12<#-- Setup the Slick slide show if required. --> 
13<#assign carouselSlidesVal = themeHelper.getPortletCssClassSuffix(portletPreferences.portletSetupCss, "show-slide") /> 
14<#assign carouselSlides = 6 /> 
15<#if carouselSlidesVal?has_content > 
16    <#assign carouselSlides = carouselSlidesVal?number /> 
17</#if> 
18<#-- End Slick slide show configuration. --> 
19 
20<#assign articleLimit = 4 /> 
21<#assign heading = "" /> 
22<#assign brandColour = "" /> 
23<#assign viewMoreUrl = "" /> 
24<#assign additionalClasses = "" /> 
25<#assign widthClasses = "grid-2 grid-mobile-2" /> 
26<#assign posterDots = "#portlet_" + renderRequest.getAttribute("PORTLET_ID") + " .iop-contentposters-dots" /> 
27<#if portletPreferences.delta??> 
28    <#list portletPreferences.delta as deltaValue> 
29        <#assign articleLimit = deltaValue?number /> 
30    </#list> 
31</#if> 
32<#if portletPreferences.portletSetupTitle_en_US??> 
33    <#list portletPreferences.portletSetupTitle_en_US as portletTitle> 
34        <#if portletTitle != "Asset Publisher"> 
35            <#assign heading = themeHelper.convertUnderscores(portletTitle) /> 
36        </#if> 
37    </#list> 
38</#if> 
39<#if portletPreferences.portletSetupLinkToLayoutUuid??> 
40    <#list portletPreferences.portletSetupLinkToLayoutUuid as layoutUuid> 
41        <#assign viewMoreUrl = themeHelper.getLayoutUrl(layoutUuid, companyId, themeDisplay) /> 
42    </#list> 
43</#if> 
44<#if heading?starts_with("[CREDITS]") > 
45    <#assign heading = heading[9..]?trim /> 
46    <#assign articles = assetHelper.getCreditsAsRichContent(entries, themeDisplay, locale) > 
47    <#assign additionalClasses = additionalClasses + " iop-contentmediacarosuel-credits" /> 
48<#else> 
49    <#if assetVersion?? > 
50        <#assign articles = assetHelper.getRichContent(entries, themeDisplay, locale, assetVersion) > 
51    <#else > 
52        <#assign articles = assetHelper.getRichContent(entries, themeDisplay, locale) > 
53    </#if> 
54</#if> 
55<#if heading?starts_with("[FILMSTRIP]") > 
56    <#assign heading = heading[11..]?trim /> 
57    <#assign filmStrip = themeHelper.getImageWidths(articles, 30) /> 
58    <#assign widthClasses = "" /> 
59    <#assign additionalClasses = additionalClasses + " iop-contentmediacarosuel-filmstrip" /> 
60</#if> 
61<#if heading?starts_with("[ALL]") > 
62    <#assign heading = heading[5..]?trim /> 
63    <#assign carouselSlides = articles?size /> 
64</#if> 
65 
66<#if articles?? && articles?size gt 0 > 
67    <#assign cartEnabled = false /> 
68    <#if themeHelper.hasPortletCssClass(portletPreferences.portletSetupCss, "show-product") || themeHelper.hasPortletCssClass(portletPreferences.portletSetupCss, "show-product-actions") || themeHelper.hasPortletCssClass(portletPreferences.portletSetupCss, "show-product-details") > 
69        <#assign cartEnabled = true /> 
70    </#if> 
71    <div class="iop-contentmediacarosuel iop-contentmediacarosuel-${articleLimit} ${additionalClasses}" select-element="iop-contentposters"> 
72        <#if heading?has_content || viewMoreUrl?has_content > 
73            <div class="container iop-contentmediacarosuel-top"> 
74                <#assign headingGrid = "grid-12" /> 
75                <#assign linkGrid = "grid-12" /> 
76                <#if heading?has_content > 
77                    <#if viewMoreUrl?has_content > 
78                        <#assign headingGrid = "grid-8" /> 
79                        <#assign linkGrid = "grid-4" /> 
80                    </#if> 
81                    <div class="${headingGrid} iop-contentmediacarosuel-header"> 
82                        <#if heading?has_content > 
83                            <h2>${heading}</h2> 
84                        </#if> 
85                    </div> 
86                </#if> 
87                <#if viewMoreUrl?has_content > 
88                    <div class="${linkGrid} iop-contentmediacarosuel-link"> 
89                        <a href="${viewMoreUrl}" class="link-indicator"> 
90                            View more  
91                            <#if heading?has_content > 
92                                <span>${heading}</span> 
93                            </#if> 
94                        </a> 
95                    </div> 
96                </#if> 
97            </div> 
98        </#if> 
99        <div class="container ng-cloak"> 
100            <#if filmStrip?? > 
101                <div class="iop-slick" slick ${autoSlide} arrows="false" dots="false" infinite="false" center-mode="false" swipe="true" variable-width="true" touch-move="true" swipe-to-slide="true" swipe-to-slide="true" > 
102            <#else> 
103                <div class="iop-slick" slick ${autoSlide} arrows="true" dots="true" append-dots="${posterDots}" infinite="true" slides-to-show="${carouselSlides}" slides-to-scroll="${carouselSlides}" touch-move="true" swipe-to-slide="true" responsive="iopCtrl.carousel.poster" > 
104            </#if> 
105                <#assign selectItemCounter = -1 /> 
106                <#list articles as article> 
107                    <#assign selectItem = "" /> 
108                    <#assign selectToggle = "" /> 
109                    <#assign linkUrl = "" /> 
110                    <#assign imageWidth = "" /> 
111                    <#assign imageUrl = "" /> 
112 
113                    <#assign title = article.displayTitle /> 
114                    <#if article.type == 'Person' && article.programTime?? && article.programTime?has_content > 
115                        <#assign title = title + "<br/><em>" + article.programTime + "</em>" /> 
116                    </#if> 
117                    <#if article.summary?has_content > 
118                        <#assign selectItem = "iop-contentposters-item" /> 
119                        <#assign selectToggle = "iop-contentposters-toggle" /> 
120                    </#if> 
121                    <#if article.fileAttachment?? && article.fileAttachment.url?? && article.fileAttachment.url?has_content > 
122                        <#assign selectItem = "" /> 
123                        <#assign selectToggle = "" /> 
124                        <#assign linkUrl = article.fileAttachment.url /> 
125                    </#if> 
126                    <#if selectItem?has_content > 
127                        <#assign selectItemCounter = selectItemCounter + 1 /> 
128                        <#assign selectItem = selectItem + "\" data-select-item-id=\"" + selectItemCounter /> 
129                    </#if> 
130                    <#if filmStrip?? > 
131                        <#assign imageWidth = filmStrip[article_index] + "em" /> 
132                    </#if> 
133                    <#if article.multimediaContent?has_content > 
134                        <#assign imageUrl = article.multimediaContent.posterUrl /> 
135                        <#if filmStrip?? > 
136                            <#assign imageUrl = article.multimediaContent.url /> 
137                        </#if> 
138                    </#if> 
139 
140                    <div data-url="${linkUrl}" open-link="_blank" class="iop-contentposter ${widthClasses} ${selectItem}"> 
141                        <div class="iop-contentposter-item"> 
142                            <div class="iop-contentposter-frame ${selectToggle}"> 
143                                <div class="iop-contentposter-row"> 
144                                    <#if imageUrl?has_content > 
145                                        <div class="iop-contentposter-image" style="background-image:url('${imageUrl}'); width:${imageWidth};" ><!-- --></div> 
146                                    <#else> 
147                                        <#assign brandColour = themeHelper.getRandomBrandColourClassName(brandColour) > 
148                                        <div class="iop-contentposter-image no-media iop-bg ${brandColour}" style="width:${imageWidth};" > 
149                                            <span class="icon-iop icon-iop-sky"><!-- --></span> 
150                                        </div> 
151                                    </#if> 
152                                </div> 
153                                <div class="iop-contentposter-row"> 
154                                    <div class="iop-contentposter-title"> 
155                                        <span class="body-3">${title}</span> 
156                                    </div> 
157                                </div> 
158                                <div class="iop-contentposter-row"> 
159                                    <span class="iop-contentposter-indicator"><!-- --></span> 
160                                </div> 
161                            </div> 
162                        </div> 
163                    </div> 
164                </#list> 
165            </div> 
166            <#list articles as article> 
167                <#if article.summary?has_content && !(article.fileAttachment?? && article.fileAttachment.url?? && article.fileAttachment.url?has_content) > 
168 
169                    <#assign videoId = "vid_" + renderRequest.getAttribute("PORTLET_ID") + "_v" + article_index /> 
170                    <#assign channel = assetHelper.getChannel(article.channelNumber, groupId, locale) /> 
171                    <#assign url = "" /> 
172                    <#assign linkLabel = "Learn more" /> 
173                    <#assign linkTarget = "_top" /> 
174                    <#if article.url?? && article.url?has_content > 
175                        <#assign url = article.url /> 
176                        <#if article.linkTarget?? && article.linkTarget?has_content > 
177                            <#assign linkTarget = article.linkTarget /> 
178                        </#if> 
179                        <#if article.linkLabel?? && article.linkLabel?has_content > 
180                            <#assign linkLabel = article.linkLabel /> 
181                        </#if> 
182                    </#if> 
183 
184                    <div class="iop-contentposter-detail iop-contentposters-detail" iop-contentposters-autoheight-src="iop-autoheight-container" iop-contentposters-auto-height-offset="50" > 
185                        <#assign displayTitle = article.displayTitle /> 
186                        <div class="iop-contentposter-metadata iop-contentposters-autoheight"> 
187                            <div class="container iop-autoheight-container"> 
188                                <div class="iop-contentposter-close"> 
189                                    <p> 
190                                        <span class="icon-iop icon-iop-close iop-contentposters-toggle"><!-- --></span> 
191                                    </p> 
192                                </div> 
193                                <#assign contentGrid = 7 /> 
194                                <#if article.multimediaContent?has_content > 
195                                    <#switch article.multimediaContent.type> 
196                                        <#case "embedded"> 
197                                            <#assign contentGrid = 6 /> 
198                                            <div class="grid-3 grid-mobile-4 iop-contentposter-media"> 
199                                                <div embedded-video="${article.multimediaContent.embeddedVideoUrl}" class="iop-contentposter-video video-js vjs-big-play-button" id="${videoId}"> 
200                                                    <div class="vjs-poster" tabindex="-1" style="background-image: url(${article.multimediaContent.url});"><!-- --></div> 
201                                                    <div class="vjs-big-play-button" role="button" aria-live="polite" tabindex="0" aria-label="play video"> 
202                                                        <span aria-hidden="true"><!-- --></span> 
203                                                    </div> 
204                                                </div> 
205                                            </div> 
206                                            <#break> 
207                                        <#case "html5video"> 
208                                            <#assign contentGrid = 6 /> 
209                                            <div class="grid-3 grid-mobile-4 iop-contentposter-media"> 
210                                                <div videojs-control="${videoId}"> 
211                                                    <video width="auto" height="auto" preload="none" class="iop-contentposter-video video-js vjs-big-play-button" controls poster="${article.multimediaContent.mediumUrl}" data-setup='{ "preload": "none" }' id="${videoId}"> 
212                                                        <#list article.multimediaContent.html5Videos as video> 
213                                                            <source src="${video.url}" type="${video.format}" /> 
214                                                        </#list> 
215                                                        <p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p> 
216                                                    </video> 
217                                                </div> 
218                                            </div> 
219                                            <#break> 
220                                        <#case "image"> 
221                                            <#assign posterUrl =  article.multimediaContent.posterUrl /> 
222                                            <#if article.type == 'Person' > 
223                                                <#assign posterUrl = "" /> 
224                                                <#if filmStrip?? && article.multimediaContent.url != article.multimediaContent.posterUrl> 
225                                                    <#assign posterUrl = article.multimediaContent.posterUrl /> 
226                                                </#if> 
227                                            </#if> 
228                                            <div class="grid-2 grid-mobile-4 iop-contentposter-media"> 
229                                                <#if posterUrl?has_content > 
230                                                    <div class="iop-contentposter-image" style="background-image:url('${posterUrl}')"><!-- --></div> 
231                                                </#if> 
232                                            </div> 
233                                            <#break> 
234                                    </#switch> 
235                                <#else > 
236                                    <div class="grid-2 grid-mobile-4"><!-- --></div> 
237                                </#if> 
238                                <div class="grid-${contentGrid} grid-mobile-4"> 
239                                    <h4 class="iop-txt pink-panther"> 
240                                        ${displayTitle} 
241                                        <#if article.mediaCertification?has_content > 
242                                            <span>(${article.mediaCertification})</span> 
243                                        </#if> 
244                                    </h4> 
245                                    <#if (article.programTime?? && article.programTime?has_content) || channel?? > 
246                                        <h4> 
247                                            <#if article.programTime?? > 
248                                                ${themeHelper.splitIntoSpans(article.programTime)} 
249                                            </#if> 
250                                            <#if channel?? && channel.name?? && channel.name?has_content > 
251                                                <span>${channel.name}</span> 
252                                            </#if> 
253                                            <#if channel?? && channel.channelNumber?? && channel.channelNumber?has_content > 
254                                                <span>Channel ${channel.channelNumber}</span> 
255                                            </#if> 
256                                        </h4> 
257                                    </#if> 
258                                    <#if article.summary?has_content> 
259                                        <#assign formattedSummary = themeHelper.formatAsHtml(article.summary, "body-3") > 
260                                        ${formattedSummary} 
261                                    </#if> 
262                                    <#if url?has_content > 
263                                        <#if article.richContentType?? && article.richContentType == 'EXTERNAL_DOCUMENT' > 
264                                            <p class="iop-contentcards-link"> 
265                                                <a class="iop-btn iop-btn-primary" target="${linkTarget}" href="${url}">${linkLabel}</a> 
266                                            </p> 
267                                         <#else > 
268                                            <p class="iop-contentcards-link body-2"> 
269                                                <a class="link-indicator" target="${linkTarget}" href="${url}">${linkLabel}</a> 
270                                            </p> 
271                                        </#if> 
272                                    </#if> 
273                                    <#if article.hasStreamingOrAssociatedVideo() > 
274                                        <div class="iop-contentposter-actions"> 
275                                            <#assign streamingUrl = "" /> 
276                                            <#assign playLabel = "Watch" /> 
277                                            <#assign videoType = "" /> 
278                                            <#assign videoUrl = "" /> 
279 
280                                            <#if article.hasStreamingVideo() > 
281                                                <#assign streamingUrl = article.streamingUrl /> 
282                                            </#if> 
283                                            <#if article.hasVideo() > 
284                                                <#assign videoType = article.multimediaContent.type /> 
285                                                <#if article.multimediaContent.videoPlayLabel?? && article.multimediaContent.videoPlayLabel?has_content > 
286                                                    <#assign playLabel = article.multimediaContent.videoPlayLabel /> 
287                                                </#if> 
288                                                <#if article.multimediaContent.embeddedVideoUrl?? > 
289                                                    <#assign videoUrl = article.multimediaContent.embeddedVideoUrl /> 
290                                                </#if> 
291                                            </#if> 
292                                            <media-action-buttons  
293                                                    brand-colour="pink-panther" 
294                                                    streaming-url="${streamingUrl}" 
295                                                    play-label="${playLabel}" 
296                                                    video-type="${videoType}" 
297                                                    video-id="${videoId}" 
298                                                    video-url="${videoUrl}"  
299                                                    ></media-action-buttons> 
300                                        </div> 
301                                    </#if> 
302                                    <#if cartEnabled && article.cartAction == "PPV" > 
303	                                    <#assign ppvLabel = "" /> 
304	                                    <#if article.ppvLabel?? && article.ppvLabel?has_content > 
305	                                        <#assign ppvLabel = article.ppvLabel /> 
306	                                    </#if> 
307                                        <div ppv-product="${article.ppvTitleCode}" ppv-product-class="pink-panther" ppv-button-label="${ppvLabel}"></div> 
308                                    </#if> 
309                                </div> 
310                            </div> 
311                        </div> 
312                    </div> 
313                </#if> 
314            </#list> 
315            <div class="iop-contentposters-dots"><!-- --></div> 
316        </div> 
317    </div> 
318    <div class="iop-contentmediacarosuel-spacer"><!-- --></div> 
319</#if> 

Web Content Display Web Content Display

  • Auditude Details

  • Publisher: SKYTV.co.nz
  • Page Type: SKY TV
  • Site Section: SKY TV - ROS
  • Dimensions: Leaderboard (728px X 90px)
  • Position: Right