[icalendar ↪ issue_4_fix_timezones] 3 commits

spip-contrib-extensions/icalendar | 3 commits

Par tcharlss, le 10 octobre 2025 à 15h46min :

doc(changelog): pour #4

Modifié
CHANGELOG.md

Détails : doc(changelog): pour #4 (5409ab17) · Validations · spip-contrib-extensions / icalendar · GitLab

==============================
Par tcharlss, le 10 octobre 2025 à 15h38min :

feat: ajout du bloc VTIMEZONE pour améliorer le support des timezones sur certains clients

Ce bloc est optionnel, mais il améliore possiblement le support des timezones avec certains clients.
En gros il donne les informations sur une timezone : le décalage horaire, les changements d’heure été/hiver, etc.
Apparemment certains clients ne connaissent pas ces informations, il faut donc leur donner.

Chaque timezone mentionnée dans le bloc BEGIN:VEVENT doît être décrite de cette façon.
En l’occurence le squelette event.html concerne un unique évènement, donc on prend la timezone de ce dernier.

Code repris et adapté de VTIMEZONE component for a Olson timezone identifier with daylight transitions.Solution to this StackOverflow question: https://stackoverflow.com/questions/6682304/generating-an-icalender-vtimezone-component-from-phps-timezone-value/25971680 · GitHub

Testé avec plusieurs timezones avec et sans DST, ça à l’air de fonctionner, mais à vérifier au long cours.

Refs: #4

Ajouté
http/ical/event_fonctions.php
Modifié
http/ical/event.html

Détails : feat: ajout du bloc `VTIMEZONE` pour améliorer le support des timezones sur certains clients (49d1155a) · Validations · spip-contrib-extensions / icalendar · GitLab

==============================
Par tcharlss, le 10 octobre 2025 à 14h28min :

fix: prise en compte correcte des timezones dans les ics

En dehors de BEGIN:VEVENT, il faut indiquer la timezone générale du site et non celle de l’évènement.
À l’intérieur de BEGIN:VEVENT, ça fait au total 3 cas de figure selon qu’il y ait une timezone et/ou un horaire :

  • horaire + timezone : DTSTART;TZID=Africa/Nairobi:20251021T090000
  • horaire sans timezone : DTSTART:20251021T030000Z
  • pas d’horaire : DTSTART;VALUE=DATE:20251021

Close: #4

Modifié
http/ical/event.html
http/ical/inc-event.html

Détails : fix: prise en compte correcte des timezones dans les ics (408eb3d8) · Validations · spip-contrib-extensions / icalendar · GitLab