diff --git a/ecrire/inc_spip_action_ical.php b/ecrire/inc_spip_action_ical.php index f8bfb655ee6d0183a62a4029d6ed1d4633d18f61..ac7cd76d7534ad991f3862ce6881ab97e2a98121 100644 --- a/ecrire/inc_spip_action_ical.php +++ b/ecrire/inc_spip_action_ical.php @@ -24,9 +24,13 @@ function ligne ($texte) { echo filtrer_ical($texte)."\n"; } +function ligne_uid ($texte) { + echo filtrer_ical("UID:$texte @ " . $GLOBALS['meta']["adresse_site"])."\n"; +} + function spip_action_ical_dist() { - global $id_auteur, $arg, $action; + global $id_auteur, $arg, $action, $titres; if (verifier_low_sec($id_auteur, $arg, $action)) { $result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur=" . intval($id_auteur)); @@ -45,23 +49,27 @@ function spip_action_ical_dist() lang_select($langue_utilisateur); $nom_site = $GLOBALS['meta']["nom_site"]; $adresse_site = $GLOBALS['meta']["adresse_site"]; + if ($adresse_site && substr($adresse_site,-1) <> '/') + $adresse_site .= '/'; header("Content-Type: text/calendar; charset=utf-8"); ligne ("BEGIN:VCALENDAR"); ligne ("CALSCALE:GREGORIAN"); ligne ("X-WR-CALNAME;VALUE=TEXT:$nom_site / $nom_utilisateur"); ligne ("X-WR-RELCALID:cal$id_utilisateur @ $adresse_site"); - spip_ical_rendez_vous($id_utilisateur, $nom_site, $adresse_site); - spip_ical_taches($id_utilisateur, $nom_site, $adresse_site); - $nb_articles = spip_ical_articles($nom_site, $adresse_site); - $nb_breves = spip_ical_breves($nom_site, $adresse_site); + spip_ical_rendez_vous($id_utilisateur, $nom_site); + spip_ical_taches($id_utilisateur, $nom_site); + + $titres = Array(); + $nb_articles = spip_ical_articles($nom_site); + $nb_breves = spip_ical_breves($nom_site); if ($nb_articles || $nb_breves) { if ($nb_articles > 0) $titre_prop[] = _T('info_articles_proposes').": ".$nb_articles; if ($nb_breves > 0) $titre_prop[] = _T('info_breves_valider').": ".$nb_breves; $titre = join($titre_prop," / "); ligne ("BEGIN:VTODO"); ligne ("SUMMARY:[$nom_site] $titre"); - ligne ("UID:prop @ $adresse_site"); + ligne ("prop"); $texte = join($titres," / "); ligne ("DESCRIPTION:$texte"); @@ -72,17 +80,17 @@ function spip_action_ical_dist() ligne ("DTSTAMP:".date ("Ymd\THis", mktime (12,0,0,$mois,$jour,$annee))); ligne ("DTSTART:".date ("Ymd\THis", mktime (12,0,0,$mois,$jour,$annee))); ligne ("CATEGORIES:"._T('icone_a_suivre')); - ligne ("URL:$adresse_site/ecrire/"); + ligne ("URL:$adresse_site" . _DIR_RESTREINT_ABS); ligne ("END:VTODO"); } - spip_ical_messages($id_utilisateur, $nom_site, $adresse_site); + spip_ical_messages($id_utilisateur, $nom_site); if ($statut_utilisateur == "0minirezo") { - spip_ical_forums($id_utilisateur, $nom_site, $adresse_site); + spip_ical_forums($id_utilisateur, $nom_site); } ligne ("END:VCALENDAR"); } -function spip_ical_rendez_vous($id_utilisateur, $nom_site, $adresse_site) +function spip_ical_rendez_vous($id_utilisateur, $nom_site) { $result_messages=spip_query("SELECT messages.* FROM spip_messages AS messages, spip_auteurs_messages AS lien WHERE ((lien.id_auteur='$id_utilisateur' AND lien.id_message=messages.id_message) OR messages.type='affich') AND messages.rv='oui' AND messages.statut='publie' GROUP BY messages.id_message ORDER BY messages.date_heure"); while($row=spip_fetch_array($result_messages)){ @@ -119,7 +127,7 @@ function spip_ical_rendez_vous($id_utilisateur, $nom_site, $adresse_site) ligne ("BEGIN:VEVENT"); ligne ("SUMMARY:".$titre); ligne ("DESCRIPTION:$texte"); - ligne ("UID:mess$id_message @ $adresse_site"); + ligne ("mess$id_message"); ligne ("DTSTAMP:".date_ical($date_heure)); ligne ("DTSTART:".date_ical($date_heure)); if ($date_heure_fin > $date_heure) ligne ("DTEND:".date_ical($date_heure_fin)); @@ -131,7 +139,7 @@ function spip_ical_rendez_vous($id_utilisateur, $nom_site, $adresse_site) } } -function spip_ical_taches($id_utilisateur, $nom_site, $adresse_site) +function spip_ical_taches($id_utilisateur, $nom_site) { $result_messages=spip_query("SELECT messages.* FROM spip_messages AS messages, spip_auteurs_messages AS lien WHERE lien.id_auteur='$id_utilisateur' AND lien.id_message=messages.id_message AND messages.type='pb' AND messages.rv!='oui' AND messages.statut='publie' GROUP BY messages.id_message ORDER BY messages.date_heure"); while($row=spip_fetch_array($result_messages)){ @@ -166,7 +174,7 @@ function spip_ical_taches($id_utilisateur, $nom_site, $adresse_site) ligne ("BEGIN:VTODO"); ligne ("SUMMARY:".$titre); ligne ("DESCRIPTION:$texte"); - ligne ("UID:mess$id_message @ $adresse_site"); + ligne ("mess$id_message"); ligne ("DTSTAMP:".date_ical($date_heure)); ligne ("DTSTART:".date_ical($date_heure)); ligne ("CATEGORIES:$le_type"); @@ -175,9 +183,9 @@ function spip_ical_taches($id_utilisateur, $nom_site, $adresse_site) } } -function spip_ical_articles($nom_site, $adresse_site) +function spip_ical_articles($nom_site) { - $titres = Array(); + global $titres; $result_articles = spip_query("SELECT id_article, titre, date FROM spip_articles WHERE statut = 'prop'"); while($row=spip_fetch_array($result_articles)){ $id_article=$row['id_article']; @@ -187,7 +195,7 @@ function spip_ical_articles($nom_site, $adresse_site) $nb_articles ++; ligne ("BEGIN:VEVENT"); ligne ("SUMMARY:[$nom_site] $titre ("._T('info_article_propose').")"); - ligne ("UID:article$id_article @ $adresse_site"); + ligne ("article$id_article"); ligne ("DTSTAMP:".date ("Ymd\THis", mktime (heures($date_heure),minutes($date_heure),0,mois($date_heure),jour($date_heure),annee($date_heure)))); ligne ("DTSTART;VALUE=DATE:".date ("Ymd", mktime (heures($date_heure),minutes($date_heure),0,mois($date_heure),jour($date_heure),annee($date_heure)))); ligne ("CATEGORIES:"._T('info_article_propose')); @@ -198,8 +206,9 @@ function spip_ical_articles($nom_site, $adresse_site) } -function spip_ical_breves($nom_site, $adresse_site) +function spip_ical_breves($nom_site) { + global $titres; $result = spip_query("SELECT id_breve, titre, date_heure FROM spip_breves WHERE statut = 'prop'"); while($row=spip_fetch_array($result)){ $id_breve=$row['id_breve']; @@ -209,7 +218,7 @@ function spip_ical_breves($nom_site, $adresse_site) $nb_breves++; ligne ("BEGIN:VEVENT"); ligne ("SUMMARY:[$nom_site] $titre ("._T('item_breve_proposee').")"); - ligne ("UID:breve$id_breve @ $adresse_site"); + ligne ("breve$id_breve"); ligne ("DTSTAMP:".date ("Ymd\THis", mktime (heures($date_heure),minutes($date_heure),0,mois($date_heure),jour($date_heure),annee($date_heure)))); ligne ("DTSTART;VALUE=DATE:".date ("Ymd", mktime (heures($date_heure),minutes($date_heure),0,mois($date_heure),jour($date_heure),annee($date_heure)))); ligne ("CATEGORIES:"._T('item_breve_proposee')); @@ -220,7 +229,7 @@ function spip_ical_breves($nom_site, $adresse_site) } -function spip_ical_messages($id_utilisateur, $nom_site, $adresse_site) +function spip_ical_messages($id_utilisateur, $nom_site) { $result_messages = spip_query("SELECT * FROM spip_messages AS messages, spip_auteurs_messages AS lien WHERE lien.id_auteur=$id_utilisateur AND vu='non' AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message"); while($row=spip_fetch_array($result_messages)){ @@ -271,7 +280,7 @@ function spip_ical_messages($id_utilisateur, $nom_site, $adresse_site) ligne ("BEGIN:VTODO"); ligne ("SUMMARY:".$titre); ligne ("DESCRIPTION:$texte"); - ligne ("UID:nouv_mess$id_message @ $adresse_site"); + ligne ("nouv_mess$id_message"); ligne ("DTSTAMP:".date ("Ymd\THis", mktime (heures($date_heure),minutes($date_heure),0,mois($date_heure),jour($date_heure),annee($date_heure)))); ligne ("DTSTART:".date ("Ymd\THis", mktime (heures($date_heure),minutes($date_heure),0,mois($date_heure),jour($date_heure),annee($date_heure)))); ligne ("CATEGORIES:$le_type"); @@ -280,7 +289,7 @@ function spip_ical_messages($id_utilisateur, $nom_site, $adresse_site) } } -function spip_ical_forums($id_utilisateur, $nom_site, $adresse_site) +function spip_ical_forums($id_utilisateur, $nom_site) { $query_forum = "SELECT * FROM spip_forum WHERE statut = 'prop'"; $result_forum = spip_query($query_forum); @@ -299,7 +308,7 @@ function spip_ical_forums($id_utilisateur, $nom_site, $adresse_site) ligne ("BEGIN:VEVENT"); ligne ("SUMMARY:[$nom_site] $titre "._T('icone_forum_suivi')); ligne ("DESCRIPTION:$texte\r$auteur $email_auteur"); - ligne ("UID:forum$id_forum @ $adresse_site"); + ligne ("forum$id_forum"); ligne ("DTSTAMP:".date ("Ymd\THis", mktime (heures($date_heure),minutes($date_heure),0,mois($date_heure),jour($date_heure),annee($date_heure)))); ligne ("DTSTART:".date ("Ymd\THis", mktime (heures($date_heure),minutes($date_heure),0,mois($date_heure),jour($date_heure),annee($date_heure)))); ligne ("DTEND:".date ("Ymd\THis", mktime (heures($date_heure),minutes($date_heure)+60,0,mois($date_heure),jour($date_heure),annee($date_heure)))); @@ -311,7 +320,7 @@ function spip_ical_forums($id_utilisateur, $nom_site, $adresse_site) if ($nb_forum > 0) { ligne ("BEGIN:VTODO"); ligne ("SUMMARY:[$nom_site] "._T('icone_forum_suivi').": $nb_forum"); - ligne ("UID:forum @ $adresse_site"); + ligne ("forum"); $today=getdate(time()); $jour = $today["mday"];