Autor Zpráva
Jan
Profil
Jak umístit java script do externího souboru ?

Mám takovíto php kód :
<H3 id="faceh1">Boxerky i podprsenky Calvin Klein</H3>                    

<!-- MODULE Block Fading Text -->          {if isset($bft_text)}          

<script type="text/javascript">          var total_divs={$bft_text|@count};          {if $bft_text|@count > 1}          function fadeEngine(x)          {ldelim}              var y=x;              bft_time = 5000;              if(x==total_divs)                  y=1;              else                  y++;              {foreach from=$bft_text item=bft_text_item key=bft_i}                      {math assign="bft_count" equation='x-y' x=$bft_i y=1}                  {if $bft_i == 1}                      bft_time = {$bft_text_item.delay};                  {else}                      if (x == {$bft_count})                          bft_time = {$bft_text_item.delay};                  {/if}              {/foreach}              $("#bft_fade"+x).css("display","none");              $("#bft_fade"+y).fadeIn("slow");              setTimeout('fadeEngine('+y+')',bft_time);          {rdelim}          fadeEngine(0);          {/if}          

</script>                    

<a href="../content/5-slevove-akce" title="Slevy">          
<div id="popiso">                            {foreach from=$bft_text item=bft_text_item key=bft_i}                  
<div id="bft_fade{$bft_i}" style="{if $bft_i != 1}display:none;{/if}" class="block_content">                  {$bft_text_item.content}                  
</div>              {/foreach}          
</div>          
</a>                    

potřebuju tento java script umístit mimo tento php kód. Rád bych vás tedy poprosil o návod jak tento kód umístit jinam, jak csriptu říst aby tento java probedl kdy má. Díky
Michel
Profil
Jan:
www.jakpsatweb.cz
Jan
Profil
zkusil jsem již pár věcí ale nefunguje :

místo java script jsem umístil tento odkaz na něj

<script src="../modules/homefeatured/themes/1/js-image-slider.js" type="text/javascript"></script>

do tohoto souboru jsem poté umístil takto kód :

var total_divs={$bft_text|@count};          {if $bft_text|@count > 1}          function fadeEngine(x)          {ldelim}              var y=x;              bft_time = 5000;              if(x==total_divs)                  y=1;              else                  y++;              {foreach from=$bft_text item=bft_text_item key=bft_i}                      {math assign="bft_count" equation='x-y' x=$bft_i y=1}                  {if $bft_i == 1}                      bft_time = {$bft_text_item.delay};                  {else}                      if (x == {$bft_count})                          bft_time = {$bft_text_item.delay};                  {/if}              {/foreach}              $("#bft_fade"+x).css("display","none");              $("#bft_fade"+y).fadeIn("slow");              setTimeout('fadeEngine('+y+')',bft_time);          {rdelim}          fadeEngine(0);          {/if}

ale nepomohlo to, moná jen v externím souboru stačí nějak začnout a ukončit tento skript opravdu nevím.
Díky za rady
Alphard
Profil
To není jen javascriptový kód, vidím tam i nějaký šablonovací jazyk, Smarty? To se musí zpracovat přes PHP a zřejmě závisle na konkrétním obsahu, takže vyčlenění do externího souboru je silně problematické. Proč to vlastně potřebujete, nejde to řešit jinak?
Jediné rozumné řešení je přenést část logiky do javascriptu, v hlavní stránce nechat jen konfiguraci a výkonný javascriptový kód by šel pak dát externě.
peta
Profil
Vidim takove 2 mozne reseni. Ulozit vsechno z php do pole a toto pole predat javascriptu.

<script>params = [{$bft_text|@count},{$bft_text},{$bft_text_item.delay}...]<script>
<script src="mujscript.js"></script>
--- mujscript.js ---
var total_divs=params[0]; 
if (total_divs>1)
function ....
 bft_time = params[2]; 

<script src="mujscript.js?a={$bft_text|@count}&b={$bft_text}..."></script>
--- mujscript.js ---
alert(location.search) // z toho to vyparsovat do params (split('&'),split('='))
...

A nebo pouzit ten smarty k vygenerovani js kodu pro ten externi soubor. Do mujscript.php to proste vlozis cele a zavolas na to smarty.

Co treba pridat zdrojovy kod stranky a ne zdrojovy kod sablony?
To smarty funguje tak, ze nahradi {$promenna} za obsah php promennou. Pak jde vysledny html/js kod uzivateli, prohlizeci
Chamurappi
Profil
Reaguji na Alpharda:
Proč to vlastně potřebujete, nejde to řešit jinak?
Velmi pravděpodobně proto, že mu Seo-servis nalhal, že si tím nějak pomůže ve vyhledávačích.
peta
Profil
V google to tak je. Google si vsima vlozeneho kodu, kolik ho je a kdyz je externi, zda ho mas minifikovany. Dale si vsima rychlost nacitani stranky. Coz muze javascript brzdit nacitanim dodatecneho obsahu. Takze pak google doporucuje vlozit javascript az uplne na konec stranky.
Kazdopadne souhlasim s tim, ze bych do toho kodu nevrtal, kdyz to neumim. Radeji mit funkcni kod nez se s tim patlat kdo vi, jak dlouho.
Chamurappi
Profil
Reaguji na peta:
Google si vsima vlozeneho kodu, kolik ho je a kdyz je externi, zda ho mas minifikovany.
Dolož tuto informaci odkazem na hodnověrný zdroj, jinak budeš smazán.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: