API des agendas

De OviWiki
Aller à : navigation, rechercher


Information.png Cet article est incomplet. Son contenu est donc à considérer avec précaution.

Voir la liste des articles incomplets


Warning.png Cette API n'est pas utilisable dans les modules pour le moment



Les constantes suivantes peuvent être utilisées :

  • BAB_PERIOD_WORKING périodes travaillées
  • BAB_PERIOD_NONWORKING périodes non-travaillées
  • BAB_PERIOD_NWDAY jours fériés
  • BAB_PERIOD_CALEVENT événements d'agenda
  • BAB_PERIOD_VACATION 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 bab_eventBeforePeriodsCreated


orderBoundaries(), 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>