Back to top

Autore Topic: j1.5.10 e modulo yoocarousel: si blocca quando entro in un component  (Letto 2504 volte)

Offline simbus82

  • Appassionato
  • ***
  • Post: 369
  • Sesso: Maschio
    • Mostra profilo
Ho un problema su ben 2 siti.

Ho installato il modulo Yoocarousel di yootools, ma da loro non ho avuto risposte riguardo il problema.

In pratica se andate su questo sito:
http://tinyurl.com/qpb5b2

vedete sull'header ben 2 di questi moduli che funzionano perfettamente.

Navigando nelle varie pagine del sito è tutto ok fino a quando... si entra in una voce del menu collegata a un qualsiasi componente di joomla.

Esempio se si clicca su Downloads i 2 moduli smenttono di funzionare. Ho provato 5-6 gestori di download ma il problema permane.

Con un debug ho notato che compare un errore legato alla creazione della classe che fa andare il modulo yoocarousel
Codice: [Seleziona]
var YOOcarousel=new Class({initialize:function(container,options){this.setOptions({onRotate:Class.empty,onStop:Class.empty,onAutoPlay:Class.empty,onShowSlide:Class.empty,panelSelector:'.panel',slidesSelector:'.slide',buttonsSelector:'.button',buttonNextSelector:'.button-next',buttonPrevSelector:'.button-prev',slideInterval:4000,transitionDuration:700,transitionEffect:'scroll',startIndex:0,buttonOnClass:'selected',buttonOffClass:'off',rotateAction:'none',rotateActionDuration:100,rotateActionEffect:'scroll',autoplay:'on'},options);this.container=$(container);this.panel=this.container.getElement(this.options.panelSelector);this.slides=this.container.getElements(this.options.slidesSelector);this.buttons=this.container.getElements(this.options.buttonsSelector);this.buttonNext=this.container.getElement(this.options.buttonNextSelector);this.buttonPrev=this.container.getElement(this.options.buttonPrevSelector);this.currentSlide=null;if(this.options.transitionEffect=='crossfade'||this.options.rotateActionEffect=='crossfade'){this.fxCrossfade=new Array();this.slides.each(function(el,i){this.fxCrossfade[i]=new Fx.Style(el,'opacity');if(i!=this.options.startIndex)el.setStyle('opacity',0)},this);this.options.transitionEffect='crossfade';this.options.rotateActionEffect='crossfade'}else{this.fxScroll=new Fx.Scroll(this.panel,{'wait':false});this.fxFade=new Fx.Style(this.panel,'opacity',{'wait':false})}this.setupButtons();this.showSlide(this.options.startIndex,1);if(this.options.autoplay=='on'||this.options.autoplay=='once')this.autoplay()},setupButtons:function(){if(this.options.rotateAction!='none'){var timer=null;this.buttons.each(function(el,i){$(el).addEvent(this.options.rotateAction,function(){if(this.options.rotateActionEffect=='scroll'){this.showSlide(i,this.options.rotateActionDuration,this.options.rotateActionEffect)}else{$clear(timer);timer=this.showSlide.delay(this.options.rotateActionDuration,this,[i,this.options.rotateActionDuration,this.options.rotateActionEffect])}this.stop()}.bind(this))},this)}if(this.buttonNext&&this.buttonPrev){this.buttonNext.addEvent('click',function(){if(this.currentSlide+1>=this.slides.length){next=0}else{next=this.currentSlide+1};this.showSlide(next,this.options.rotateActionDuration,this.options.rotateActionEffect);this.stop()}.bind(this));this.buttonPrev.addEvent('click',function(){if(this.currentSlide-1<0){next=this.slides.length-1}else{next=this.currentSlide-1};this.showSlide(next,this.options.rotateActionDuration,this.options.rotateActionEffect);this.stop()}.bind(this))}},showSlide:function(index,duration,transition){if(index==this.currentSlide)return;this.slides.each(function(slide,i){var button=$(this.buttons[i]);if(i==index&&i!=this.currentSlide){if(button)button.removeClass(this.options.buttonOffClass).addClass(this.options.buttonOnClass)}else{if(button)button.removeClass(this.options.buttonOnClass).addClass(this.options.buttonOffClass)}},this);switch(transition){case'fade':this.fxFade.setOptions({'duration':duration});this.fxFade.start(1,0.01).chain(function(){this.fxScroll.setOptions({'duration':1});this.fxScroll.toElement(this.slides[index]);this.fxFade.start(0.01,1)}.bind(this));break;case'crossfade':this.slides.each(function(el,i){this.fxCrossfade[i].setOptions({'duration':duration});if(i==index){this.fxCrossfade[i].start(1)}else if(el.getStyle('opacity')>0){this.fxCrossfade[i].start(0)}},this);break;case'scroll':this.fxScroll.setOptions({'duration':duration});this.fxScroll.toElement(this.slides[index])}this.currentSlide=index;this.fireEvent('onShowSlide',index)},rotate:function(){if(this.currentSlide+1>=this.slides.length){next=0}else{next=this.currentSlide+1};if(this.options.autoplay=='once'&&next==0){this.stop();return};this.showSlide(next,this.options.transitionDuration,this.options.transitionEffect);this.fireEvent('onRotate')},autoplay:function(){this.slideshowInt=this.rotate.periodical(this.options.slideInterval,this);this.fireEvent('onAutoPlay')},stop:function(){clearInterval(this.slideshowInt);this.fireEvent('onStop')}});YOOcarousel.implement(new Options);YOOcarousel.implement(new Events);
e dice
Codice: [Seleziona]
'Class' non è definito
'YOOcarousel' è nullo o non è un oggetto

