Interval.cz    Grafika.cz    DeveloperDaily.cz    Host.sk    PHP.sk 

  Strßnky v∞novanΘ tvorb∞ WWW a grafice
 
Tato strßnka b∞₧φ na za°φzenφch spoleΦnosti Profinet.sk, a.s., provozovatele sφt∞ Prof-i-NeT v rßmci projektu host.sk
Moje stranky
   Uvodnφ strßnka
   3D modelovßnφ
   3D galerie
   VRML
   Flash
   PHP
   PHP skripty
   Slovnφk pojm∙
   SMS brßna
   O mojφ osob∞

3D galerie - strojφrenstvφ

Instalace PHP
vÜe free (linux i win)
   PHP 4
   Apache server
   My SQL
   HotovΘ instalace
   Rady k instalaci
   Kam s webem

jan.chmelik@atlas.cz

Optimalizovßno
800 x 600
a lepÜφ
IE4 / NN4 a lepÜφ

Knihovna PHP skript∙ > Dynamicky generovan² kalendß°

V tΘto off-line verzi nenφ kalendß° aktußlnφ.

Univerzßlnφ kalendß°
srpnen 2001
Po ┌t St ╚t So Ne
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Kalendß° zobrazujφcφ p°ehledn∞ aktußlnφ m∞sφc v tabulce, s mo₧nostφ v²b∞ru libovolnΘho m∞sφce i roku. VÜe podle Φesk²ch zvyklostφ tzn. - pond∞lφ je prvnφ den v t²dnu, ...



Struktura skriptu
// ******************************************************************************
// *   Dynamicky generovan² kalendß°                                            *
// *   WWW      http://chweb.host.sk                                            *
// *   E-mail   jan.chmelik@atlas.cz                                            *
// ******************************************************************************
//
// Na nßsledujφcφ mφsta je mo₧no vlo₧it Φßsti k≤du dßle uvedenΘ na tΘto strßnce
//
// ╚ßst 1 - definice polφ s Φesk²mi nßzvy m∞sφc∙ a dnφ
//
// ╚ßst 4 - Φtenφ zm∞n∞n²ch dat po odeslßnφ formulß°e
//
// ╚ßst 2 - dynamicky vygenerovan² formulß° pro v²b∞r m∞sφc∙ a rok∙
//
// ╚ßst 3 - v²poΦty a vykreslenφ tabulky - se sloupci PO a₧ Ne


Nejprve k Φßsti oznaΦenΘ ╚ßst 1. Vytvo°φme si dv∞ asociativnφ pole pro pozd∞jÜφ snadnΘ zφskßnφ Φesk²ch nßzv∙ m∞sφc∙ a dn∙ v t²dnu.
Po tΘto definici asociativnφch polφ $no2month a $no2day by nap°φklad v²raz echo $no2month[5]; vypsal slovo kv∞ten.
<?
//╚┴ST 1 -------------------------------------------

//pole pro prevod cisla na nazev mesice
$no2month = Array (	1 => "leden", 
			2 => "·nor",
	 		3 => "b°ezen",
			4 => "duben",
			5 => "kv∞ten",
			6 => "Φerven",
			7 => "Φervenec",
			8 => "srpnen",
			9 => "zß°φ",
			10 => "°φjen",
			11 => "listopad",
			12 => "prosinec"
		);

		
//pole pro prevod cisla na nazev dne		
$no2day = Array	(	1 => "Po",
			2 => "┌t",
			3 => "St",
			4 => "╚t",
			5 => "Pß",
			6 => "So",
			7 => "Ne"
		);	

//KONEC ╚┴STI 1 -------------------------------------		
?>


