Newsgroup: it.lavoro.professioni.webmaster
Titolo: Problema con JS in un modulo per il CMS joomla.

Ho un problema su ben 2 siti.
Ho installato il modulo Yoocarousel di yootools, ma da loro non ho avuto
risposte riguardo il problema.
Sono moduli che si basano sui MooTools
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
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
'Class' non � definito
'YOOcarousel' � nullo o non � un oggetto
l'errore nell'html si ripercuote quando lo scrip va a creare l'evento
<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.
Sinceramente non riesco proprio a capire dove sta il problema.... :-S... 
sono con le spalle al muro!
Sapete aiutarmi?
-- 
SimBus82.net coming soon - 
http://www.simbus82.net
Blog allenamento - 
http://simbus82-workout.blogspot.com/
 

 
Il primo sito funziona correttamente con FF e IE8...
Nel secondo nella pagina download sparisce il caricamento di mootools 
(presente ad esempio in home), quindi se yoocarousel � basato su 
moootools direi che � quello il motivo.
Generalmente questo tipo di problemi � dato da conflitti tra diverse 
librerie js, quindi sono andato a vedere se per caso nella pagina 
download usavi una libreria aggiuntiva, ma in realt� l� manca proprio 
mootools.
-- 
-------------------------------------------
Paolo De Dionigi
www.atfriends.net
Responsabile Tecnico Zen Cart Italia

 usavi una libreria aggiuntiva, ma in realt� l� manca proprio mootools.
ti ringrazio.... a furia di capire il motivo del perch� i mootools sono 
presenti nella home e non nei restanti link interni...
ho inserito
<?php JHTML::_('behavior.mootools'); ?>
che carica appunto i mootools.
non capisco per� perch� se non lo uso li carica cmq nella home page e non ad 
esempio in download...
:-S
