0)) { $date_deb=_request('annee_evenement_debut',$c).'-'._request('mois_evenement_debut',$c).'-'.($jour_debut--) .' '._request('heure_evenement_debut',$c).':'._request('minute_evenement_debut',$c); $st_date_deb=strtotime($date_deb); } $date_deb=format_mysql_date(date("Y",$st_date_deb),date("m",$st_date_deb),date("d",$st_date_deb),date("H",$st_date_deb),date("i",$st_date_deb), $s=0); // pour les cas ou l'utilisateur a saisi 29-30-31 un mois ou ca n'existait pas $maxiter=4; $st_date_fin=FALSE; $jour_fin=_request('jour_evenement_fin',$c); // test <= car retour strtotime retourne -1 ou FALSE en cas d'echec suivant les versions while(($st_date_fin<=FALSE)&&($maxiter-->0)) { $st_date_fin=_request('annee_evenement_fin',$c).'-'._request('mois_evenement_fin',$c).'-'.($jour_fin--) .' '._request('heure_evenement_fin',$c).':'._request('minute_evenement_fin',$c); $st_date_fin=strtotime($st_date_fin); } $st_date_fin = max($st_date_deb,$st_date_fin); $date_fin=format_mysql_date(date("Y",$st_date_fin),date("m",$st_date_fin),date("d",$st_date_fin),date("H",$st_date_fin),date("i",$st_date_fin), $s=0); // mettre a jour l'evenement $res=spip_query("UPDATE spip_evenements SET `titre`="._q($titre) . ",`descriptif`="._q($descriptif) . ",`lieu`="._q($lieu) . ",`horaire`="._q($horaire) . ",`date_debut`="._q($date_deb) . ",`date_fin`="._q($date_fin) . " WHERE `id_evenement` ="._q($id_evenement)); // les mots cles : par groupes $res = spip_query("SELECT * FROM spip_groupes_mots WHERE evenements='oui' ORDER BY titre"); $liste_mots = array(); while ($row = spip_fetch_array($res,SPIP_ASSOC)){ $id_groupe = $row['id_groupe']; $id_mot_a = _request("evenement_groupe_mot_select_$id_groupe",$c); // un array if (is_array($id_mot_a) && count($id_mot_a)){ if ($row['unseul']=='oui') $liste_mots[] = intval(reset($id_mot_a)); else foreach($id_mot_a as $id_mot) $liste_mots[] = intval($id_mot); } } Agenda_action_update_liste_mots($id_evenement,$liste_mots); // gestion des repetitions if (($repetitions = _request('selected_date_repetitions',$c))!=NULL){ $repetitions = explode(',',$repetitions); $rep = array(); foreach($repetitions as $key=>$date){ if (preg_match(",[0-9][0-9]?/[0-9][0-9]?/[0-9][0-9][0-9][0-9],",$date)){ $date = explode('/',$date); $date = $date[2]."/".$date[0]."/".$date[1]; $date = strtotime($date); } else { $date = preg_replace(",[0-2][0-9]:[0-6][0-9]:[0-6][0-9]\s*(UTC|GMT)(\+|\-)[0-9]{4},","",$date); $date = explode(' ',$date); $date = strtotime($date[2]." ".$date[1]." ".$date[3]); } if (!in_array($date,$repetitions)) $rep[] = $date; } $repetitions = $rep; } else $repetitions = array(); Agenda_action_update_repetitions($id_evenement, $repetitions, $liste_mots); } return $id_evenement; } function Agenda_action_supprime_evenement($id_article,$supp_evenement){ $res = spip_query("SELECT * FROM spip_evenements WHERE id_article="._q($id_article)." AND id_evenement="._q($supp_evenement)); if ($row = spip_fetch_array($res)){ spip_query("DELETE FROM spip_mots_evenements WHERE id_evenement="._q($supp_evenement)); spip_query("DELETE FROM spip_evenements WHERE id_evenement="._q($supp_evenement)); } Agenda_action_supprime_repetitions($supp_evenement); $id_evenement = 0; return $id_evenement; } ?>