Subversion Repositories Applications.bazar

Rev

Rev 14 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
10 ddelon 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org)
4
//
5
// Ce logiciel est un programme informatique servant à gérer du contenu et des
6
// applications web.
7
 
8
// Ce logiciel est régi par la licence CeCILL soumise au droit français et
9
// respectant les principes de diffusion des logiciels libres. Vous pouvez
10
// utiliser, modifier et/ou redistribuer ce programme sous les conditions
11
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
12
// sur le site "http://www.cecill.info".
13
 
14
// En contrepartie de l'accessibilité au code source et des droits de copie,
15
// de modification et de redistribution accordés par cette licence, il n'est
16
// offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
17
// seule une responsabilité restreinte pèse sur l'auteur du programme,  le
18
// titulaire des droits patrimoniaux et les concédants successifs.
19
 
20
// A cet égard  l'attention de l'utilisateur est attirée sur les risques
21
// associés au chargement,  à l'utilisation,  à la modification et/ou au
22
// développement et à la reproduction du logiciel par l'utilisateur étant
23
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à
24
// manipuler et qui le réserve donc à des développeurs et des professionnels
25
// avertis possédant  des  connaissances  informatiques approfondies.  Les
26
// utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
27
// logiciel à leurs besoins dans des conditions permettant d'assurer la
28
// sécurité de leurs systèmes et ou de leurs données et, plus généralement,
29
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
30
 
31
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
32
// pris connaissance de la licence CeCILL, et que vous en avez accepté les
33
// termes.
34
// ----
35
// CVS : $Id: bazar.calendrier.php,v 1.1 2005-09-30 12:34:44 ddelon Exp $
36
/**
37
* bazar_calendrier : programme affichant les evenements du bazar sous forme de Calendrier
38
*
39
*
40
*@package Bazar
41
//Auteur original :
42
*@author        David DELON <david.delon@clapas.net>
43
*@version       $Revision: 1.1 $ $Date: 2005-09-30 12:34:44 $
44
// +------------------------------------------------------------------------------------------------------+
45
*/
46
 
47
 
48
// Fonction Calendrier de Pear
49
 
50
require_once 'Calendar/Month/Weekdays.php';
51
require_once 'Calendar/Day.php';
52
require_once 'Calendar/Decorator.php';
53
 
54
 
55
// Classe Utilitaire pour Calendrier
56
 
57
class DiaryEvent extends Calendar_Decorator {
58
	var $entry;
59
	function DiaryEvent($calendar) {
60
		Calendar_Decorator::Calendar_Decorator($calendar);
61
	}
62
	function setEntry($entry) {
63
		$this->entry = $entry;
64
	}
65
	function getEntry() {
66
		return $this->entry;
67
	}
68
}
69
 
70
 
