Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP kalenteri ja viikon eka päivä

juuba [17.04.2006 21:48:24]

#

Eli löytyi tällainen koodin pätkä, ainoa ongelma on että viikko alkaa sunnnuntaista. Osaisiko joku Guru kertoa miten sais Maanantain ekaksi päiväksi.

<?php
/************************************************************************************
My Calendar - Created by Andy Bowers | http://www.halfadot.com | andy@halfadot.com
Version 1.0 - Released 2004-01-24
Version 2.0 - Released 2004-10-23 - 'month at a glance' added
Version 2.1 -  Released 2004-12-23 - 'today' is highlighted in calendar display
Version 2.2 -  Released 2005-01-19 - 'today' show-month.php error corrected

You are free to use this script as long as the credits and notes are not removed.  If
you intend to distribute this script, make sure to include all of the files from the
original zip package.  Your use of this script is subject to the terms of the license
included in the zipped package as license.txt, and constitutes acceptance thereto.

************************************************************************************/

// there is NO NEED to edit ANY of this code

$ev_dat = array();
for ($i=0;$i<32;$i++) {
    $ev_dat[$i]=0;
}

$now = date("Y-m-d", time());
list($ty, $tm, $td) = explode('-',$now); // ty=thisyear, etc. used for highlighting 'today'

include("cal_parms.php"); // assorted configuration variables
include($dat_names); // retrieved from cal_parms.php as a 'language' file

if (!isset($_GET['m'])) {
    $m = date("m",mktime());
} else {
    $m = $_GET['m'];
}
if (!isset($_GET['y'])) {
    $y = date("Y",mktime());
} else {
    $y = $_GET['y'];
}

/*== get what weekday the first is on ==*/
$tmpd = getdate(mktime(0,0,0,$m,1,$y));
$month = $tmpd["month"];
$firstwday= $tmpd["wday"];
$lastday = mk_getLastDayofMonth($m,$y);

/*== get the last day of the month ==*/
function mk_getLastDayofMonth($mon,$year)
{
    for ($tday=28; $tday <= 31; $tday++)
    {
        $tdate = getdate(mktime(0,0,0,$mon,$tday,$year));
        if ($tdate["mon"] != $mon)
        {
            break;
        }
    }
    $tday--;
    return $tday;
}

// compute range of dates for this month to match dates in database in the format yyyy-mm-dd
if (strlen($m)<2) {
    $q="0";
    $q.=$m;
}
else {
    $q = $m;
}
$dats_beg = $y. "-". $q. "-01";
$dats_en = $y. "-". $q. "-". $lastday;

// open db conn and select all records where date is between $dats_beg and $dats_en
include("cal_db_conn.php");
mysql_connect($db_host, $db_login, $db_pass) or die ("Can't connect!");
mysql_select_db($db_name) or die ("Can't open database!");
$query = "SELECT * FROM $db_table WHERE (ev_dat>='$dats_beg') AND (ev_dat<='$dats_en') ";

$result = mysql_db_query($db_name, $query);
// any matches?
if ($result)
{
    // handle the matches and pass relevant info to arrays
    while ($myrow = mysql_fetch_array($result))
    {
        $found = $myrow['ev_dat'];
        $pieces = explode("-", $found);
        $dd = intval($pieces[2]);
        $ev_dat[$dd] = $myrow['id'];
    }
}
?>
<table cellpadding="1" cellspacing="1" border="0" bgcolor="#<? echo $bg_edge; ?>">
<tr><td colspan="7" bgcolor="#<? echo $bg_top; ?>">
<table cellpadding="1" cellspacing="1" border="0" width="100%">
<tr bgcolor="#<? echo $bg_top; ?>"><th width="20" style="<?php echo $hcell; ?>"><a href="<? echo $_SERVER['PHP_SELF']; ?>?m=<?=(($m-1)<1) ? 12 : $m-1 ?>&amp;y=<?=(($m-1)<1) ? $y-1 : $y ?>"><img src='calendar/images/prev.gif' height='18' width='18' alt='' border='0' /></a></th>
<th style="<?php echo $hcell; ?>">
<?php
echo  "<a href='calendar/show-month.php?mon=". $m. "&amp;yr=". $y. "'>";
echo "<span style='text-decoration:none'>". $mo[intval($m)]. " ". $y. "</span></a>";
?>
</th>
<th width="20" style="<? echo $hcell; ?>"><a href="<? echo $_SERVER['PHP_SELF']; ?>?m=<?=(($m+1)>12) ? 1 : $m+1 ?>&amp;y=<?=(($m+1)>12) ? $y+1 : $y ?>"><img src='calendar/images/next.gif' height='18' width='18' border='0' alt='' /></a></th>
</tr>
</table>
</td></tr>
<tr bgcolor="#<? echo $bg_top; ?>">
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[1]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[2]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[3]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[4]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[5]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[6]; ?></th>
<th width="20" style="<?php echo $hcell; ?>"><? echo $da[7]; ?></th>
</tr>

