* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
-if (!defined('_ECRIRE_INC_VERSION')) return;
+/**
+ * Gestion de l'action de quête des événements du calendrier
+ *
+ * @package SPIP\Organiseur\Action
+ **/
+
+if (!defined('_ECRIRE_INC_VERSION')) {
+ return;
+}
/**
* Fournir une liste d'"evenements" entre deux dates start et end
* au format json
- * utilise pour l'affichage du calendrier prive et public
- *
+ *
+ * Utilisé pour l'affichage du calendrier privé et public
+ *
+ * @pipeline_appel quete_calendrier_prive
+ * @uses quete_calendrier_interval_rv()
+ * @uses quete_calendrier_interval()
+ * @uses convert_fullcalendar_quete_calendrier_interval_rv()
+ * @uses convert_fullcalendar_quete_calendrier_interval()
+ *
* @return void
*/
-function action_quete_calendrier_prive_dist(){
- $securiser_action = charger_fonction('securiser_action','inc');
+function action_quete_calendrier_prive_dist() {
+ $securiser_action = charger_fonction('securiser_action', 'inc');
$securiser_action();
- $start = _request('start');
- $end = _request('end');
+ $start = strtotime(_request('start'));
+ $end = strtotime(_request('end'));
$quoi = _request('quoi');
include_spip('inc/quete_calendrier');
$evt = array();
// recuperer la liste des evenements au format ics
- $start = date('Y-m-d H:i:s',$start);
- $end = date('Y-m-d H:i:s',$end);
- $limites = array(sql_quote($start),sql_quote($end));
+ $start = date('Y-m-d H:i:s', $start);
+ $end = date('Y-m-d H:i:s', $end);
+ $limites = array(sql_quote($start), sql_quote($end));
// on fonction de quoi on récupère : tout (rv + publication) ou l'un ou l'autre.
$entier = $duree = array();
- if (!$quoi OR $quoi=='rv') {
+ if (!$quoi or $quoi == 'rv') {
$duree = quete_calendrier_interval_rv(reset($limites), end($limites));
$evt = convert_fullcalendar_quete_calendrier_interval_rv($duree, $evt);
}
- if (!$quoi OR $quoi=='publication') {
- list($entier,) = quete_calendrier_interval($limites);
+ if (!$quoi or $quoi == 'publication') {
+ list($entier, ) = quete_calendrier_interval($limites);
$evt = convert_fullcalendar_quete_calendrier_interval($entier, $evt);
}
// permettre aux plugins d'afficher leurs evenements dans ce calendrier
- $evt = pipeline('quete_calendrier_prive',
+ $evt = pipeline(
+ 'quete_calendrier_prive',
array(
- 'args' => array('start' => $start, 'end' => $end, 'quoi'=>$quoi),
+ 'args' => array('start' => $start, 'end' => $end, 'quoi' => $quoi),
'data' => $evt,
)
);
}
/**
- * Convertir une date au format ical renvoyee par quete_calendrier_interval
+ * Convertir une date au format ical renvoyée par quete_calendrier_interval
* dans le format attendu par fullcalendar : yyyy-mm-dd H:i:s
+ *
* @param $dateical
* @return string
*/
-function convert_dateical($dateical){
- $d = explode('T',$dateical);
+function convert_dateical($dateical) {
+ $d = explode('T', $dateical);
$amj = reset($d);
- $s = substr($amj,0,4).'-'.substr($amj,4,2).'-'.substr($amj,6,2);
- if (count($d)>1){
+ $s = substr($amj, 0, 4) . '-' . substr($amj, 4, 2) . '-' . substr($amj, 6, 2);
+ if (count($d) > 1) {
$his = end($d);
- $s .= ' '.substr($his,0,2).":".substr($his,2,2).":".substr($his,4,2);
+ $s .= ' ' . substr($his, 0, 2) . ':' . substr($his, 2, 2) . ':' . substr($his, 4, 2);
}
+
return $s;
}
* Les événements au format fullcalendar déjà présents
* @return array
* Les événements au format fullcalendar
-**/
+ **/
function convert_fullcalendar_quete_calendrier_interval($messages, $evt = array()) {
- if (!$messages) return $evt;
+ if (!$messages) {
+ return $evt;
+ }
// la retransformer au format attendu par fullcalendar
// facile : chaque evt n'est mentionne qu'une fois, a une date
- foreach($messages as $amj=>$l){
- $date = substr($amj,0,4).'-'.substr($amj,4,2).'-'.substr($amj,6,2);
- foreach($l as $e){
+ foreach ($messages as $amj => $l) {
+ $date = substr($amj, 0, 4) . '-' . substr($amj, 4, 2) . '-' . substr($amj, 6, 2);
+ foreach ($l as $e) {
$evt[] = array(
'id' => 0,
'title' => $e['SUMMARY'],
'allDay' => true,
'start' => $date,
'end' => $date,
- 'url' => str_replace('&','&',$e['URL']),
- 'className' => "calendrier-event ".$e['CATEGORIES'],
+ 'url' => str_replace('&', '&', $e['URL']),
+ 'className' => 'calendrier-event ' . $e['CATEGORIES'],
'description' => $e['DESCRIPTION'],
);
}
* Convertir une sortie événement de quete calendrier_interval_rv
* dans le format attendu par fullcalendar
*
+ * @use convert_dateical()
+ *
* @param array $messages
* Les événements / messages au format issu de la quete calendrier_interval_rv
* @param array $evt
* Les événements au format fullcalendar déjà présents
* @return array
* Les événements au format fullcalendar
-**/
+ **/
function convert_fullcalendar_quete_calendrier_interval_rv($messages, $evt = array()) {
- if (!$messages) return $evt;
+ if (!$messages) {
+ return $evt;
+ }
// ici il faut faire attention : un evt apparait N fois
// mais on a son id
$seen[$e['url']] = true;
}
- foreach($messages as $amj=>$l){
- foreach($l as $id=>$e){
- $url = str_replace('&','&',$e['URL']);
+ foreach ($messages as $l) {
+ foreach ($l as $id => $e) {
+ $url = str_replace('&', '&', $e['URL']);
if (!isset($seen[$url])) {
$evt[] = array(
'id' => $id,
'start' => convert_dateical($e['DTSTART']), //Ymd\THis
'end' => convert_dateical($e['DTEND']), // Ymd\THis
'url' => $url,
- 'className' => "calendrier-event ".$e['CATEGORIES'],
+ 'className' => 'calendrier-event ' . $e['CATEGORIES'],
'description' => $e['DESCRIPTION'],
);
$seen[$url] = true;