Másoljuk le az "index9.php" fájlt "indexA.php", a "main9.css" fájlt "mainA.css", valamint a "menu9.inc" fájlt "menuA.inc" néven és javítsuk át a rá való hivatkozásokat!
Szúrjuk be ezt a sort az "indexA.php" fájl tetejére az "include('incl/calendar.php');" alá:
include('incl/nevnap.php');
A "nevnap.php" fájlban a legfontosabb függvény így néz ki:
function kivalaszt($ev,$ho,$np) { switch ($ho) { case 1: $nevek = array('','ÚJÉV,Fruzsina','Ábel','Genovéva,Benjámin','Titusz,Leona','Simon','Boldizsár','Attila,Ramóna','Gyöngyvér','Marcell','Melánia','Á case 2: if ( $ev==2020 ) { $nevek = array('','Ignác','Karolina,Aida','Balázs','Ráhel,Csenge','Ágota,Ingrid','Dorottya,Dóra','Tódor,Rómeó','Aranka','Abigél,Alex','Elvira','Bertold', ... ,'Szökőnap', ... ); break; } else { $nevek = array('','Ignác','Karolina,Aida','Balázs','Ráhel,Csenge','Ágota,Ingrid','Dorottya,Dóra','Tódor,Rómeó','Aranka','Abigél,Alex','Elvira','Bertold ... ); break; } case 3: $nevek = array('','Albin','Lujza','Kornélia','Kázmér','Adorján,Adrián','Leonóra,Inez','Tamás','NEMZETKÖZI_NŐNAP,Zoltán','Franciska,Fanni','Ildikó' case 4: $nevek = array('','Hugó','Áron','Buda,Richárd','Izidor','Vince','Vilmos,Bíborka','Herman','Dénes','Erhard','Zsolt','Leó,Szaniszló','Gyula','Ida',' ... case 12: $nevek = array('','Elza','Melinda,Vivien','Ferenc,Olívia','Barbara,Borbála','Vilma', 'Miklós','Ambrus', 'Mária','Natália', 'Judit','Árpád','Gabrie } return $nevek[$np]; }
Ezt a függvényt három paraméterrel hívjuk meg, az aktuális adatokkal. Ezek alapján dől/dőlnek el a megfelelő névnap illetve névnapok. A "switch" egy többirányú elágazás (kétirányú az if ... else), amely a paraméterként kapott "$ho" értékétől függő "case" ágra fut rá. Pl. ha a $ho=3 és $np=5, a névnapok 'Adorján,Adrián', ha $ev=2017, $ho=2 és $np=1, a névnap 'Ignác' (az "else" ágon), de 2020-ban az "if" ágra futva az egyik napon (most nem tudom hányadik!) a névnap 'Szökőnap' is lehet. Figyeljük meg, hogy mindegyik "case" ág "break;"-re végződik, emiatt ugrik majd ki a többirányú elágazásból.
Csomagoljuk ki (leckeA.zip), s másoljuk a helyére a "nevnap.php" fájl!
A "nevnapok($ev,$ho,$np)" függvény az aktuális dátumon kívül kezeli a rákövetkező két napot is, a részletekbe ne menjünk bele.
function nevnapok($ev,$ho,$np) { $ev = $ev+0; $ho = $ho+0; $np = $np+0; // aktuális nap $knevek = kivalaszt($ev,$ho,$np); $txt0 = szetbont($knevek); $np = $np+1; $dat = localtime ( mktime (0,0,0,$ho,$np,$ev)); // következő nap ... $text = "\n<div class='nnap'>\n"; $text .= "<p>$txt0 napja van ma</p>\n"; $text .= "<p>$txt1 napja lesz holnap</p>\n"; $text .= "<p>$txt2 napja lesz holnapután</p>\n"; $text .= "<p>Gratulálunk a névnaposoknak!</p>\n</div>\n"; return "$text";
Felhasználjuk a két általános tag-et - a "div" és "span" tag-eket - a névnapok formázására.
A "$text" egy szöveges/string változó. Benne rakosgatjuk/ragasztjuk össze (.=) a kiírandó bekezdéseket. A használt "\n-sortörés" karakterek csak arra szolgálnak, hogy a forrásprogramban (Ctrl+U) ne ragadjanak egybe a bekezdések.
A "return "$text";" sor gondoskodik arról, hogy átadja a "$text" szöveget a hívó főprogramnak.
Tegyük a "<h3>Névnapok</h3>" alá a következő PHP modult:
<?php echo nevnapok($aev,$aho,$anp); ?>
Ezután a "Névnapok" címsor alatt remélhetőleg megjelennek az aktuális névnapok.
Illesszük a "mainA.css" végére a következő stílusokat!
aside .nnap p { padding-left:10px; font-size:80%; } aside .nnap p span { color:DarkSeaGreen; } aside .nnap p span:hover { color:DarkGreen; }