71
function afficherContenuCorps() {
72
 
73
	$url = $GLOBALS['_GEN_commun']['url'] ;
74
	$db = &$GLOBALS['_GEN_commun']['pear_db'] ;
75
	$auth = &$GLOBALS['_GEN_commun']['pear_auth'] ;
76
 
77
	if (!isset($_GET['y'])) {
78
		$_GET['y'] = date('Y');
79
		$url->addQueryString ('y', $_GET['y']);
80
	}
81
 
82
	if (!isset($_GET['m'])) {
83
		$_GET['m'] = date('m');
84
		$url->addQueryString ('m', $_GET['m']);
85
	}
86
 
87
	if (!isset($_GET['d'])) {
88
		$_GET['d'] = date('d');
89
		$url->addQueryString ('d', $_GET['d']);
90
	}
91
 
92
 
93
 
94
 
95
 
96
// Build the month
97
$month = new Calendar_Month_Weekdays($_GET['y'],$_GET['m']);
98
 
99
$curStamp=$month->getTimeStamp();
100
// Create links
101
$prevStamp = $month->prevMonth(true);
102
$prev = $_SERVER['PHP_SELF'].'?wiki='.$this->tag.'&amp;y='.date('Y',$prevStamp).'&amp;m='.date('n',$prevStamp).'&amp;d='.date('j',$prevStamp);
103
$nextStamp = $month->nextMonth(true);
104
$next = $_SERVER['PHP_SELF'].'?wiki='.$this->tag.'&amp;y='.date('Y',$nextStamp).'&amp;m='.date('n',$nextStamp).'&amp;d='.date('j',$nextStamp);
105
 
106
$fr_month=array("1"=>"Janvier","2"=>"Fevrier","3"=>"Mars","4"=>"Avril","5"=>"Mai","6"=>"Juin","7"=>"Juillet","8"=>"Aout","9"=>"Septembre","10"=>"Octobre","11"=>"Novembre","12"=>"Decembre");
107
 
108
 
109
echo "<div class=\"navi\">";
110
echo "<a href=\"".$prev."\"> &lt;&lt; </a>";
111
 
112
echo $fr_month[(date('n',$curStamp))];
113
echo "&nbsp;";
114
echo (date('Y',$curStamp));
115
 
116
echo "<a href=\"".$next."\"> &gt;&gt; </a>";
117
 
118
echo "</div>";
119
 
120
echo "<table class=\"map\">";
121
echo ( "<tr>\n" );
122
echo ( "<td>\n" );
123
 
124
// Recherche evenement de la periode selectionnée
125
 
126
$pageSelection=$this->tag.date('Y',$curStamp).date('m',$curStamp);
127
 
128
$selection = array();
129
 
130
if ($pages = $this->LoadAll("select tag, body from ".$this->config["table_prefix"]."pages where tag like '".mysql_escape_string($pageSelection)."%' and latest = 'Y' and comment_on = '' order by tag ASC, time ASC")) {
131
	$i=0;
132
	foreach ( $pages as $page ) {
133
 
134
		//
135
		// Preparation Calendrier
136
		//
137
 
138
		$Day = new Calendar_Day(date('Y',$curStamp),date('m',$curStamp), substr($page ['tag'], -2));
139
 
140
		// Create the decorator, passing it the Hour
141
		$DiaryEvent = new DiaryEvent($Day);
142
 
143
 
144
		$dayStamp = $Day->thisDay(true);
145
		$ref =
146
		$_SERVER['PHP_SELF'].'?wiki='.$this->tag.date('Y',$dayStamp).date('m',$dayStamp).date('d',$dayStamp);
147
 
148
 
149
		}
150
 
151
		$calcom="</ul>".$calcom;
152
 
153
		// Attach the payload
154
		$DiaryEvent->setEntry($calcom);
155
 
156
		// Add the decorator to the selection
157
		$selection[] = $DiaryEvent;
158
 
159
	}
160
}
161
 
162
 
163
// Affichage Calendrier
164
 
165
 
166
$month->build($selection);
167
 
168
echo ( "<tr>\n" );
169
echo ( "<td>\n" );
170
 
171
 
172
echo "<table class=\"calendar\">
173
 <tr>
174
 
175
  <th> Lundi </th>
176
  <th> Mardi </th>
177
  <th> Mercredi </th>
178
  <th> Jeudi </th>
179
  <th> Vendredi </th>
180
 
181
  <th> Samedi </th>
182
  <th> Dimanche </th>
183
 </tr>
184
 ";
185
 
186
$todayStamp=time();
187
 
188
while ( $day = $month->fetch() ) {
189
 
190
		$dayStamp = $day->thisDay(true);
191
 
192
		if ( $day->isEmpty() ) {
193
				$class = "other_month";
194
		}
195
		else {
196
			if ($todayStamp>$dayStamp) {
197
				$class="previous_month";
198
			}
199
			else {
200
				$class="current_month";
201
			}
202
		}
203
 
204
		$link =
205
		$_SERVER['PHP_SELF'].'?wiki='.$this->tag.date('Y',$dayStamp).date('m',$dayStamp).date('d',$dayStamp);
206
 
207
		// isFirst() to find start of week
208
		if ( $day->isFirst() )
209
		echo ( "<tr>\n" );
210
 
211
 
212
		echo ( "<td class=\"".$class."\"><a href=\"".$link."\">".$day->thisDay()."</a>\n" );
213
 
214
		if ( $day->isSelected() ) {
215
 
216
			echo ( "<a href=\"".$link."\">".$day->getEntry()."</a>\n" );
217
 
218
		}
219
		echo ( "</td>\n" );
220
 
221
		// isLast() to find end of week
222
		if ( $day->isLast() )
223
			echo ( "</tr>\n" );
224
}
225
 
226
echo "</table>";
227
 
228
echo ( "</td>\n" );
229
echo ( "</tr>\n" );
230
 
231
echo "</table>";
232
?>