API des agendas : Différence entre versions

De OviWiki
Aller à : navigation, rechercher
 
Ligne 22 : Ligne 22 :
 
$this->whObj->addIdUser($GLOBALS['BAB_SESS_USERID']);
 
$this->whObj->addIdUser($GLOBALS['BAB_SESS_USERID']);
 
</pre>
 
</pre>
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 serons prises en compte
+
pour chaque ID user ajouté, les périodes correspondantes seront prises en compte
 
<pre>
 
<pre>
 
$this->whObj->addCalendar($this->idcalendar);
 
$this->whObj->addCalendar($this->idcalendar);
 
</pre>
 
</pre>
 
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 serons prises en compte
+
pour chaque ID calendar ajouté, les périodes correspondantes seront prises en compte
 
<pre>
 
<pre>
 
$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);
Ligne 37 : Ligne 37 :
 
$this->whObj->orderBoundaries();
 
$this->whObj->orderBoundaries();
 
</pre>
 
</pre>
Fonction  à  appeler  obligatoirement pour préparer les périodes à être parcourues
+
Fonction  à  appeler  obligatoirement pour préparer les périodes qui doivent être parcourues
 
<pre>
 
<pre>
 
$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)
Ligne 46 : Ligne 46 :
 
$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);
 
</pre>
 
</pre>
récupérer un tableau d'événements, les paramètre de date sont des timestamp pour délimiter la période
+
récupérer un tableau d'événements, les paramètres de date sont des timestamp pour délimiter la période
  
 
<pre>
 
<pre>
Ligne 53 : Ligne 53 :
 
</pre>
 
</pre>
  
Trouver les périodes de  disponibilité entre 2 dates, $gap permet de définir la durée minimum des périodes a 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 des 2 dernières fonctions, il faut que  la période de récupération des infos soit incluse dans la période total qui à é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

Version du 8 janvier 2008 à 14:53

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