1 | <?php |
---|
2 | /** |
---|
3 | * Fichier de filtres communs au plugin Agenda et PIM_agenda |
---|
4 | * |
---|
5 | */ |
---|
6 | |
---|
7 | function Agenda_memo_full($date_deb=0, $date_fin=0 , $titre='', $descriptif='', $lieu='', $url='', $cal='') |
---|
8 | { |
---|
9 | static $agenda = array(); |
---|
10 | if (!$date_deb) { |
---|
11 | $res = $agenda; |
---|
12 | $agenda=array(); |
---|
13 | return $res; |
---|
14 | } |
---|
15 | $url=str_replace("&","&",$url); |
---|
16 | |
---|
17 | $idatedeb = date_ical($date_deb); |
---|
18 | $idatefin = date_ical($date_fin); |
---|
19 | $cal = trim($cal); // func_get_args (filtre alterner) rajoute \n !!!! |
---|
20 | $startday1=explode(' ',$date_deb); |
---|
21 | $startday1=$startday1['0'].' 00:00:00'; |
---|
22 | $ts_startday1=strtotime($startday1); |
---|
23 | $ts_date_fin=strtotime($date_fin); |
---|
24 | $maxdays=365; |
---|
25 | while (($ts_startday1<$ts_date_fin)&&($maxdays-->0)) |
---|
26 | { |
---|
27 | $day=date('Y-m-d H:i:s',$ts_startday1); |
---|
28 | $agenda[$cal][(date_anneemoisjour($day))][] = array( |
---|
29 | 'CATEGORIES' => $cal, |
---|
30 | 'DTSTART' => $idatedeb, |
---|
31 | 'DTEND' => $idatefin, |
---|
32 | 'DESCRIPTION' => $descriptif, |
---|
33 | 'SUMMARY' => $titre, |
---|
34 | 'LOCATION' => $lieu, |
---|
35 | 'URL' => $url); |
---|
36 | $ts_startday1 += 24*3600; // le jour suivant |
---|
37 | } |
---|
38 | |
---|
39 | // toujours retourner vide pour qu'il ne se passe rien |
---|
40 | return ""; |
---|
41 | } |
---|
42 | |
---|
43 | function Agenda_memo_evt_full($date_deb=0, $date_fin=0 , $titre='', $descriptif='', $lieu='', $url='', $cal='') |
---|
44 | { |
---|
45 | static $evenements = array(); |
---|
46 | if (!$date_deb) return $evenements; |
---|
47 | $url=str_replace("&","&",$url); |
---|
48 | |
---|
49 | $idatedeb = date_ical(reset(explode(" ",$date_deb))." 00:00:00"); |
---|
50 | $idatefin = date_ical(reset(explode(" ",$date_fin))." 00:00:00"); |
---|
51 | $cal = trim($cal); // func_get_args (filtre alterner) rajoute \n !!!! |
---|
52 | $startday1=explode(' ',$date_deb); |
---|
53 | $startday1=$startday1['0'].' 00:00:00'; |
---|
54 | $ts_startday1=strtotime($startday1); |
---|
55 | $ts_date_fin=strtotime($date_fin); |
---|
56 | $maxdays=365; |
---|
57 | while (($ts_startday1<$ts_date_fin)&&($maxdays-->0)) |
---|
58 | { |
---|
59 | $day=date('Y-m-d H:i:s',$ts_startday1); |
---|
60 | $evenements[$cal][(date_anneemoisjour($day))][] = array( |
---|
61 | 'CATEGORIES' => $cal, |
---|
62 | 'DTSTART' => $idatedeb, |
---|
63 | 'DTEND' => $idatefin, |
---|
64 | 'DESCRIPTION' => $descriptif, |
---|
65 | 'SUMMARY' => $titre, |
---|
66 | 'LOCATION' => $lieu, |
---|
67 | 'URL' => $url); |
---|
68 | $ts_startday1 += 24*3600; // le jour suivant |
---|
69 | } |
---|
70 | |
---|
71 | // toujours retourner vide pour qu'il ne se passe rien |
---|
72 | return ""; |
---|
73 | } |
---|
74 | |
---|
75 | function Agenda_affiche_full($i) |
---|
76 | { |
---|
77 | $args = func_get_args(); |
---|
78 | $nb = array_shift($args); // nombre d'evenements (on pourrait l'afficher) |
---|
79 | $sinon = array_shift($args); |
---|
80 | if (!$nb) return $sinon; |
---|
81 | $type = array_shift($args); |
---|
82 | $agenda = Agenda_memo_full(0); |
---|
83 | $evt_avec = array(); |
---|
84 | foreach (($args ? $args : array_keys($agenda)) as $k) { |
---|
85 | if (isset($agenda[$k])&&is_array($agenda[$k])) |
---|
86 | foreach($agenda[$k] as $d => $v) { |
---|
87 | $evt_avec[$d] = isset($evt_avec[$d]) ? (array_merge($evt_avec[$d], $v)) : $v; |
---|
88 | } |
---|
89 | } |
---|
90 | |
---|
91 | $evenements = Agenda_memo_evt_full(0); |
---|
92 | $evt_sans = array(); |
---|
93 | foreach (($args ? $args : array_keys($evenements)) as $k) { |
---|
94 | if (isset($evenements[$k])&&is_array($evenements[$k])) |
---|
95 | foreach($evenements[$k] as $d => $v) { |
---|
96 | $evt_sans[$d] = isset($evt_sans[$d]) ? (array_merge($evt_sans[$d], $v)) : $v; |
---|
97 | } |
---|
98 | } |
---|
99 | |
---|
100 | |
---|
101 | if ($type != 'periode') |
---|
102 | $evt = array($evt_sans, $evt_avec); |
---|
103 | else |
---|
104 | { |
---|
105 | $d = array_keys($evt_avec); |
---|
106 | $mindate = min($d); |
---|
107 | $min = substr($mindate,6,2); |
---|
108 | $max = $min + ((strtotime(max($d)) - strtotime($mindate)) / (3600 * 24)); |
---|
109 | if ($max < 31) $max = 0; |
---|
110 | $evt = array($evt_sans, $evt_avec, $min, $max); |
---|
111 | $type = 'mois'; |
---|
112 | } |
---|
113 | |
---|
114 | include_spip('inc/agenda'); |
---|
115 | $texte=http_calendrier_init('', $type, '', '', self(), $evt); |
---|
116 | |
---|
117 | return $texte; |
---|
118 | } |
---|
119 | |
---|
120 | function Agenda_affdate_debut_fin($date_debut, $date_fin, $horaire = 'oui'){ |
---|
121 | static $trans_tbl=NULL; |
---|
122 | if ($trans_tbl==NULL){ |
---|
123 | $trans_tbl = get_html_translation_table (HTML_ENTITIES); |
---|
124 | $trans_tbl = array_flip ($trans_tbl); |
---|
125 | } |
---|
126 | |
---|
127 | $date_debut = strtotime($date_debut); |
---|
128 | $date_fin = strtotime($date_fin); |
---|
129 | $s = ""; |
---|
130 | if (($d=date("Y-m-d",$date_debut))==date("Y-m-d",$date_fin)) |
---|
131 | { // meme jour |
---|
132 | $s = ucfirst(nom_jour($d))." ".affdate_jourcourt($d); |
---|
133 | if ($horaire=='oui'){ |
---|
134 | $s .= " ".($hd=date("H:i",$date_debut)); |
---|
135 | if ($hd!=($hf=date("H:i",$date_fin))) |
---|
136 | $s .= "-$hf"; |
---|
137 | } |
---|
138 | } |
---|
139 | else if ((date("Y-m",$date_debut))==date("Y-m",$date_fin)) |
---|
140 | { // meme annee et mois, jours differents |
---|
141 | $d=date("Y-m-d",$date_debut); |
---|
142 | if ($horaire=='oui'){ |
---|
143 | $s = _T('agenda:evenement_date_du') . " " . affdate_jourcourt($d); |
---|
144 | $s .= " ".($hd=date("H:i",$date_debut)); |
---|
145 | $s .= " " . _T('agenda:evenement_date_au').date("d H:i ",$date_fin); |
---|
146 | } |
---|
147 | else { |
---|
148 | $s = _T('agenda:evenement_date_du') . " " . jour($d); |
---|
149 | $s .= " " . _T('agenda:evenement_date_au').affdate_jourcourt(date("Y-m-d",$date_fin)); |
---|
150 | } |
---|
151 | } |
---|
152 | else if ((date("Y",$date_debut))==date("Y",$date_fin)) |
---|
153 | { // meme annee, mois et jours differents |
---|
154 | $d=date("Y-m-d",$date_debut); |
---|
155 | $s = _T('agenda:evenement_date_du') . " " . affdate_jourcourt($d); |
---|
156 | if ($horaire=='oui') |
---|
157 | $s .= " ".date("H:i",$date_debut); |
---|
158 | $d = date("Y-m-d",$date_fin); |
---|
159 | $s .= " "._T('agenda:evenement_date_au').affdate_jourcourt($d); |
---|
160 | if ($horaire=='oui') |
---|
161 | $s .= " ".date("H:i",$date_fin); |
---|
162 | } |
---|
163 | else |
---|
164 | { // tout different |
---|
165 | $s = _T('agenda:evenement_date_du') . " " . affdate($d); |
---|
166 | if ($horaire=='oui') |
---|
167 | $s .= " ".date("(H:i)",$date_debut); |
---|
168 | $d = date("Y-m-d",$date_fin); |
---|
169 | $s .= " "._T('agenda:evenement_date_au').affdate($d); |
---|
170 | if ($horaire=='oui') |
---|
171 | $s .= " ".date("(H:i)",$date_fin); |
---|
172 | } |
---|
173 | return unicode2charset(charset2unicode(strtr($s,$trans_tbl),'')); |
---|
174 | } |
---|
175 | |
---|
176 | function Agenda_dateplus($date,$secondes,$format){ |
---|
177 | $date = strtotime($date)+eval("return $secondes;"); // permet de passer une expression |
---|
178 | return date($format,$date); |
---|
179 | } |
---|
180 | ?> |
---|