-
Notifications
You must be signed in to change notification settings - Fork 4
/
example.php
126 lines (109 loc) · 3.68 KB
/
example.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
/**
* Ce fichier est développé pour la gestion de la librairie Mélanie2
* Cette Librairie permet d'accèder aux données sans avoir à implémenter de couche SQL
* Des objets génériques vont permettre d'accèder et de mettre à jour les données
* Ce fichier est un exemple d'utilisation
*
* ORM M2 Copyright © 2017 PNE Annuaire et Messagerie/MEDDE
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package Librairie Mélanie2
* @subpackage Example
* @author PNE Messagerie/Apitech
*
*/
// Configuration du nom de l'application pour l'ORM
if (!defined('CONFIGURATION_APP_LIBM2')) {
define('CONFIGURATION_APP_LIBM2', 'roundcube');
}
// Inclure le fichier includes.php
include_once 'includes/libm2.php';
// Utilisation des namespaces
/*
* Possibilité de faire
* use LibMelanie\Api\Mce;
* au lieu de
* use LibMelanie\Api\Mce\User;
*
* Puis d'utiliser
* $user = new Mce\User();
* pour ne pas mélanger les classes
*
*/
// API
use LibMelanie\Api\Mce\User;
use LibMelanie\Api\Mce\Event;
use LibMelanie\Api\Mce\Task;
use LibMelanie\Api\Mce\Contact;
use LibMelanie\Api\Mce\Addressbook;
use LibMelanie\Api\Mce\Calendar;
use LibMelanie\Api\Mce\Taskslist;
use LibMelanie\Api\Mce\Recurrence;
// Log
use LibMelanie\Log\M2Log;
// Config
use LibMelanie\Config\DefaultConfig;
// Configurer les LOG
$log = function ($message) {
echo "[LibM2] $message \r\n";
};
M2Log::InitDebugLog($log);
M2Log::InitInfoLog($log);
M2Log::InitErrorLog($log);
// Définition d'un utilisateur
$user = new User();
$user->uid = 'julien.test1';
// Définition des conteneurs de l'utilisateur
$addressbook = new Addressbook($user);
$calendar = new Calendar($user);
$taskslist = new Taskslist($user);
// ID des conteneurs
$addressbook->id = 'julien.test1';
$calendar->id = 'julien.test1';
$taskslist->id = 'julien.test1';
// Charger les conteneur
$addressbook->load();
$calendar->load();
$taskslist->load();
// Vérifier les droits
echo $addressbook->asRight(DefaultConfig::READ) ? "addressbook->read OK" : "addressbook->read NOK";
echo $calendar->asRight(DefaultConfig::READ) ? "calendar->read OK" : "calendar->read NOK";
echo $taskslist->asRight(DefaultConfig::READ) ? "taskslist->read OK" : "taskslist->read NOK";
// Récupération d'un objet
$event = new Event($user, $calendar);
$event->uid = 'c2926c54-17af-4753-a614-3589eca2644e';
$event->load();
$task = new Task($user, $taskslist);
$task->uid = 'c2926c54-17af-4753-a614-3589eca2644e';
$task->load();
$contact = new Contact($user, $calendar);
$contact->uid = 'c2926c54-17af-4753-a614-3589eca2644e';
$contact->load();
// Lister tous les objets d'un conteneur
$events = $calendar->getAllEvents();
$tasks = $taskslist->getAllTasks();
$contacts = $addressbook->getAllContacts();
// Modifier un objet
$event->title = "Mon titre d'évènement";
$event->save();
$task->name = "Mon nom de tâche";
$task->save();
$contact->name = "Mon nom de contact";
$contact->save();
// Gestion d'un evenement
$attendees = $event->attendees;
if ($attendees[0]->response == DefaultConfig::ACCEPTED) echo "Attendee accepted";
$event->recurrence->days = [Recurrence::RECURDAYS_MONDAY, Recurrence::RECURDAYS_SUNDAY];