l'errore nell'html si ripercuote quando lo scrip va a creare l'evento
Codice: [Seleziona]
<script type="text/javascript">
// <!--
window.addEvent('domready', function(){ new YOOcarousel('yoo-carousel-2', { transitionEffect: 'fade', transitionDuration: 800, rotateAction: 'click', rotateActionDuration: 200, rotateActionEffect: 'scroll', slideInterval: 3500, autoplay: 'on' }); });
// -->
</script>

sembra quasi che quando sono dentro un menu con un componente, non vengano trovati i giusti riferimenti al codice dello script e il modulo non funziona più.

Stesso identico problema qua:
http://tinyurl.com/oqahr8

nella home e in quasi tutte le altre pagine il modulo (in alto a destra) funziona.

se entro in "downloads" non va più!

Non vorrei avere combinato qualche casino con l'header del template e gli inserimenti degli script.

Sapete aiutarmi?

Offline maicolstaip

  • Global Moderator
  • Instancabile
  • ********
  • Post: 17623
  • Sesso: Maschio
    • Mostra profilo
Ciao simbus,
Yoocarousel è un modulo commerciale e non diamo assistenza a prodotti commerciali.
Devi insistere con loro.
Non si risponde a PM tecnici. Postate sul forum. Grazie.

Offline simbus82

  • Appassionato
  • ***
  • Post: 369
  • Sesso: Maschio
    • Mostra profilo
eh ma non richiedo assistenza al modulo in se, anzi, lui va benissimo, volevo sapere se la colpa era mia o del template o di joomla, visto che tutto va fino a quando non entro in un "componente"....

almeno capire se è un problema di JS da includere o cosa...

da loro mi han detto che va tutto bene e che forse ho fatto errori io nei template....

Offline simbus82

  • Appassionato
  • ***
  • Post: 369
  • Sesso: Maschio
    • Mostra profilo
ho notato una cosa importantissima!!!

nella home page dove tutto funziona, l'head generata contiene

Codice: [Seleziona]
<script type="text/javascript" src="/media/system/js/mootools.js"></script>
  <script type="text/javascript" src="/media/system/js/caption.js"></script>

se entro in download l'head generata dala riga di codice <jdoc:include type="head" /> non contiene più quelle righe che caricano gli script!!!!  :o


Offline simbus82

  • Appassionato
  • ***
  • Post: 369
  • Sesso: Maschio
    • Mostra profilo
RISOLTO..... ma perchè??????  ??? ??? ??? ???


ho messo nel template
<?php JHTML::_('behavior.mootools'); ?>

subito dopo
<jdoc:include type="head" />


ora carica anche i mootools quando entro in componente.... ma perchè?????

 



Web Design Bolzano Kreatif