Hei!
Olen miettinyt sellaista galleriaa, jossa olisi rivi pikku kuvia, vaikka viis kappaletta, ja sitten niiden päällä olisi yksi iso kuva. Viidestä pikku kuvasta keskimmäinen olisi sama kuin se yläpuolella oleva isokuva. Ja aina kun vaihtaa kuvaa niin se menee keskimmäiseksi, ja kaks seuraavaa tulee siihen vierelle. Toteutus kielenä ajattelin lähinnä php:tä. Toivottavasti tajusitte mitä ajan takaa.
Ps. Tarkoitus on hakea ideaa toteuttamiseen, jota mun pää nyt ei ole oikein järkevästi saanut kasaan. Eli en tarvi valmista galleria koodia.
Suomeksi: haluat valmista koodia. Ihan vain väärinkäsitysten välttämiseksi. Valmiiksi koodiksi kutsutaan myös niitä erillään toimivia palasia, joita liimailemalla toisiinsa saat kokonaisen gallerian kasaan.
P.S. Mikäli et osaa PHP:llä ohjelmoida mutta haluaisit niin tehdä, niin opettele PHP:tä. Täällä Putkassa on ihan hyvä opas sitä varten.
Goolaa vaikka javascript image gallery
tai flash image gallery
. Löysin heti vaikka kuinka monta ilmaista ladattavaa ohjelmaa.
Macro teen mielummin sen php:llä.
The Alchemist: Nyt tuli sulla juurikin sellainen väärinkäsitys.
Pystyykö kansiossa olevia kuvia jotenkin tietämään koodilla että missä järjestyksessä ne on? siis että jos mulla on image.png niin voiko tietää mikä tulee seuraavaksi?
Hei muuten vois kokeilla sellaista, jos se onnistuis, että kun etin kansiosta kuvia koodilla, niin laitan ne taulukkoon, siis kuvan nimet ja sieltä vaan sitten hajen kuvan nimen sieltä ja tulostan.
dartvaneri:
Kansion tiedostoja pystyy haistelemaan esim. glob -funktiolla.
Kyseinen funktio palauttaa tulokset array-muuttujaan, josta pystyt taas selvittämään tiedostojen järjestyksen. Tietenkin pystyt järjestämään listan itsekin.
okei :)
Vois katsella tuota muuttujaa.
Nyt tuli pikku ongelma, johon kaipaan apua. Nimittäin yritän saada laskettua tiedostojen määrää hakemistossa, jotta saisin tietää milloin mulla loppuu tiedostot, sitä varten, että se ei tulosta niitä tyhjiä pikkukuvia sinne loppuun loputtomasti, jos ei ole kuvia saatavilla. Koodia oon yrittänyt väsätä, mutta jokin on vialla, kun ei toimi, voisko joku vähän helppiä? Koodi:
$hakemisto .= "./kuvat/*.jpg"; $tiedostojen_maara = glob($hakemisto); echo count($tiedostojen_maara);
Edit. lisäsin ton .jpg:n tonne jotta se ei kaikkia tiedostoja hyväksy :)
Edit. no nyt toi ongelma on pois, mutta mitenköhän sais tohon useampia päätteitä: jpg,JPG,png,PNG,gif,GIF ? Yritin arraylla, mutta en saanut toimiin.
dartvaneri kirjoitti:
Nyt tuli pikku ongelma, johon kaipaan apua. Nimittäin yritän saada laskettua tiedostojen määrää hakemistossa, jotta saisin tietää milloin mulla loppuu tiedostot, sitä varten, että se ei tulosta niitä tyhjiä pikkukuvia sinne loppuun loputtomasti, jos ei ole kuvia saatavilla.
Kyllä ainakin minulla kyseinen koodisi toimii? Voisitko selvittää miten sen pitäisi toimia?
edit:
dartvaneri kirjoitti:
Edit. no nyt toi ongelma on pois, mutta mitenköhän sais tohon useampia päätteitä: jpg,JPG,png,PNG,gif,GIF ? Yritin arraylla, mutta en saanut toimiin.
Ainakin seuraavalla tavalla
// Halutut päätteet kaarisulkuihin pilkulla erotettuina ilman välilyöntejä. $hakemisto .= "./kuvat/{*.jpg,*.JPG,*.png,*.PNG,*.gif,*.GIF}"; // Itse glob-funktiolle annetaan lisäksi flag GLOB_BRACE $tiedostojen_maara = glob($hakemisto, GLOB_BRACE);
Joo no mulla oli sielä joku "näkymätön" viiva, jota en omalla editorillani nähnyt, mutta serkku sitten näki sen omalla editorilla, ja ongelma korjautu.
jostain syystä tämä koodi ilmoittaa nolla, siis toki lisäsin sinne
Onko hakemistossa ./kuvat/ tiedostoja?
on
Tällä koodilla se löytää kuusi.jpg päätteistä, eli kaikki, mutta jos tähän lisätään esimerkin mukaan noi päätteet niin nolla pyörähtää..
Miksi koodissa on .= eikä pelkkä = sijoituksessa?
Dokumentaation mukaan GLOB_BRACE ei toimi kaikissa järjestelmissä, tosin jää epäselväksi, missä ja miksi. Linuxissa pitäisi kyllä toimia.
Jos hakemistossa ei ole muuta kuin kuvia, voit laittaa yksinkertaisesti "kuvat/*.*". Muutenkin voit käyttää tuota ja filtteröidä tiedostonimet jälkikäteen:
Jännää sinänsä, että mulla tuo ilmoittaa 1, vaikka hakemistossa ei olisi yhtään kuvaa... Jos on 1 tai useampi, niin ilmoittaa oikean määrän.
Mutta onko sulla warningit ja noticet päällä?
Grez, count(false) on 1. Näppärää? :) En edelleenkään ymmärrä, miksi glob edes palauttaa Windowsissa tyhjästä hakemistosta falsen eikä tyhjää taulukkoa. Vaikka käytössä olisi jokin käyttöjärjestelmän glob-rajapinta, ei varmaan olisi iso vaiva PHP:n puolella muuttaa toimintaa yhtenäiseksi.
Se on kai tullut vahingossa. Meidän palvelimessä on opensuse, eiks se oo linuxin käyttöjärjestelmä? Kuvia ja yks kansio.
Jeps toi koodi toimii, kiitos :)
Tarkoitin siis, että mitenköhän dartvaneri saa 0, kun ...
Ja mulla se palauttaa FreeBSD:ssä sen falsen tyhjästä hakemistosta, en oo kokeillut Windowsissa.
Ehkä se dartvanerilla palautti jotain muuta jos ei tykännyt bracesta tms.
Onneksi en koodaa PHP:llä ;D
Niin, dartvaneri saa nollan, kun dartvanerilla on parempi käyttis, joka ymmärtää palauttaa tyhjän arrayn. ;) Dokumentaation mukaan "an empty array if no file matched or FALSE on error". Minulla on aina Linuxissa tullut tyhjä array tyhjästä hakemistosta, jännää.
Mutta jos on ongelmia globin kanssa, kannattaa ehkä siirtyä suosiolla listaamaan kaikki ja poimimaan toivotut preg_grepillä.
öö, ilmeisesti toi "." oli vikana siinä koodissa, koska ilman tota toimii.
Metabolix kirjoitti:
Niin, dartvaneri saa nollan, kun dartvanerilla on parempi käyttis, joka ymmärtää palauttaa tyhjän arrayn.
OpenSuse on parempi kuin FreeBSD? No joo, voihan se olla, mutta itse en nyt laittaisi käyttiksiä paremmuusjärjestykseen ainakaan pelkästään yhden PHP-funktion perusteella..
Kyllä mulla palautti 0 tyhjässä kansiossa, ku testasin.
Joo no ei se oo olennaista, ellei sun koodin tarvi toimia eri ympäristöissä. Ilmeisesti PHP ei osaa FreeBSD:ssä erottaa tyhjää hakemistoa virhetilanteesta. En taas tajunnut tuota kun ihmettelin tätä ongelmaa. Niinkuin Metabolix sanoi, niin ei luulis olevan mahdotonta tehdä sitä toimimaan samalla tavalla eri ympäristöissä.
Pystyykö taulukosta hakemaa indeksi arvoa? Siis että kun on taulukko:
$autot = array('audi','volvo','lada');
niin $auto[1] on volvo, mutta voinko hakea sanalla volovo, että saan tulokseksi 1?
https://www.php.net/array_search
Ja tuossa ajassa olisit jo koodannut itse sen haun yhdellä foreach-silmukalla.
dartvaneri kirjoitti:
Pystyykö taulukosta hakemaa indeksi arvoa? Siis että kun on taulukko:
$autot = array('audi','volvo','lada');niin $auto[1] on volvo, mutta voinko hakea sanalla volovo, että saan tulokseksi 1?
Kiitos ! :)
Edit. Nyt se on jo pitkällä, ehkä vielä teen kuvatekstitki.. http://ekuvat.dy.fi/galleria/galleria.php
Aihe on jo aika vanha, joten et voi enää vastata siihen.