Follow us on Twitter X-Cart on Facebook Wiki
Shopping cart software Solutions for online shops and malls
 

Calling external JS

 
Reply
   X-Cart forums > X-Cart 4 > Dev Questions > Changing design
 
Thread Tools Search this Thread
  #1  
Old 05-25-2006, 11:17 PM
 
Gcomm_11 Gcomm_11 is offline
 

Newbie
  
Join Date: Dec 2005
Posts: 7
 

Default Calling external JS

Hi guys,

I'm attempting to insert a vertical image scroll into customer/home.tpl. It works when I place it directly within home.tpl, but then I obviously have a very large section of javascript on my home page. Hence I have been trying to call upon the file externally, with no luck. I've read all the posts I could find on this topic, but so far nothing seems to work.

script is called scroll.js, and is located skin1/scroll.js

Quote:
<!--

///////configure the below four variables to change the style of the slider///////
//set the scrollerwidth and scrollerheight to the width/height of the LARGEST image in your slideshow!
var scrollerwidth='103px'
var scrollerheight='106px'
//3000 miliseconds=3 seconds
var pausebetweenimages=3000

//configure the below variable to change the images used in the slideshow. If you wish the images to be clickable, simply wrap the images with the appropriate <a> tag
var slideimages=new Array()
slideimages[0]='[img]PE01805A.gif[/img]'
slideimages[1]='[img]PE01803A.gif[/img]'
slideimages[2]='[img]TN00411A.gif[/img]'
slideimages[3]='[img]PE02054A.gif[/img]'
slideimages[4]='[img]f[/img]'
//extend this list

///////Do not edit pass this line///////////////////////

var ie=document.all
var dom=document.getElementById

if (slideimages.length>2)
i=2
else
i=0

function move1(whichlayer){
tlayer=eval(whichlayer)
if (tlayer.top>0&&tlayer.top<=5){
tlayer.top=0
setTimeout("move1(tlayer)",pausebetweenimages)
setTimeout("move2(document.main.document.second)", pausebetweenimages)
return
}
if (tlayer.top>=tlayer.document.height*-1){
tlayer.top-=5
setTimeout("move1(tlayer)",50)
}
else{
tlayer.top=parseInt(scrollerheight)
tlayer.document.write(slideimages[i])
tlayer.document.close()
if (i==slideimages.length-1)
i=0
else
i++
}
}

function move2(whichlayer){
tlayer2=eval(whichlayer)
if (tlayer2.top>0&&tlayer2.top<=5){
tlayer2.top=0
setTimeout("move2(tlayer2)",pausebetweenimages)
setTimeout("move1(document.main.document.first)",p ausebetweenimages)
return
}
if (tlayer2.top>=tlayer2.document.height*-1){
tlayer2.top-=5
setTimeout("move2(tlayer2)",50)
}
else{
tlayer2.top=parseInt(scrollerheight)
tlayer2.document.write(slideimages[i])
tlayer2.document.close()
if (i==slideimages.length-1)
i=0
else
i++
}
}

function move3(whichdiv){
tdiv=eval(whichdiv)
if (parseInt(tdiv.style.top)>0&&parseInt(tdiv.style.t op)<=5){
tdiv.style.top=0+"px"
setTimeout("move3(tdiv)",pausebetweenimages)
setTimeout("move4(second2_obj)",pausebetweenimages )
return
}
if (parseInt(tdiv.style.top)>=tdiv.offsetHeight*-1){
tdiv.style.top=parseInt(tdiv.style.top)-5+"px"
setTimeout("move3(tdiv)",50)
}
else{
tdiv.style.top=scrollerheight
tdiv.innerHTML=slideimages[i]
if (i==slideimages.length-1)
i=0
else
i++
}
}

function move4(whichdiv){
tdiv2=eval(whichdiv)
if (parseInt(tdiv2.style.top)>0&&parseInt(tdiv2.style .top)<=5){
tdiv2.style.top=0+"px"
setTimeout("move4(tdiv2)",pausebetweenimages)
setTimeout("move3(first2_obj)",pausebetweenimages)
return
}
if (parseInt(tdiv2.style.top)>=tdiv2.offsetHeight*-1){
tdiv2.style.top=parseInt(tdiv2.style.top)-5+"px"
setTimeout("move4(second2_obj)",50)
}
else{
tdiv2.style.top=scrollerheight
tdiv2.innerHTML=slideimages[i]
if (i==slideimages.length-1)
i=0
else
i++
}
}

function startscroll(){
if (ie||dom){
first2_obj=ie? first2 : document.getElementById("first2")
second2_obj=ie? second2 : document.getElementById("second2")
move3(first2_obj)
second2_obj.style.top=scrollerheight
second2_obj.style.visibility='visible'
}
else if (document.layers){
document.main.visibility='show'
move1(document.main.document.first)
document.main.document.second.top=parseInt(scrolle rheight)+5
document.main.document.second.visibility='show'
}
}

window.onload=startscroll

</script>


<ilayer id="main" width=&{scrollerwidth}; height=&{scrollerheight}; visibility=hide>
<layer id="first" left=0 top=1 width=&{scrollerwidth};>
<script language="JavaScript1.2">
if (document.layers)
document.write(slideimages[0])
</script>
</layer>
<layer id="second" left=0 top=0 width=&{scrollerwidth}; visibility=hide>
<script language="JavaScript1.2">
if (document.layers)
document.write(slideimages[dyndetermine=(slideimages.length==1)? 0 : 1])
</script>
</layer>
</ilayer>

