API des agendas : Différence entre versions
| Ligne 7 : | Ligne 7 : | ||
Les constantes suivantes peuvent être utilisées : | 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) : | 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( | $this->whObj = new bab_userWorkingHours( | ||
BAB_dateTime::fromIsoDateTime($startdate), | BAB_dateTime::fromIsoDateTime($startdate), | ||
BAB_dateTime::fromIsoDateTime($enddate) | 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). | 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 | 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 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 | Pour chaque ID user ajouté, les périodes correspondantes seront prises en compte | ||
| − | < | + | |
| − | $this->whObj-> | + | <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 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 | 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); | $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 | Cette fonction va chercher les informations dans toutes les tables correspondantes aux types de périodes spécifiées en paramètres | ||
| − | < | + | |
| + | <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(); | $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) | $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); | $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) | 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 | 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> | ||
Version du 4 mars 2009 à 08:38
| |
Cet article est incomplet. Son contenu est donc à considérer avec précaution. Voir la liste des articles incomplets |
| |
Cette API n'est pas utilisable dans les modules pour le moment |
Les constantes suivantes peuvent être utilisées :
-
BAB_PERIOD_WORKINGpériodes travaillées -
BAB_PERIOD_NONWORKINGpériodes non-travaillées -
BAB_PERIOD_NWDAYjours fériés -
BAB_PERIOD_CALEVENTévénements d'agenda -
BAB_PERIOD_VACATIONpé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
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>