Slika dana - PHP+JS
Pre osam godina sam napravio prvi sajt, ako se to uopšte moglo nazvati sajtom. Danas se ne sećam ni adrese, bilo je to na nekom besplatnom hostu, sa besplatnim poddomenom. Taj sajt je potpuno nebitan za ovu priču, ali će poslužiti kao uvod u ono što ću napisati, jer sa njim je sve i počelo.
Naime, tad i nisam imao neko veliko iskustvo i znanje iz web dizajna i programiranja, a još manje ideju šta hoću na tom sajtu. Sajt je trebalo popuniti nekim sadržajem, a kao pogodne pojavile su se skripte koje su nudili drugi sajtovi: Devojka dana, Pozadina dana i Vic dana. Sve je to bilo fino, ali mene su nervirale reklame koje su bile prikazivane ispod tih slika, te sam odlučio da probam da sam napravim te skripte. Razgledajući po kodu shvatio sam da se zapravo radi o jednom JavaScript fajlu, preuzeo sam ga i nekako editovao. Bio je to moj prvi dodir sa JS.
Ostala je ta skripta zaboravljena par godina, sve dok nisam pokrenuo Balkan Tech Forum. Onda sam u delu predviđenom za Web resurse objavio taj kod, i prikazivao moju reklamu. Taj sajt je davno prestao sa radom, ali pregledajući njegovu statistiku (oko 2.000 poseta mesečno) uvideo sam da je najčešće korištena reč prilikom pretrage korisnika koji dolaze na sajt upravo vezan za kod “Devojka dana”. Iz tog razloga sam odlučio da objavim taj kod i neke njegove varijacije tokom vremena.
Prvobitni kod je izgledao ovako. Naravno reklama je izbačena. Kao što vidite radi se o JavaScript fajlu i možete ga editovati u Notepad-u. JavaScript je Client Side programski jezik, dok je PHP Server Side. Dakle, prednost ovog skripta je da se izvršava unutar web čitača, odnosno na korisnikovom računaru i nije potreban host koji podržava PHP. Međutim kao što ima prednosti, tako ima i mane.
Da prethodno objasnim kako kod funkcioniše. Funkcija sa početka skripta proverava koji je datum, zatim je za svaki dan u mesecu generisna druga poruka, koja je u stvari slika i link do željene stranice. Na kraju se u zavisnosti od datuma ispisuje odgovarajuća poruka. Kao što ste već verovatno zaključili skript vrti iste slike svaki mesec. Problemi koji nastaju su: Skript je vidljiv korisnicima, te oni imaju pristup svim slikama, prikazana slika će zavisiti od datuma na korisnikovom računaru, korisnik je zabranio JS u svom browseru itd.
Ako pogledate kod pažljivo, zapravo dovoljno je da pogledate samo jednu liniju
msg[1] = “<a href=http://www.balkan-tech.com><img src=http://www.balkan-tech.com/add/tetadana/1.jpg></a>”;
Vidite da je slika linkovana prema www.balkan-tech.com. To je zato što sam postavio fajl tačno onakav kakav jeste, a to je i dobar primer. Zašto je potrebno da linkujemo sliku? Pa i nije potrebno ali može biti i više nego korisno. Većina vlasnika sajtova hoće da postavi malu sliku na sajt, a da se klikom na nju otvara veća. Dakle, potrebno je imati dva JS fajla, jedan koji će generisati malu sliku i koji će se nalaziti na sajtu i jedan koji će pozivati veliku sliku ali tek posle klika na malu. Naravno, u tom slučaju je potrebno napraviti dva seta slika, set malih i set velikih i unutar obadva JS fajla upisati odgovarajuće putanje. U fajlovima pazite da za odgovarajući datum ne izmešate male i velike slike. Možete ih smestiti i u različite direktorijume.
Sve je to u redu, ali ako vam ne objasnim kako da pozovete fajl, ništa od svog ovog pisanja. Bar to je jednostavno. Na stranicu gde želite da se prikazuje slika ubacite sledeći kod:
<!-- Pocetak teta skripta -->
<script LANGUAGE="JavaScript" src="http://www.balkan-tech.com/add/tetadana/tetadana.js">
</script>
<!-- Kraj teta skripta -->
Izmenite putanju do JS fajla, odnosno fajlova ako želite prikaz i male i velike slike.
Ako nemate pristup hostu sa PHP podrškom, a ne želite tuđe reklame moraće te da se zadovoljite sa ovim, a ja ću u nastavku teksta da objasnim kako da se ovo izvede uz pomoć PHP-a i na mnogo bezbolniji način.
Potrebno je kreirati PHP fajl, recimo slika.php. Unutar tog fajla smestite sledeći kod
<?php
$month=date(n);
$day = date(j);
$name="http://www.balkan-tech.com/add/".$month."/".$day.".jpg";
$myImage = imagecreatefromjpeg($name);
header("Content-type: image/jpeg");
imagejpeg($myImage);
imagedestroy($myImage);
?>
Ovaj kod proverava koji je mesec i na osnovu toga bira odgovarajući set (direktorijum) slika, proverava koji je datum i zatim poziva odgovarajuću sliku iz seta. Potrebno je imati 12 setova, koliko je i meseci u godini i onoliko slika u setu koliko dana ima taj mesec. To izađe 366 slika, jer moramo računati i prestupne godine, puta dva jer moramo napraviti i velike i male slike. Možda za nekoga to nije veliki posao, ali ja sam kod prilagodio sebi. Napravio sam 4 seta slika, a posle 4 meseca slike se prikazuju iz početka. Ako želite nešto slično moraćete da se malo potrudite ili potražite pomoć na nekom od foruma, jer dublje u problem ne želim da ulazim. Ono što vam mogu reći je da se menja samo drugi red skripta.
Prednosti ovog skripta su: koristi se vreme na serveru, svi korisnici mogu da vide samo jednu sliku dnevno, za razliku od prvog primera korisnici nemaju podatke o tačnoj lokaciji slike, fajl se poziva kao obična slika sa <img> tagom, a isto tako se i linkuje, kao obična slika…
Dao sam vam ovaj kod za vašu ličnu upotrebu i nisam vam objašnjavao kako da ubacite reklamu i date mogućnost drugima da slike prikazuju na drugim sajtovima, a samim tim i vašu reklamu. Ali ako malo razmislite, i dobro proučite primere sve vam je tu. Sve se rešava kombinacijom ova dva fajla. Umesto 31 reda u prvom primeru napravite jedan red koji će pozivati fajl iz drugog primera. Biće to neka kombinacija PHP+JS. Ako to ne možete savladati onda ima još dosta da učite i nemoje se zamarati da mi postavljate pitanja jer vam neću odgovoriti, Sve sam vam rekao samo se malo potrudite i mućnite glavom.
Ako baš ništa ne razumete onda jednostavno uzmite sledeći kod, postavite ga na vaš sajt i pomirite se sa činjenicom da ne možete da uklonite reklamu.
<!-- Pocetak teta skripta -->
<script LANGUAGE="JavaScript" src="http://www.balkan-tech.com/add/tetadana/tetadana.js">
</script>
<!-- Kraj teta skripta -->
Posted in Web razvoj