date du jour $stamp=time(); } else { // date de l'evenement $res = spip_query("SELECT date_debut FROM spip_evenements WHERE id_evenement="._q($id_evenement)); if ($row = spip_fetch_array($res)) $stamp=strtotime($row['date_debut']); else $stamp=time(); } $annee=date('Y',$stamp); $mois=date('m',$stamp); $jour=date('d',$stamp); } $urlbase=self(); $urlbase=parametre_url($urlbase,'edit',''); $urlbase=parametre_url($urlbase,'del',''); $urlbase=parametre_url($urlbase,'ndate',''); $urlbase=parametre_url($urlbase,'id_evenement',''); $urlbase=parametre_url($urlbase,'neweven','1'); //$urlbase=str_replace("&","&",$urlbase); // creation des boites creneaux horaires pour ajout rapide list($ts_start,$ts_fin) = date_debut_fin($annee,$mois,$jour,$type); if ($flag_editable) ajoute_creneaux_horaires($urlbase,$ts_start,$ts_fin,$type,$partie_cal,$echelle); $categorie_concerne=array('plage'=>'calendrier-plage','evenement'=>'calendrier-evenement'); $categorie_info=array('plage'=>'calendrier-plage-info','evenement'=>'calendrier-evenement-info'); $datestart=date('Y-m-d H:i:s',$ts_start-24*60*60); $datefin=date('Y-m-d H:i:s',$ts_fin+24*60*60); // tous les evenements $res = spip_query("SELECT * FROM spip_evenements AS evenements WHERE ((evenements.date_debut>='$datestart' AND evenements.date_debut<='$datefin') OR (evenements.date_fin>='$datestart' AND evenements.date_fin<='$datefin') OR (evenements.date_debut<'$datestart' AND evenements.date_fin>'$datefin')) ORDER BY evenements.date_debut;"); $urlbase=parametre_url($urlbase,'neweven',''); $urlbase=parametre_url($urlbase,'annee',$annee); $urlbase=parametre_url($urlbase,'mois',$mois); $urlbase=parametre_url($urlbase,'jour',$jour); while ($row = spip_fetch_array($res)){ $is_evt=($row['horaire']!='oui') ||($row['date_debut']<$datestart && $row['date_fin']>$datefin); $concerne=(!$ajouter_id_article) || ($ajouter_id_article==$row['id_article']); $url=parametre_url($urlbase,'id_evenement',$row['id_evenement']); $url=parametre_url($url,'ajouter_id_article',$row['id_article']); $args = explode('?',parametre_url($url,'exec','')); // $url sous forme d'array pour appeler ajax_action_auteur $url = array('action'=>'voir_evenement','id'=>"0-voir",'script'=>'calendrier','args'=>end($args)); $titre = typo($row['titre']); $descriptif = typo($row['descriptif']); $lieu = typo($row['lieu']); $texte=wordwrap(entites_html($row['titre'],ENT_QUOTES),15,"
\n"); if (($type!='mois')&&(!$is_evt)) $texte.="
" . wordwrap(entites_html($row['descriptif'],ENT_QUOTES),15, "
\n"); if (strlen($texte)==0) $texte=_L("(sans objet)"); if ($concerne) $categorie = $categorie_concerne; else $categorie = $categorie_info; if ($is_evt) $categorie = $categorie['evenement']; else $categorie = $categorie['plage']; if ($id_evenement==$row['id_evenement']) $categorie.='-selection'; if (!$is_evt) Agenda_memo_full($row['date_debut'], $row['date_fin'], $titre, $descriptif, $lieu, $url, $categorie); else{ //if ($type!='mois') // Agenda_memo_evt_full($row['date_debut'], $row['date_debut'], Agenda_rendu_boite($titre,$descriptif,$lieu), "", "", $url, $categorie); //else Agenda_memo_evt_full($row['date_debut'], $row['date_fin'], $titre, $descriptif, $lieu, $url, $categorie); } $visu_evenements[$row['id_evenement']]=1; } $s = "\n"; // attention : bug car $type est modifie apres cet appel ! $s .= Agenda_affiche_full(1,'', $type, 'calendrier-creneau','calendrier-creneau-today','calendrier-creneau-sunday','calendrier-plage','calendrier-evenement','calendrier-plage-info','calendrier-evenement-info','calendrier-plage-selection','calendrier-evenement-selection'); $s .= ""; return $s; } function date_debut_fin($annee,$mois,$jour,$type){ if ($type=='jour'){ $ts_start=strtotime("$annee-$mois-01 00:00:00"); $ts_start+=($jour-1)*24*60*60; $ts_fin=$ts_start+24*60*60; } else if ($type=="semaine"){ $ts_start=strtotime("$annee-$mois-01 01:00:00"); $ts_start+=($jour-1)*24*60*60; while (date('w',$ts_start)!=1) $ts_start-=24*60*60; $ts_fin=$ts_start+7*24*60*60+60*60; $ts_start-=2*60*60; } else if ($type=='mois'){ $ts_start=strtotime("$annee-$mois-01 00:00:00"); if ($mois<'12') $ts_fin=strtotime("$annee-".($mois+1)."-01 00:00:00"); else $ts_fin=strtotime(($annee+1)."-$mois-01 00:00:00"); } return array($ts_start,$ts_fin); } function ajoute_creneaux_horaires($urlbase,$ts_start,$ts_fin,$type,$partie_cal,$echelle){ // creneaux pour ajout uniquement si ajouter_id_article present if (($type!='mois')&&($partie_cal!='sansheure')&&($partie_cal!=NULL)) { if ($echelle<=120) $freq_creneaux=30*60; else $freq_creneaux=60*60; $today=date('Y-m-d'); $heuremin='08';$heuremax='20'; if ($partie_cal=='matin'){ $heuremin='04';$heuremax='15'; } if ($partie_cal=='soir'){ $heuremin='12';$heuremax='23'; } for ($j=$ts_start;$j<=$ts_fin;$j+=$freq_creneaux){ $heure=date('H',$j); if (($heure>=$heuremin)&&($heure<=$heuremax)){ $url=parametre_url($urlbase,'ndate',urlencode(date('Y-m-d H:i',$j))); $args = explode('?',parametre_url($url,'exec','')); // $url sous forme d'array pour appeler ajax_action_auteur $url = array('action'=>'voir_evenement','id'=>"0-editer",'script'=>'calendrier','args'=>end($args),'fct_ajax'=>'wc_init'); $creneau=date('Y-m-d H:i:s',$j); if (date('Y-m-d',$j)==$today) Agenda_memo_full($creneau,$creneau,preg_replace(",\s+,"," ",date('H:i',$j)." "._T('agenda:ajouter_un_evenement')), " ", "", $url,'calendrier-creneau-today'); else if (date('w',$j)==0) Agenda_memo_full($creneau,$creneau,preg_replace(",\s+,"," ",date('H:i',$j)." "._T('agenda:ajouter_un_evenement')), " ", "",$url,'calendrier-creneau-sunday'); else Agenda_memo_full($creneau,$creneau,preg_replace(",\s+,"," ",date('H:i',$j)." "._T('agenda:ajouter_un_evenement')), " ", "",$url,'calendrier-creneau'); } } } } function http_calendrier_ics_message($annee, $mois, $jour, $large) { return ""; } function http_calendrier_aide_mess() { return ""; } function http_calendrier_semainesh($annee, $mois, $jour, $echelle, $partie_cal, $script, $ancre, $evt) { global $spip_ecran; if (!isset($spip_ecran)) $spip_ecran = 'large'; $init = date("w",mktime(1,1,1,$mois,$jour,$annee)); $init = $jour+1-($init ? $init : 7); $sd = ''; if (is_array($evt)) { list($sansduree, $evenements, $premier_jour, $dernier_jour) = $evt; if ($sansduree) foreach($sansduree as $d => $r) $evenements[$d] = !$evenements[$d] ? $r : array_merge($evenements[$d], $r); $finurl = "&echelle=$echelle&partie_cal=$partie_cal$ancre"; $evt = http_calendrier_semaine_noms($annee, $mois, $init, $script, $finurl) . http_calendrier_mois_sept($annee, $mois, $init, $init+ 6, $evenements, $script); } else $evt = "$evt"; return "\n" . http_calendrier_semaine_navigation($annee, $mois, $init, $echelle, $partie_cal, $script, $ancre) . $evt . "
" . (_DIR_RESTREINT ? "" : http_calendrier_aide_mess()); } ?>