|
|
| Ligne 24 : |
Ligne 24 : |
| | | | |
| | == Ajouter un nouvel agenda == | | == Ajouter un nouvel agenda == |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − |
| |
| − | Les constantes suivantes peuvent être utilisées :
| |
| − |
| |
| − | * <code>BAB_PERIOD_WORKING</code> périodes travaillées
| |
| − | * <code>BAB_PERIOD_NONWORKING</code> périodes non-travaillées
| |
| − | * <code>BAB_PERIOD_NWDAY</code> jours fériés
| |
| − | * <code>BAB_PERIOD_CALEVENT</code> événements d'agenda
| |
| − | * <code>BAB_PERIOD_VACATION</code> périodes de congés
| |
| − |
| |
| − |
| |
| − |
| |
| − | Utiliser l'api pour mélanger les différentes sources d'événements (voir exemple dans utilit/mcalincl.php) :
| |
| − | <source lang="php">
| |
| − | $this->whObj = new bab_userWorkingHours(
| |
| − | BAB_dateTime::fromIsoDateTime($startdate),
| |
| − | BAB_dateTime::fromIsoDateTime($enddate)
| |
| − | );
| |
| − | </source>
| |
| − |
| |
| − | Les 2 paramètres sont des objets date générés par BAB_dateTime (voir la classe utilit/dateTime.php).
| |
| − | C'est la période totale de calcul
| |
| − |
| |
| − |
| |
| − |
| |
| − | Pour utiliser les informations d'horaire de travail et des congés, il faut ajouter 1 ou plusieurs id utilisateurs.
| |
| − | Pour chaque ID user ajouté, les périodes correspondantes seront prises en compte
| |
| − |
| |
| − | <source lang="php">
| |
| − | $this->whObj->addIdUser($GLOBALS['BAB_SESS_USERID']);
| |
| − | </source>
| |
| − |
| |
| − | Pour utiliser les événements d'agenda, il faut ajouter 1 ou plusieurs id d'agenda.
| |
| − | Pour chaque ID calendar ajouté, les périodes correspondantes seront prises en compte
| |
| − |
| |
| − | <source lang="php">
| |
| − | $this->whObj->addCalendar($this->idcalendar);
| |
| − | </source>
| |
| − |
| |
| − | Chargement des périodes en mémoire :
| |
| − | <source lang="php">
| |
| − | $this->whObj->createPeriods(BAB_PERIOD_NWDAY | BAB_PERIOD_WORKING | BAB_PERIOD_VACATION | BAB_PERIOD_CALEVENT);
| |
| − | </source>
| |
| − | Cette fonction va chercher les informations dans toutes les tables correspondantes aux types de périodes spécifiées en paramètres.
| |
| − |
| |
| − | il est possible d'ajouter des périodes à ce moment en utilisant l'événement <code>bab_eventBeforePeriodsCreated</code>
| |
| − |
| |
| − |
| |
| − | <code>orderBoundaries()</code>, fonction à appeler obligatoirement pour préparer les périodes qui doivent être parcourues, les périodes serons indexées par date de début et de fin
| |
| − |
| |
| − | <source lang="php">
| |
| − | $this->whObj->orderBoundaries();
| |
| − | </source>
| |
| − |
| |
| − |
| |
| − | Parcourir les événements ; on peut filtrer sur le type avec le paramètre :
| |
| − |
| |
| − | <source lang="php">
| |
| − | $p = $this->whObj->getNextEvent(BAB_PERIOD_NWDAY | BAB_PERIOD_VACATION | BAB_PERIOD_CALEVENT)
| |
| − | </source>
| |
| − |
| |
| − | récupérer un tableau d'événements, les paramètres de date sont des timestamp pour délimiter la période :
| |
| − |
| |
| − | <source lang="php">
| |
| − | $events = $this->whObj->getEventsBetween(bab_mktime($startdate), bab_mktime($enddate), BAB_PERIOD_NWDAY | BAB_PERIOD_VACATION | BAB_PERIOD_CALEVENT);
| |
| − | </source>
| |
| − |
| |
| − |
| |
| − | Trouver les périodes de disponibilité entre 2 dates, $gap permet de définir la durée minimum des périodes à remonter (en secondes)
| |
| − | Pour ces 2 dernières fonctions, il faut que la période de récupération des infos soit incluse dans la période total qui a été utilisée à la création de l'objet
| |
| − |
| |
| − | <source lang="php">
| |
| − | $freeevents = $whObj->getAvailabilityBetween(bab_mktime($startdate), bab_mktime($enddate), $gap);
| |
| − |
| |
| − | </source>
| |
l'API des agendas permet d'ajouter des agendas externes dans la liste des agendas utilisable des utilisateurs, de même des évènements externes peuvent êtres affichés dans les agendas, les événements pourrons être modifiés ou supprimés avec une gestion des droits d'accès.
depuis la version 7.4.0 d'Ovidentia, cette API permet de manipuler les événements en suivant le standard iCalendar