DalÜφ Φßst skriptu tentokrßt oznaΦenß ╚ßst 2 vytvß°φ formulß°, v n∞m₧ jsou obsa₧eny 3 hlavnφ objekty. Prvnφm je rozbalovacφ menu pro v²b∞r m∞sφce (pou₧φvßme nßzvy m∞sφc∙ z d°φve nadefinovanΘho pole). Druh²m prvkem formulß°e je podobnΘ menu pro v²b∞r roku (ve skriptu je pou₧ito rozmezφ - akußlnφ rok + 3 roky zp∞t + 5 let do budoucnosti. Tφm, ₧e rozmezφ let odvozujeme od dynamickΘ hodnoty udßvajφcφ aktußlnφ rok, stßvß se tento kalendß° v₧dy aktußlnφm.
//╚┴ST 2 -------------------------------------------
//DynamickΘ generovßnφ formulß°e

<form action='kalendar.php' method='post' name='kalendar'>;

<?
//generovßnφ rozbalovacφho menu - m∞sφce
	echo "<select name='mesic' size='1'?>\n";
	for ($i=1; $i<=12; $i++)
	{
			echo "<option value='$i'";
			if ($i == $mesic) echo " selected ";
			echo "?>$no2month[$i]</option?>\n";
	}
	echo "</select?>\n";


//generovßnφ rozbalovacφho menu - rok
	echo "<select name='rok' size='1'?>\n";
	for ($i=Date("Y")-3; $i<=Date("Y")+5; $i++)
	{
			echo "<option value='$i'";
			if ($i == $rok) echo " selected ";
			echo "?>$i</option?>\n";
	}
	echo "</select?>\n";
?>

//tlacitko pro potvrzeni zm∞n
	<input type='submit' name='submit' value='zm∞nit'>
	
	</form>


//KONEC ╚┴STI 2 -------------------------------------		


Nynφ zb²vß vytvo°it tabulku a vypsat jednotlivΘ dni.
// ╚┴ST 3 - vlastnφ tabulka ------------------------------------

<TABLE BORDER="1">
  <TR>
	<TD align="center" colspan="7">
	
<?	
	//kter²m dnem v t²dnu zaΦφnß m∞sφc (0-ne,1-po,2-·t,....6-so)
	$firstday = Date("w",$firstdaytime );

//---------------------------------------------------------------
// prvnφ dv∞ °ßdky tabulky - nadpisy

	//popis kalendß°e - m∞sφc a rok
	echo $no2month [0+Date("m",$firstdaytime )]; //nazev mesice
	echo " ".$rok; //rok
	echo "</td></tr>";
	
	echo "<tr>";
	
	//°ßdka s popisem dnφ - Po ┌t St .....
	for ($i=1; $i<=7; $i++) {
		echo "<td align='center'>".$no2day[$i]."</td>\n";
	}
	echo "</tr><tr>";
	
//----------------------------------------------------------------
// v²pis jednotliv²ch dnφ do tabulky
	
	//kolik ma vynechat prazdnych policek
	$mezer = $firstday;	
	
	//pokud je prvni den v m∞sφci ned∞le hodφ to nulu
	//ale u nßs je to 7. den v t²dnu
	if ($firstday==0) 
			$mezer=7;
			
	// udela prazna policka	
	for ($i=1; $i < $mezer ; $i++) {
		echo "<td> </td>\n"; 
	}
	
	// projede cel² m∞sφc - vypφÜe dni 1 a₧ (28,29,30,31)
	for ($i=1; $i<=40; $i++) {
		$eachday = $firstdaytime + ($i-1)*86400;
		
		//jeste jsme v tomto m∞sφci ?
		//pokud ano vypise do policka datum
		if ($i == Date("j",$firstdaytime+($i-1)*86400)) {
			
			echo "<td align='center'>$i</td>\n";
		
		}
		
		else {	
		  // pokud jsme u datumu, kter² pat°φ
		  // do dalÜφho m∞sφce	-> konec
		  echo "<td> </td>\n";
		  if (Date("w",$eachday) == 0) 
		    break; //pokud je uz na konci
			//mesice i radky tak konci
		}
		
		//pokud jsme na nedeli tak zacneme dalsi radek
		if (Date("w",$eachday) == 0)
			echo "</tr><tr BGCOLOR='Wheat'>\n";
	}
	
?>	

  </tr>
</table>

// ╚┴ST 3 - konec -------------------------------------------



Aby se promφtly zm∞ny zadanΘ ve formulß°i p°φmo do kalendß°e musφ skript p°ijφmat data zaslanß tφmto formulß°em. K tomu slou₧φ nßsledujφcφ Φßst k≤du. Pokud nejsou zaslanß ₧ßdnß data (nap°. vstoupφme poprvΘ), skript si doplnφ do prom∞nn²ch aktußlnφ Φas. Tφm dostaneme kalendß° na aktußlnφ m∞sφc, nebo pokud jsou z formulß°e zaslanß n∞jakß data, pak v²poΦet kalendß°e provedeme s t∞mito hodnotami.
<?
//╚┴ST 4 -------------------------------------------

if (!IsSet($mesic)) {
  $mesic=0+Date("m");
  $rok=Date("Y");
  $month_you_want=Time();
}
else {
  $month_you_want=0+Date("U", MkTime(0,0,0,$mesic,Date("j"),$rok));
  //v sekundach po 1970
}
	
//KONEC ╚┴STI 4 -------------------------------------		
?>



adresa strßnek : chweb.host.sk
datum poslednφ aktualizace : 21.srpen 2001
Software
  qr.cz
  slunecnice.cz
  download.com

╚eskΘ Portßly
  seznam.cz
  atlas.cz
  redbox.cz
  centrum.cz
  quick.cz

Cizφ portßly
  altavista.com
  yahoo.com
  lycos.com
  excite.com
  google.com

Hardware
  rafs.cz
  pctuning.cz
  svethardware.cz

Ostatnφ
  jφzdnφ °ßdy
  novinky.cz
  fudge.cz
  funny.cz
  flashfun.cz