Ahojte mám kalendár napísaný v PHP, no potrebujem zmeniť funkciu, aby som si na každý deň v týždni naprogramoval odkaz na nejakú stránku, na ktorú potrebujem... Poraďte prosim. je to súrne..
Tu je zdrojak...
Kód:
<?
define (YEAR_MIN, 1980);
define (YEAR_MAX, 2020);
define (YEAR_EXTENT, 3);
// hodnoty z formulára, prevedieme ich na time formát
if (isset($month) && isset($year))
$time = mktime (0, 0, 0, $month, 1, $year);
// kontrola začiatku a konca roka
if ($time < mktime (0, 0, 0, 1, 1, YEAR_MIN) || $time > mktime (0, 0, 0, 12, 31, YEAR_MAX))
$time = time ();
?>
<html>
<head>
<title>Kalendár v PHP</title>
<style type="text/css">
body {
font-family: "TIMES NEW ROMAN", "HELVETICA CE","ARIAL","HELVETICA";
font-size: 18px;
text-align: center;
}
.cell {
width: 28px;
height: 28px;
font-family: "ARIAL CE", "HELVETICA CE","ARIAL","HELVETICA";
font-size: 12px;
color: #000;
}
</style>
</head>
<body>
<?
class Ccolor {
var $wday_txt = "#bbbbdd";
var $wend_txt = "#ddbbbb";
var $wday = "#ccccee";
var $wend = "#eecccc";
var $wday_noact = "#9090a6";
var $wend_noact = "#a69090";
var $today = "#0000ff";
}
// objekt
$color = new Ccolor ();
class Cdate {
var $day;
var $month;
var $year;
function Cdate ($time) {
$this->day = date ("j", $time);
$this->month = date ("n", $time);
$this->year = date ("Y", $time);
}
}
// objekt
$date = isset ( $time ) ? new Cdate ( $time ) : new Cdate ( time () );
// názvy mesiacov roka - indexované od 1
$m = array (1 => "Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December");
// názvy dní týždňa
$d = array ("Po", "Ut", "St", "Št", "Pi", "So", "Ne");
##############################################################################
// formulár pre výber mesiaca a roka
echo "<form action='index.php'>";
echo "<select name='month'>";
for ($i=1 ; $i<=count($m) ; $i++)
echo ($i == $date->month) ? "<option value='$i' selected>$m[$i]" : "<option value='$i'>$m[$i]";
echo "</select>";
echo "<select name='year'>";
$i = ($date->year-YEAR_EXTENT < YEAR_MIN) ? YEAR_MIN : $date->year-YEAR_EXTENT;
for ( ; $i<=$date->year+YEAR_EXTENT && $i<=YEAR_MAX; $i++)
echo ($i == $date->year) ? "<option value='$i' selected>$i" : "<option value='$i'>$i";
echo "</select>";
echo "<input type='submit' value='Ok'>";
echo "</form>";
###############################################################################
// predchádzajúci a nasledujúci mesiac
$time = mktime (0, 0, 0, $date->month - 1, $date->day, $date->year);
echo "<a href='index.php?time=$time'><<</a>";
echo "<b> ".$m[$date->month]." $date->year </b>";
$time = mktime (0, 0, 0, $date->month + 1, $date->day, $date->year);
echo "<a href='index.php?time=$time'>>></a>";
###############################################################################
// výpis dní v týžni
echo "<table border='0' cellspacing='1' cellpadding='0'>";
echo "<tr align='center' valign='middle'>";
for ($i=0 ; $i<count($d) ; $i++) {
$bgcolor = ($i < 5) ? $color->wday_txt : $color->wend_txt;
echo "<td bgcolor='$bgcolor' class='cell'><b>".$d[$i]."</b></td>";
}
echo "</tr>";
// prvý deň kalendára (pondelok)
// hodnota 0 namiesto parametra $day v mktime vráti posledný deň predchádzajúceho mesiaca
// date ("w") vráti [0-6] (Ne,Po,Ut,..)
$date->day = 1 - date ("w", mktime (0, 0, 0, $date->month, 0, $date->year));
$act_month_end = false;
for (;;) {
// deň za dňom
$t = mktime (0, 0, 0, $date->month, $date->day++ , $date->year);
// číslo mesiaca [1-12]
$date_n = date ("n", $t);
// číslo týždňa [0-6] (Ne,Po,Ut,..)
$date_w = date ("w", $t);
if ($date_n == $date->month)
$act_month_end = true;
// prvý pondelok v ďalšom mesiaci - ukonči riadok - koniec cyklu
if ($act_month_end == true && $date_n != $date->month && $date_w == 1) {
echo "</tr>";
break;
}
// pondelok - nový riadok
else if ($date_w == 1)
echo "<tr align='center'>";
// predchádzajúci, alebo nasledujúci mesiac
if ($date_n != $date->month)
$bgcolor = ($date_w==0 || $date_w==6) ? $color->wend_noact : $color->wday_noact;
// aktuálny mesiac
else
$bgcolor = ($date_w==0 || $date_w==6) ? $color->wend : $color->wday;
if (date("dmY",$t) == date("dmY"))
$bgcolor = $color->today;
$title = date ("j.n. Y", $t);
echo "<td title='$title' bgcolor='$bgcolor' class='cell'><a href='go.php?time=$t'>".date ("d", $t)."</a></td>";
// nedeľa - koniec riadku
if ($date_w == 0)
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>