API des agendas : Différence entre versions
m |
|||
| Ligne 1 : | Ligne 1 : | ||
| + | [[Catégorie:API Ovidentia]] | ||
| + | |||
'''Cette API n'est pas utilisable dans les modules pour le moment''' | '''Cette API n'est pas utilisable dans les modules pour le moment''' | ||
Version du 4 novembre 2008 à 15:13
Cette API n'est pas utilisable dans les modules pour le moment
Les constantes suivantes peuvent être utilisées :
define("BAB_PERIOD_WORKING" , 1);
define("BAB_PERIOD_NONWORKING" , 2);
define("BAB_PERIOD_NWDAY" , 4);
define("BAB_PERIOD_CALEVENT" , 8);
define("BAB_PERIOD_TSKMGR" , 16);
define("BAB_PERIOD_VACATION" , 32);
Utiliser l'api pour mélanger les différentes sources d'événements (voir exemple dans utilit/mcalincl.php) :
$this->whObj = new bab_userWorkingHours(
BAB_dateTime::fromIsoDateTime($startdate),
BAB_dateTime::fromIsoDateTime($enddate)
);
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
$this->whObj->addIdUser($GLOBALS['BAB_SESS_USERID']);
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
$this->whObj->addCalendar($this->idcalendar);
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
$this->whObj->createPeriods(BAB_PERIOD_NWDAY | BAB_PERIOD_WORKING | BAB_PERIOD_VACATION | BAB_PERIOD_CALEVENT);
Cette fonction va chercher les informations dans toutes les tables correspondantes aux types de périodes spécifiées en paramètres
$this->whObj->orderBoundaries();
Fonction à appeler obligatoirement pour préparer les périodes qui doivent être parcourues
$p = $this->whObj->getNextEvent(BAB_PERIOD_NWDAY | BAB_PERIOD_VACATION | BAB_PERIOD_CALEVENT)
parcourir les événements ; on peut filtrer sur le type avec le paramètre
$events = $this->whObj->getEventsBetween(bab_mktime($startdate), bab_mktime($enddate), BAB_PERIOD_NWDAY | BAB_PERIOD_VACATION | BAB_PERIOD_CALEVENT);
récupérer un tableau d'événements, les paramètres de date sont des timestamp pour délimiter la période
$freeevents = $whObj->getAvailabilityBetween(bab_mktime($startdate), bab_mktime($enddate), $gap);
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