Jump to content
  • Announcements

    • Xmat

      Pravidlo pro postování v TTT

      Do sekce Tipy, triky, tutoriály nepatří žádné dotazy.   Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse.
    • Replik

      Seznam návodů a důležitých témat v této sekci

      Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou.   Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku.   Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid   Chyby a jejich řešení při přihlašování k serveru - Autor Cybe   Zálohování uživatelských dat   Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik   Kompilování - tvoření vlastních release (revizí)   Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma   Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré   VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius   Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM.   Díky a přeji hezký den na WoWResource   Replik
    • Aristo

      Příspěvky tam, kde nemají co dělat

      Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem.
    • Aristo

      Používání spoilerů

      Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru.   Funkci vyvoláte příkazem [spoiler] text [/spoiler]   Ukázka:  
Sign in to follow this  
...:::NaTiOn:::...

(JS/PHP) Random Image Rotator

Recommended Posts

Dobrý den, skúšam zohnať "Automatický náhodný menič obrázkov", ktorý

však načíta sám obrázky s zložky (PHP). Spojil som JS a PHP scripty. Lenže PHP

script mi načítal náhodný obrázok zo zložky a Javascript mi ho vymienal ale len furt jeden.

PHP Script proste nenačítal ostatné obrázky ale len jeden načítal a furt dookola JS ho vymienal.

Moja otázka je. Vedel by niekdo spraviť Rotator ktorý načíta všetky obrázky a bude je automaticky sám vymienat v jednom okienku ?

 

Dakujem všetkým ktorý sa pokusia o niečo.

Share this post


Link to post
Share on other sites

Chceš dělat slider jo? Tak si je načti do proměných... udělej náhodný číslo a to podle toho vylosuje

Share this post


Link to post
Share on other sites

Hmm. Tak ono to ma fungovat že ja po čase vložím ešte dalšie obrázky preto to nechcem davat vypisovat názvami. A tie hodnoty. Keby som dal čislo od 1 a dal by som to po 10 tak by to losovalo aj tie cisla ktoré tam nejsu a potom by to hadzalo že nevie načítat ten obrázok. :/ Napadlo ma vela veci ale ked som nad tym vzdy rozmyslal tak by to nefungovalo :/ Preto sa pýtam vás :/

Share this post


Link to post
Share on other sites

Už ti ten kód sepisuji.

 

EDIT:

Zde máš ten kód, netestoval jsem, tak kdyby byla chyba, napiš, opravím.

 

EDIT2:

Schválně jsem to otestoval, měl jsem tam JS error, opraveno.

 

EDIT3:

Ještě jsem zapoměl na podmínku v JS, jak skončily obrázky, nevrátilo se to na první.

Opraveno

 

<?php
$array = null;
$obrazku = 0;
$obrazky = opendir ("./images");
while (($obr = readdir ($obrazky)) !== false) {
if ($obr != "." && $obr != ".." && substr ($obr, -4, 1) == ".") {
if ($obrazku != 0) $array .= ", ";
$array .= '"'.$obr.'"';
$obrazku++;
}
}
if ($obrazku != 0) {
echo "<script>";
echo "var rotatorimages = new Array (".$array.")";
echo "</script>";
}
?>
<script>
var num = 0;
function rotate () {
var imagebox = document.getElementById("imagebox");
imagebox.src = "./images/" + rotatorimages[num];
setTimeout ("rotate ();", 3000); // 3000 -> 3sec pro reload obrázku
var count = rotatorimages.length;
if (num < count) num++;
else num = 0;
}
</script>
<html>
<head>
<title></title>
</head>
<body onload="rotate ();">
<img src="" alt="ImagesRotator" id="imagebox">
</body>
</html>

Edited by Hookyns
  • Upvote 1

Share this post


Link to post
Share on other sites

<?php
$directory = "gfx/";

if(!is_dir($directory))
 die("Enter please valid directory");

$dirHandler = @opendir($directory) or die("Cannot open directory");

$files = Array();
while($file = readdir($dirHandler))
 if(is_file($directory.$file) && preg_match("/\.(jpg|png|gif)$/", $file) == 1)
  $files[] = "\"".$directory.$file."\"";

sort($files);

$images = implode(", ", $files);
closedir($dirHandler)
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="cs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
 #preview{ width: 480px; height: 320px; border: 1px solid #000000;  background-repeat: no-repeat; }
</style>
</head>
<body>
<div id="preview">

</div>
<script type="text/javascript"> 
 var selector = "preview";
 var iterator = 0;
 var interval = 1;

 var images = new Array(<?php echo $images?>);

 function changeBackground(){
  var imagesCount = images.length;

  if(imagesCount > 0 && iterator < imagesCount){   
   document.getElementById(selector).style.backgroundImage = "url('"+images[iterator]+"')";

   //Zapomenute nahodne vybirani
   iterator = Math.floor((Math.random()*imagesCount));

   //iterator++;

   //if(iterator == imagesCount)
   // iterator = 0;
  }
 } 

 var interval = window.setInterval(changeBackground, interval * 1000);