<script language="JavaScript1.2">
if (ie||dom){
document.writeln('<div id="main2" style="position:relative;width:'+scrollerwidth+';h eight:'+scrollerheight+';overflow:hidden;">')
document.writeln('<div style="position:absolute;width:'+scrollerwidth+';h eight:'+scrollerheight+';clip:rect(0 '+scrollerwidth+' '+scrollerheight+' 0);left:0px;top:0px">')
document.writeln('<div id="first2" style="position:absolute;width:'+scrollerwidth+';l eft:0px;top:1px;">')
document.write(slideimages[0])
document.writeln('</div>')
document.writeln('<div id="second2" style="position:absolute;width:'+scrollerwidth+';l eft:0px;top:0px;visibility:hidden">')
document.write(slideimages[dyndetermine=(slideimages.length==1)? 0 : 1])
document.writeln('</div>')
document.writeln('</div>')
document.writeln('</div>')
}
//-->



customer/home.tpl:

Quote:
{literal}<script language="JavaScript1.2" src="/skin1/scroll.js"></script>{/literal}

I've tried pasting the {literal} tags within scroll.js instead, but that doesn't work either.

Any help would be greatly appreciated.

Thanks .... Chris
__________________
X-Cart version 4.0.17
Reply With Quote
  #2  
Old 05-26-2006, 02:52 AM
 
balinor balinor is offline
 

Veteran
  
Join Date: Oct 2003
Location: Connecticut, USA
Posts: 30,253
 

Default

Put the .js file in your skin1 directory and call it like this:

<script language="JavaScript1.2" src="{$SkinDir}/scroll.js"></script>
__________________
Padraic Ryan
Ryan Design Studio
Professional E-Commerce Development
Reply With Quote
  #3  
Old 05-26-2006, 03:03 AM
 
Gcomm_11 Gcomm_11 is offline
 

Newbie
  
Join Date: Dec 2005
Posts: 7
 

Default

Hi Balinor,

Thanks for the quick reply. Unfortunately I've tried that and it still doesn't work. I can't figure out why. It doesn't give me any error or anything, it's like it doesn't register that the file is there at all. I've currently got the scroll.js file in the skin1 directory.

Yet if I paste the code directly into the home.tpl file it works perfectly??

Is there any other information I could provide you with?

Thanks

Chris
__________________
X-Cart version 4.0.17
Reply With Quote
  #4  
Old 05-26-2006, 03:05 AM
 
balinor balinor is offline
 

Veteran
  
Join Date: Oct 2003
Location: Connecticut, USA
Posts: 30,253
 

Default

Do you have {literal} tags around the code in the external file? Is the external file set to at least 644 permission?
__________________
Padraic Ryan
Ryan Design Studio
Professional E-Commerce Development
Reply With Quote
  #5  
Old 05-26-2006, 03:09 AM
 
Gcomm_11 Gcomm_11 is offline
 

Newbie
  
Join Date: Dec 2005
Posts: 7
 

Default

I don't have the {literal} tags in the external file because I used them in the home.tpl file instead;

Quote:
{literal}<script language="JavaScript1.2" src="{$SkinDir}/scroll.js"></script>{/literal}

Yes for the 644 permission.
__________________
X-Cart version 4.0.17
Reply With Quote
  #6  
Old 05-26-2006, 03:09 AM
 
balinor balinor is offline
 

Veteran
  
Join Date: Oct 2003
Location: Connecticut, USA
Posts: 30,253
 

Default

Just for kicks, try putting the literal tags in the file itself and don't use them on home.tpl.
__________________
Padraic Ryan
Ryan Design Studio
Professional E-Commerce Development
Reply With Quote
  #7  
Old 05-26-2006, 03:11 AM
 
Gcomm_11 Gcomm_11 is offline
 

Newbie
  
Join Date: Dec 2005
Posts: 7
 

Default

I just did then, but still no luck
__________________
X-Cart version 4.0.17
Reply With Quote
  #8  
Old 05-26-2006, 03:14 AM
 
balinor balinor is offline
 

Veteran
  
Join Date: Oct 2003
Location: Connecticut, USA
Posts: 30,253
 

Default

Hmmm..I'm at a loss..I use a couple of external calls on most of my sites and as long as the path is correct it works.....
__________________
Padraic Ryan
Ryan Design Studio
Professional E-Commerce Development
Reply With Quote
  #9  
Old 05-26-2006, 03:21 AM
 
Gcomm_11 Gcomm_11 is offline
 

Newbie
  
Join Date: Dec 2005
Posts: 7
 

Default

Yeah I can't figure it out at all. My site is www.truegamer.com.au and I'm trying to insert it below my Geotrust logo. At the moment all that appears is the table border. If you type the URL where the scroll.js file is located; http://www.truegamer.com.au/skin1/scroll.js it appers fine.

I figure it must be something to do with the actual external code. Maybe I forgot to take out a <script> tag or something. I don't know enough about javascript so if anyone can take a look at it, (qouted in my fist post), I would be very thankful.
__________________
X-Cart version 4.0.17
Reply With Quote
  #10  
Old 05-26-2006, 03:24 AM
 
balinor balinor is offline
 

Veteran
  
Join Date: Oct 2003
Location: Connecticut, USA
Posts: 30,253
 

Default

I'm getting a JavaScript error when I load your site, so that may be the issue:

Line: 145
Char: 10
Error: Expected '/'
__________________
Padraic Ryan
Ryan Design Studio
Professional E-Commerce Development
Reply With Quote
Reply
   X-Cart forums > X-Cart 4 > Dev Questions > Changing design



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -8. The time now is 07:37 AM.

   

 
X-Cart forums © 2001-2020