Početna

   Video tutorijali

   HTML

   CSS

   JavaScript

   SMIL

   Windows XP

   Mreže

   XML i XSL

   Ostalo



Zapamti me
  Lozinka       Registracija
   O Svemu

Apartmani Djurovic

MrdniSe

MrdniSe

Automatsko generiranje kalendara


Većina portala ima na svojim stranicama prikazan kalendar. Generiranje kalendara nije trivijalno i treba se malo potruditi oko njega. U sljedećem kodu prikazat ćemo kako to napraviti, a da se ne zapetljamo puno. Evo nekih problema pri generiranju kalendara:


  • Određivanje broja dana u mjesecu
  • Obilježavanje današnjeg datuma
  • Odrediti prijestupnu godinu
  • Prilagoditi broj dana prijestupnoj godini
  • Generiranje imena mjeseca
  • Dodavanje linka na određeni dan



Kada riješimo sve probleme koje smo gore naveli imamo ovaj kod.


<script LANGUAGE="JavaScript"> imenamjeseci = new Array( "Sijecanj", "Veljaca", "Ozujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"); brojdana = new Array(12); brojdana[0]=31; brojdana[1]=28; brojdana[2]=31; brojdana[3]=30; brojdana[4]=31; brojdana[5]=30; brojdana[6]=31; brojdana[7]=31; brojdana[8]=30; brojdana[9]=31; brojdana[10]=30; brojdana[11]=31; danasnjidatum=new Date(); dan=danasnjidatum.getDay(); mjesec=danasnjidatum.getMonth(); datum=danasnjidatum.getDate(); godina=danasnjidatum.getYear(); godina = godina % 100; godina = ((godina < 50) ? (2000 + godina) : (1900 + godina)); if (((godina % 4 == 0) && !(godina % 100 == 0)) ||(godina % 400 == 0)) brojdana[1]++; prazno = datum; while (prazno > 7) prazno-=7; prazno = dan - prazno; if (prazno < 0) prazno+=6; document.write("<table border=2 bgcolor=white "); document.write("bordercolor=black><font color=black>"); document.write("<tr><td colspan=7><center><strong>" + imenamjeseci[mjesec] + " " + godina + "</strong></center></font></td></tr>"); document.write("<tr>"); document.write("<td align=center>P</td>"); document.write("<td align=center>U</td>"); document.write("<td align=center>S</td>"); document.write("<td align=center>C</td>"); document.write("<td align=center>P</td>"); document.write("<td align=center>S</td>"); document.write("<td align=center>N</td>"); document.write("</tr>"); document.write("<tr>"); for (s=0;s<prazno;s++) { document.write("<td> </td>"); } count=1; while (count <= brojdana[mjesec]) { for (b =prazno;b<7;b++) { document.write("<td>"); if (count==datum) { document.write("<font color='FF0000'><strong>"); } if (count <= brojdana[mjesec]) { document.write(count); } else { document.write(" "); } if (count==datum) { document.write("</strong></font>"); } document.write("</td>"); count++; } document.write("</tr>"); document.write("<tr>"); prazno=0; } document.write("</table></p>"); </script>



Pogledajmo šta smo napravili u kodu. Prvo smo zapisali u jedno polje imena svih mjeseci u godini. Zatim smo stvorili još jedno polje u koje smo upisali broj dana za svaki mjesec. Nakon ovoga izdvojimo današnji dan, mjesec i godinu. Godinu usporedimo sa pravilom za prijestupnu godinu i ako je trenutna godina prijestupna povećamo broj dana u drugom mjesecu za jedan.


Nakon provjere ide ispis kalendara u tablici. Ovdje nam se javlja problem kada mjesec ne počinje prvog dana u tjednu. Ako mjesec počinje u petak onda moramo ostaviti četiri dana u tjednu prazna, bez brojeva. Tek nakon toga idemo zapisivati dane u mjesecu rednim brojevima. Ovo isto vrijedi i za kraj mjeseca kada mjesec ne završava u nedjelju.


Dodavanje linka bi mogli riješiti direktno u Java Scriptu, ali prema iskustvu (čitaj praksi) ovdje je najbolje primijeniti PHP. Datum obično vežemo za neki članak, vic, sliku dana, itd. Sve se ovo dobije upitima na bazu te se link automatski generira prema potrebi. Dobiveni link i njegov datum jednostavno u PHP-u usporedimo sa danom koji trenutno ispisujemo i ako se slažu umjesto samo broja dana, npr. 24, ispišemo cijeli link
<a href="http://www.osvemu.com/index.php">24<a>.


Za kraj dodajte još CSS stil tablici da se prilagodi vašoj web stranici i kalendar je gotov.



Ako ste naučili nešto novo napišite jedan komentar podrške.
Hvala!
Autor: VedranDatum objave: 25.03.2008

KOMENTARI:

Nema još ni jednog komentara.

Samo registrirani korisnici mogu komentirati.

copyright (c) 2008/09 osvemu.com | besplatnitutorijali.com  |   Webmaster   |   Podrška  |   Pravila korištenja