</script>
</body>
</html>

 

//edit: zapomněl jsem na to náhodné vybírání :)

Edited by Filgron
  • Upvote 1

Share this post


Link to post
Share on other sites

<?php
$directory = "gfx/";

if(!is_dir($directory))
 die("Enter please valid directory");

$dirHandler = @opendir($directory) or die("Cannot open directory");

$files = Array();
while($file = readdir($dirHandler))
 if(is_file($directory.$file) && preg_match("/\.(jpg|png|gif)$/", $file) == 1)
  $files[] = "\"".$directory.$file."\"";

sort($files);

$images = implode(", ", $files);
closedir($dirHandler)
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="cs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
 #preview{ width: 480px; height: 320px; border: 1px solid #000000;  background-repeat: no-repeat; }
</style>
</head>
<body>
<div id="preview">

</div>
<script type="text/javascript">
 var selector = "preview";
 var iterator = 0;
 var interval = 1;

 var images = new Array(<?php echo $images?>);

 function changeBackground(){
  var imagesCount = images.length;

  if(imagesCount > 0 && iterator < imagesCount){  
document.getElementById(selector).style.backgroundImage = "url('"+images[iterator]+"')";

iterator++;

if(iterator == imagesCount)
 iterator = 0;
  }
 }

 var interval = window.setInterval(changeBackground, interval * 1000);
</script>
</body>
</html>

 

Tento kód funguje, no ja by som potreboval to mať tak aby som to mohol vložiť viac krát ten rotator.

 

 

Už ti ten kód sepisuji.

 

EDIT:

Zde máš ten kód, netestoval jsem, tak kdyby byla chyba, napiš, opravím.

 

<?php
$array = null;
$obrazku = 0;
$obrazky = opendir ("./images");
while (($obr = readdir ($obrazky)) !== false) {
if ($obr != "." && $obr != ".." && substr ($obr, -4, 1) == ".") {
	if ($obrazku != 0) $array .= ", ";
	$array .= '"'.$obr.'"';
	$obrazku++;
}
}
if ($obrazku != 0) {
echo "<script>";
		echo "var rotatorimages = new Array (".$array.")";
	echo "</script>";
}
?>
<script>
function rotate (num) {
//var count = rotatorimages.length;
var imagebox = document.getElementById("imagebox");
imagebox.src = "./images/" + rotatorimages[num];
setTimeout ("rotate (num+1)", 3000); // 3000 -> 3sec pro reload obrázku
}
</script>
<html>
<head>
<title></title>
</head>
<body onload="rotate (0);">
<img src="" alt="ImagesRotator" id="imagebox">
</body>
</html>

 

Tvoj kód mi nak nefunguje. Nemenia sa obrázky.

Share this post


Link to post
Share on other sites

Tento kód funguje, no ja by som potreboval to mať tak aby som to mohol vložiť viac krát ten rotator.

 

Víckrát znamená přesně co? Více složek, ze kterých by tahal obrázky a následně i více náhledů, kde by se spustilo víc instancí tohoto ,,rotatoru"?

Share this post


Link to post
Share on other sites

Víckrát znamená přesně co? Více složek, ze kterých by tahal obrázky a následně i více náhledů, kde by se spustilo víc instancí tohoto ,,rotatoru"?

 

No proste. Ja potrebujem spravit jedén pás ktorý bude mat 3 riadky. Stĺpcov kolko sa zmesti na obrazovku a bude sa skladat s kociek. Každa jedna kocka sa bude menit obrazok.

 

//edit : Takýto pás a miesto tych farebnych kociek sa budu meniť obrázky post-10104-0-69387400-1341758404_thumb.png

Edited by ...:::NaTiOn:::...

Share this post


Link to post
Share on other sites

No proste. Ja potrebujem spravit jedén pás ktorý bude mat 3 riadky. Stĺpcov kolko sa zmesti na obrazovku a bude sa skladat s kociek. Každa jedna kocka sa bude menit obrazok.

 

//edit : Takýto pás a miesto tych farebnych kociek sa budu meniť obrázky post-10104-0-69387400-1341758404_thumb.png

Takže, pokud to dobře chápu, v každé kostičce bude rotovat jedna složka s obrázky?

Takže chceš vlastně 3*13 rotatorů s tím, že každý bude načítat obrázky z jiné složky?

Edited by Hookyns

Share this post


Link to post
Share on other sites

Takže, pokud to dobře chápu, v každé kostičce bude rotovat jedna složka s obrázky?

Takže chceš vlastně 3*13 rotatorů s tím, že každý bude načítat obrázky z jiné složky?

 

Nene, nebude načítat s inej zložky všetky rotatory budu načítat s rovnakej zložky

Ale 13 rotatorov nebude bude ich tolko kolko sa zmesti na obrazovku do znamena background-repeat: repeat-x;

Share this post


Link to post
Share on other sites

Proč by nenačítalo? Tak tam místo texťáku dej odkaz na php který ti ty obrázky pod sebe vypíše (pouze odkazy na ně).

Share this post


Link to post
Share on other sites

