API des agendas : Différence entre versions

De OviWiki
Aller à : navigation, rechercher
 
(13 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Les constantes suivantes peuvent être utilisées :
+
[[Catégorie:API Ovidentia]]
<pre>
+
{{Incomplet}}
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);
+
</pre>
+
  
  
Utiliser l'api pour mélanger les différentes sources d'événements (voir exemple dans utilit/mcalincl.php) :
+
== Possibilités ==
<pre>
+
$this->whObj = new bab_userWorkingHours(
+
            BAB_dateTime::fromIsoDateTime($startdate),
+
            BAB_dateTime::fromIsoDateTime($enddate)
+
        );
+
</pre>
+
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
+
<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 chaque ID user ajouté, les périodes correspondantes seront prises en compte
+
<pre>
+
$this->whObj->addCalendar($this->idcalendar);
+
</pre>
+
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
+
<pre>
+
$this->whObj->createPeriods(BAB_PERIOD_NWDAY | BAB_PERIOD_WORKING | BAB_PERIOD_VACATION | BAB_PERIOD_CALEVENT);
+
</pre>
+
Cette fonction va chercher les informations dans toutes les tables correspondantes aux types de périodes spécifiées en paramètres
+
  
<pre>
+
l'API des agendas permet d'ajouter des agendas externes dans la liste des agendas utilisable des utilisateurs, de même des évènements externes peuvent êtres affichés dans les agendas, les événements pourrons être modifiés ou supprimés avec une gestion des droits d'accès.
$this->whObj->orderBoundaries();
+
</pre>
+
Fonction  à  appeler  obligatoirement pour préparer les périodes qui doivent être parcourues
+
<pre>
+
$p = $this->whObj->getNextEvent(BAB_PERIOD_NWDAY | BAB_PERIOD_VACATION | BAB_PERIOD_CALEVENT)
+
</pre>
+
parcourir les événements ; on peut filtrer sur le type avec le paramètre
+
  
<pre>
+
depuis la version 7.4.0 d'Ovidentia, cette API permet de manipuler les événements en suivant le standard iCalendar
$events = $this->whObj->getEventsBetween(bab_mktime($startdate), bab_mktime($enddate), BAB_PERIOD_NWDAY | BAB_PERIOD_VACATION | BAB_PERIOD_CALEVENT);
+
</pre>
+
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>
+
== l'API ==
  
Trouver les périodes de disponibilité entre 2 dates, $gap permet de définir la durée minimum des périodes à remonter (en secondes)
+
=== Les objets ===
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
+
 
 +
<code>bab_EventCalendar</code> : Tous les agendas visibles dans l'interface héritent de cet objet, c'est une classe abstraite sur laquelle sont déclarées des méthodes permettant le contrôle des droits d'accès sur l'agenda.
 +
 
 +
<code>bab_PeriodCollection</code> : Les collections sont des ensembles d'événements issues de la même source de donnés, par exemple l'agenda personnel d'ovidentia affiche une collection pour les événements d'agenda et une collection pour les congés, les périodes de congés étant stockées dans le module de gestion de congés. Une collection peut être reliée à un agenda
 +
 
 +
<code>bab_CalendarPeriod</code> : cet objet représente une période visible ou non-visible sur l'agenda. une période est reliée à une collection.
 +
 
 +
=== Les événements ===
 +
 
 +
 
 +
== Ajouter un nouvel agenda ==

Version actuelle en date du 24 août 2010 à 16:45


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

Voir la liste des articles incomplets


Possibilités

l'API des agendas permet d'ajouter des agendas externes dans la liste des agendas utilisable des utilisateurs, de même des évènements externes peuvent êtres affichés dans les agendas, les événements pourrons être modifiés ou supprimés avec une gestion des droits d'accès.

depuis la version 7.4.0 d'Ovidentia, cette API permet de manipuler les événements en suivant le standard iCalendar


l'API

Les objets

bab_EventCalendar : Tous les agendas visibles dans l'interface héritent de cet objet, c'est une classe abstraite sur laquelle sont déclarées des méthodes permettant le contrôle des droits d'accès sur l'agenda.

bab_PeriodCollection : Les collections sont des ensembles d'événements issues de la même source de donnés, par exemple l'agenda personnel d'ovidentia affiche une collection pour les événements d'agenda et une collection pour les congés, les périodes de congés étant stockées dans le module de gestion de congés. Une collection peut être reliée à un agenda

bab_CalendarPeriod : cet objet représente une période visible ou non-visible sur l'agenda. une période est reliée à une collection.

Les événements

Ajouter un nouvel agenda