API des agendas : Différence entre versions

De OviWiki
Aller à : navigation, rechercher
Ligne 7 : Ligne 7 :
  
 
Les constantes suivantes peuvent être utilisées :
 
Les constantes suivantes peuvent être utilisées :
<pre>
+
 
define("BAB_PERIOD_WORKING"        , 1);
+
* <code>BAB_PERIOD_WORKING</code> périodes travaillées
define("BAB_PERIOD_NONWORKING"    , 2);
+
* <code>BAB_PERIOD_NONWORKING</code> périodes non-travaillées
define("BAB_PERIOD_NWDAY"        , 4);
+
* <code>BAB_PERIOD_NWDAY</code> jours fériés
define("BAB_PERIOD_CALEVENT"    , 8);
+
* <code>BAB_PERIOD_CALEVENT</code> événements d'agenda
define("BAB_PERIOD_TSKMGR"        , 16);
+
* <code>BAB_PERIOD_VACATION</code> périodes de congés
define("BAB_PERIOD_VACATION"    , 32);
+
 
</pre>
+
  
  
 
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) :
<pre>
+
<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)
 
         );
 
         );
</pre>
+
</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
<pre>
+
 
$this->whObj->addIdUser($GLOBALS['BAB_SESS_USERID']);
+
 
</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 seront prises en compte
 
Pour chaque ID user ajouté, les périodes correspondantes seront prises en compte
<pre>
+
 
$this->whObj->addCalendar($this->idcalendar);
+
<source lang="php">
</pre>
+
$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
<pre>
+
 
 +
<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);
</pre>
+
</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
  
<pre>
+
 
 +
<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();
</pre>
+
</source>
Fonction  à  appeler  obligatoirement pour préparer les périodes qui doivent être parcourues
+
 
<pre>
+
 
 +
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)
</pre>
+
</source>
parcourir les événements ; on peut filtrer sur le type avec le paramètre
+
 
 +
récupérer un tableau d'événements, les paramètres de date sont des timestamp pour délimiter la période :
  
<pre>
+
<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);
</pre>
+
</source>
récupérer un tableau d'événements, les paramètres de date sont des timestamp pour délimiter la période
+
  
<pre>
 
$freeevents = $whObj->getAvailabilityBetween(bab_mktime($startdate), bab_mktime($enddate), $gap);
 
 
</pre>
 
  
 
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


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


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>