K divu přiřadíš rotator takto:

   new Block(document.getElementById("b" + x), width, height, "images.txt", Math.floor((Math.random()*3000)+1000));

kde

"images.txt"

je odkaz na soubor který obsahuje odkazy na obrázky.

 

Da?

 

Ten soubor vypadá vevnitř takhle:

 

http://www.lolcats.com/images/u/07/23/lolcatsdotcomqxw9hbytlkc4rhkc.jpg
http://mintyferret.com/wp-content/uploads/2007/07/lolcat7.gif
http://lolcat.com/images/lolcats/1399.jpg
http://catmacros.files.wordpress.com/2010/01/bore_me_kitten.jpg

 

takže ty uděláš soubor třeba kokot.php, ve kterém vypíšeš obrázky z té složky takto pod sebe a zavoláš script

   new Block(document.getElementById("b" + x), width, height, "kokot.php", Math.floor((Math.random()*3000)+1000));

 

Kapišto?

Share this post


Link to post
Share on other sites

K divu přiřadíš rotator takto:

new Block(document.getElementById("b" + x), width, height, "images.txt", Math.floor((Math.random()*3000)+1000));

kde

"images.txt"

je odkaz na soubor který obsahuje odkazy na obrázky.

 

Da?

 

Ten soubor vypadá vevnitř takhle:

 

http://www.lolcats.com/images/u/07/23/lolcatsdotcomqxw9hbytlkc4rhkc.jpg
http://mintyferret.com/wp-content/uploads/2007/07/lolcat7.gif
http://lolcat.com/images/lolcats/1399.jpg
http://catmacros.files.wordpress.com/2010/01/bore_me_kitten.jpg

 

takže ty uděláš soubor třeba kokot.php, ve kterém vypíšeš obrázky z té složky takto pod sebe a zavoláš script

new Block(document.getElementById("b" + x), width, height, "kokot.php", Math.floor((Math.random()*3000)+1000));

 

Kapišto?

 

Pane Bože, tu robite zomna dementa :D. Ale tym to nevyriešim nič. Iba to zmenim s formy .txt na .php ;). Ja ale potrebujem aby to dokázalo bez linkovania získať názvy zo zložky napríklad "images/". Chápeme sa ?

 

//edit: Ten script vlastne najdem v tych scriptoch čo mi postli chalani hore.

 

//edit2: Upravil som to a mam tam zmenene to na .php v ktom .php mam vloženi script na čitanie automaticky tie nazvy. Ale mne to proste nejde rozbehnut... ja to stiahnem to WWW.rar rozbalim otvorim a miesto obrazkov vidim len jedno X

Edited by ...:::NaTiOn:::...

Share this post


Link to post
Share on other sites

Mg co na tom pořád nechápeš? Php. Vypsat. Soubory. Ve. Složce.

http://www.brightche...in-a-directory/

Google.

 

edit: Jediný s čím můžeš mít problém je že to nevypisuješ pod sebe. Script čte obrázky po řádkách, i když si to jednoduše můžeš změnit na jakejkoliv jinej znak

_this.images = this.responseText.split("\n"); 

nahradíš

\n

požadovaným znakem

Edited by Hkarta

Share this post


Link to post
Share on other sites

Mg co na tom pořád nechápeš? Php. Vypsat. Soubory. Ve. Složce.

http://www.brightche...in-a-directory/

Google.

 

edit: Jediný s čím můžeš mít problém je že to nevypisuješ pod sebe. Script čte obrázky po řádkách, i když si to jednoduše můžeš změnit na jakejkoliv jinej znak

_this.images = this.responseText.split("\n");

nahradíš

\n

požadovaným znakem

 

Ja tu hovorim že ked rozbalim tvoj .rar a otvorim ho v prehliadači tak mi nenabehnu obrázky ale iba jeden a ten ktory je nastaveny v JS pri var error :)

 

//edit: Pardon za SPAM, zapomnel sem že sem už postoval

Edited by ...:::NaTiOn:::...

Share this post


Link to post
Share on other sites

No a otvíráš to na webserveru? Klidně lokálním? Většina prohlížečů nedovolí javascriptu přistupovat k soborům v offline režimu.

Share this post


Link to post
Share on other sites

No a otvíráš to na webserveru? Klidně lokálním? Většina prohlížečů nedovolí javascriptu přistupovat k soborům v offline režimu.

 

Ano, mam apache nainstalovani cez EasyPHP. Takže neviem prečo to nejde :/

 

//edit: Už mi to načitalo. Konečne ale neviem ako to spravit aby to čitalo všetko zo zložky...

Edited by ...:::NaTiOn:::...

Share this post


Link to post
Share on other sites

A vypadá tvoje adresa takhle

file:///C:/Web/www/index.html

nebo takhle

http://127.0.0.1/index.html

 

edit: http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/'>http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/'>http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/'>http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/'>http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/'>http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/

http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/

http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/

http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/

http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/

http://www.brightcherry.co.uk/scribbles/php-list-all-files-in-a-directory/

!!!

Edited by Hkarta
  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×