Subversion Repositories Applications.gtt

Rev

Rev 61 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10 jpm 1
<?php
2
/**
3
* Description: a complete year with numeric week numbers
4
*/
5
function getmicrotime(){
6
    list($usec, $sec) = explode(" ",microtime());
7
    return ((float)$usec + (float)$sec);
8
}
9
$start = getmicrotime();
10
 
11
if (!@include 'Calendar/Calendar.php') {
12
    define('CALENDAR_ROOT', '../../');
13
}
14
 
15
require_once CALENDAR_ROOT.'Year.php';
16
require_once CALENDAR_ROOT.'Month/Weeks.php';
17
 
18
define ('CALENDAR_MONTH_STATE',CALENDAR_USE_MONTH_WEEKS);
19
 
20
if (!isset($_GET['year'])) $_GET['year'] = date('Y');
21
 
22
$week_types = array(
23
    'n_in_year',
24
    'n_in_month',
25
);
26
 
27
if (!isset($_GET['week_type']) || !in_array($_GET['week_type'],$week_types) ) {
28
    $_GET['week_type'] = 'n_in_year';
29
}
30
 
31
$Year = new Calendar_Year($_GET['year']);
32
 
33
$Year->build();
34
?>
35
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
36
<html>
37
<head>
38
<title> <?php echo $Year->thisYear(); ?> </title>
39
<style type="text/css">
40
body {
41
    font-family: Georgia, serif;
42
}
43
caption.year {
44
    font-weight: bold;
45
    font-size: 120%;
46
    font-color: navy;
47
}
48
caption.month {
49
    font-size: 110%;
50
    font-color: navy;
51
}
52
table.month {
53
    border: thin groove #800080
54
}
55
tr {
56
    vertical-align: top;
57
}
58
th, td {
59
    text-align: right;
60
    font-size: 70%;
61
}
62
#prev {
63
    float: left;
64
    font-size: 70%;
65
}
66
#next {
67
    float: right;
68
    font-size: 70%;
69
}
70
#week_type {
71
    float: none;
72
    font-size: 70%;
73
}
74
.weekNumbers {
75
    background-color: #e5e5f5;
76
    padding-right: 3pt;
77
}
78
</style>
79
</head>
80
<body>
81
<table>
82
<caption class="year">
83
<?php echo $Year->thisYear(); ?>
84
<div id="next">
85
<a href="?year=<?php echo $Year->nextYear(); ?>&week_type=<?php echo $_GET['week_type']; ?>">>></a>
86
</div>
87
<div id="prev">
88
<a href="?year=<?php echo $Year->prevYear(); ?>&week_type=<?php echo $_GET['week_type']; ?>"><<</a>
89
</div>
90
<div id="week_type">
91
<a href="?year=<?php echo $Year->thisYear(); ?>&week_type=n_in_year">Weeks by Year</a> :
92
<a href="?year=<?php echo $Year->thisYear(); ?>&week_type=n_in_month">Weeks by Month</a>
93
</div>
94
</caption>
95
<?php
96
$i = 0;
97
while ($Month = $Year->fetch()) {
98
 
99
    switch ($i) {
100
        case 0:
101
            echo "<tr>\n";
102
            break;
103
        case 3:
104
        case 6:
105
        case 9:
106
            echo "</tr>\n<tr>\n";
107
           break;
108
        case 12:
109
            echo "</tr>\n";
110
            break;
111
    }
112
 
113
    echo "<td>\n<table class=\"month\">\n";
114
    echo '<caption class="month">'.date('F', $Month->thisMonth(TRUE)).'</caption>';
115
    echo '<colgroup><col class="weekNumbers"><col span="7"></colgroup>'."\n";
116
    echo "<tr>\n<th>Week</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th><th>S</th>\n</tr>";
117
    $Month->build();
118
    while ($Week = $Month->fetch()) {
119
        echo "<tr>\n";
120
        echo '<td>'.$Week->thisWeek($_GET['week_type'])."</td>\n";
121
        $Week->build();
122
 
123
        while ($Day = $Week->fetch()) {
124
            if ($Day->isEmpty()) {
125
                echo "<td>&nbsp;</td>\n";
126
            } else {
127
                echo "<td>".$Day->thisDay()."</td>\n";
128
            }
129
        }
130
    }
131
    echo "</table>\n</td>\n";
132
 
133
    $i++;
134
}
135
?>
136
</table>
137
<p>Took: <?php echo ((getmicrotime()-$start)); ?></p>
138
</body>
139
</html>