My favorites
▼
|
Sign in
fullcalendar
ISSUE TRACKER HAS MOVED. DO NOT USE THIS (more info)
Project Home
Issues
Export to GitHub
New issue
Search
Search within:
All issues
Open issues
New issues
Issues to verify
for
Advanced search
Search tips
Subscriptions
Issue
1240
attachment: calendar.engine.php
(2.1 KB)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
function firstDate($s)
{
if (($start = strtotime($s)) < ($now = time())) # récupére le timestamp de la date saisie de début et le timestramp de la date actuelle // si
{
$factor = 60*60*24*7; # timestamp sur 1 semaine
$period = @round(($now - $start)/$factor); # interval en semaine
return date('Y-m-d H:i:s', strtotime("+$period weeks", $start));
}
} # retourne le premier jour d'une semaine définie
include("../connexion_base.php");
session_start();
// requete pour l'affichage de la tache créée suite à l'insertion
$sql = 'SELECT * FROM planning';
$sql .= ' WHERE ((start > "'. date('Y-m-d H:i:s', $_GET['start']) .'"';
$sql .= ' AND end < "'. date('Y-m-d H:i:s', $_GET['end']) .'")';
$sql .= ' OR frequency IS NOT NULL)';
if (!empty($_GET['mine']) ) {
$sql .= ' AND mail LIKE "'. $_SESSION['mail'] .'"';
} else {
$sql .= ' AND mail NOT LIKE "'. $_SESSION['mail'] .'"';
}
$req=mysql_query($sql);
// JSON Construction
$events = array();
while($res=mysql_fetch_array($req, MYSQL_ASSOC))
{
$res = (object) $res;
$i = 0;
if (!empty($res->frequency)) // si fréquence de la tache non nulle
{
$i = 10; // répéter pour 10 semaines
$res->start = firstDate($res->start); // bug? modification de la date de debut ... pb de timestamp avec fonction firstDate
}
/* Répéter un évènement en fonction de sa fréquence */
do {
$event = array(
sprintf('"id":"%s"', $res->id),
sprintf('"title":"%s"', stripslashes($res->title)),
sprintf('"animator":"%s"', stripslashes($res->animator)),
sprintf('"phone":"%s"', $res->phone),
sprintf('"start":"%s"', $res->start),
sprintf('"end":"%s"', $res->end),
sprintf('"frequency":"%s"', $res->frequency),
sprintf('"mine":"%s"', $_GET['mine'])
);
$events[] = sprintf('{%s}', implode(',', $event));
$res->start = date('Y-m-d H:i:s', strtotime($res->frequency, strtotime($res->start))); # start + frequency
$res->end = date('Y-m-d H:i:s', strtotime($res->frequency, strtotime($res->end))); # end + frequency
} while (--$i > 0);
}
mysql_close();
// Send events
echo utf8_encode(sprintf('[%s]', implode(',', $events)));
Powered by
Google Project Hosting