Hallo, ich bin relativ neu beim oxid-Shop. Ich habe die Pflege eines bestehenden Shops übernommen und stehe nun etwas auf dem Schlauch.
Im angepassten Azure Theme wollte ich den Slider aktivieren (der war ausgebaut).
In tpl/layout/page.tpl habe ich das Widget integriert:
[{if $oView->getClassName()=='start' && $oView->getBanners()|@count > 0 }]
<div class="oxSlider">
[{include file="widget/promoslider.tpl" }]
</div>
[{/if }]
Der promoslider, sollte eigentlich analog des Standard-Templates sein:
[{assign var=oBanners value=$oView->getBanners() }]
[{assign var="currency" value=$oView->getActCurrency()}]
[{if $oBanners}]
[{oxstyle include="css/libs/anythingslider.css"}]
[{oxscript include="js/libs/anythingslider.js"}]
[{oxscript include="js/widgets/oxslider.js" priority=10 }]
[{oxscript add="$( '#promotionSlider' ).oxSlider();"}]
<img src="[{$oViewConf->getImageUrl('promo-shadowleft.png')}]" height="440" width="7" class="promoShadow" alt="">
<img src="[{$oViewConf->getImageUrl('promo-shadowright.png')}]" height="440" width="7" class="promoShadow shadowRight" alt="">
<ul id="promotionSlider">
[{foreach from=$oBanners item=oBanner }]
[{assign var=oArticle value=$oBanner->getBannerArticle() }]
<li>
[{assign var=sBannerLink value=$oBanner->getBannerLink() }]
[{if $sBannerLink }]
<a href="[{ $sBannerLink }]">
[{/if}]
[{if $oArticle }]
<span class="promoBox">
<strong class="promoPrice">[{ $oArticle->getFPrice() }] [{ $currency->sign}]</strong>
<strong class="promoTitle">[{ $oArticle->oxarticles__oxtitle->value }]</strong>
</span>
[{/if }]
[{assign var=sBannerPictureUrl value=$oBanner->getBannerPictureUrl() }]
[{if $sBannerPictureUrl }]
<img src="[{ $sBannerPictureUrl }]" height="440" width="728" alt="[{$oBanner->oxactions__oxtitle->value}]">
[{/if }]
[{if $sBannerLink }]
</a>
[{/if}]
</li>
[{/foreach }]
</ul>
[{/if }]
Nun. Der Slider wird auf der Home-Page dargestellt, aber das Bild wechselt nicht. Die Liste wäre mit 2 Bildern befüllt, aber er zeigt nur immer das erste Bild an.
Im Forum konnte ich auch nichts entsprechendes finden.
src/js/widgets/oxslider.js hab ich ebenfalls überprüft, da steht autoPlay auf true. Komisch ist auch, wenn ich dort z.B. enableNavigation auf true setze, interessiert das den Slider auch nicht. Es scheint, als ob irgendwie der Slider nicht korrekt aufgerufen wird. Beim JavaScript Debugging bin ich aber auch nicht schlauer geworden.
( function( $ ) {
oxSlider = {
options: {
width : 728,
height : 440,
autoPlay : true,
classPanel : '.panel',
classStartStop : '.start-stop',
classPromotionText : '.promoBox',
classNavigation : '.thumbNav',
classForwardArrow : '.forward',
classBackArrow : '.back',
classAnythingSlider : '.anythingSlider',
classThumbNav : '.thumbNav',
classAnythingControls : '.anythingControls',
elementLi : 'li',
eventMouseover : "mouseover",
eventMouseout : "mouseout",
opacity70 : 0.7,
opacity100 : 1,
opacity0 : 0
},
_create: function() {
var self = this,
options = self.options,
el = self.element;
var oAnythingSlider;
var aNavigationTabs = new Array();
aNavigationTabs = self.getNavigationTabsArray(el, options.elementLi);
el.anythingSlider({
width : options.width,
height : options.height,
autoPlay : options.autoPlay,
startStopped : true,
delay : 6700,
animationTime : 2700,
enableNavigation : true,
buildArrows : true,
buildNavigation : true,
navigationFormatter : function(i, panel){
return aNavigationTabs[i - 1];
}
});
Weiss jemand Rat?
Danke und Gruss, Patrick