<?
$d = 1;
$wday = $firstwday;
$firstweek = true;
/*== loop through all the days of the month ==*/
while ( $d <= $lastday)
{
    /*== set up blank days for first week ==*/
    if ($firstweek)
    {
        if ($wday!=0) {
            echo "<tr bgcolor='#". $bg_tabl. "'>\n";
            for ($i=1; $i<=$firstwday; $i++) {
                 echo "<td style='". $tcell. "' bgcolor='#". $bg_fill. "'>&nbsp;</td>\n";
            }
        }
        /*== Sunday start week with <tr> ==*/
        else {
            echo "<tr bgcolor='#". $bg_tabl. "'>\n";
        }
        $firstweek = false;
    }
    /*== check for event ==*/
    echo "<td style='". $tcell. "' ";
    // is this day 'today' AND there's no event today
    if (($ty==$y) && ($tm==$m) && ($td == $d) && (!$ev_dat[$d])) {
        echo "bgcolor='#". $bg_now. "'>". $d;
    }
    elseif ($ev_dat[$d]) {
        // get what's happening that day and use as 'mouseOver' for the link
        $query = "SELECT * FROM $db_table WHERE id=$ev_dat[$d] ";
        $result = mysql_query($query);
        $ev = mysql_fetch_array($result);
        $titl = $ev['ev_title'];
        echo "bgcolor='#". $bg_act. "'>";
        $url = "calendar/show.php?event=". $ev_dat[$d]. "&amp;sho=". $win_sho;
        if ($win_sho=="1") {
             echo "<a href='javascript:winy(\"". $url."\")' title=\"". $titl. "\">". $d. "</a>";
        }
        else {
            echo "<a href='". $url. "' title=\"". $titl. "\">". $d. "</a>";
        }
    }
    else {
        echo "bgcolor='#". $bg_days. "'>". $d;
    }
    echo "</td>\n";

    /*== Saturday end week with </tr> ==*/
    if ($wday==6) {
        echo "</tr>\n";
    }
    $wday++;
    $wday = $wday % 7;
    if (($wday==0) AND ($d!=$lastday)){ echo "<tr bgcolor='#". $bg_tabl. "'>\n"; }
        $d++;
    }
    // and close off the table
    if (($wday!=7) AND ($wday!=0)) {
        for ($i=$wday; $i<=6; $i++) {
            echo "<td style='". $tcell. "' bgcolor='#". $bg_fill. "'>&nbsp;</td>\n";
        }
        echo "</tr>";
    }
echo "\n</table>";
include("win_open.php");
?>

Extreme [17.04.2006 22:12:05]

#

Tuota on ennenkin väännetty:
Kokeileppa tätä

juuba [18.04.2006 16:51:57]

#

Extreme kirjoitti:

Tuota on ennenkin väännetty:
Kokeileppa tätä

?
mihin kohtaan pitäs tollanen sijottaa. Ei aukene taivas vielä.

juuba [19.04.2006 00:56:26]

#

Jo selkis:
/*== get what weekday the first is on ==*/
$tmpd = getdate(mktime(0,0,0,$m,1,$y));

tuolta kun ton 1 muuttaa $d niin jo rokkaa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta