Projet

Général

Profil

BadgexDesktop » Historique » Version 16

Christophe LEON, 06/09/2013 13:50

1 1 Christophe LEON
h1. Mettre un badge sur xDesktop (2.3)
2 1 Christophe LEON
3 6 Christophe LEON
h2. 1° Définition du type de badge 
4 1 Christophe LEON
5 1 Christophe LEON
La définition du type de badge se passe dans la gestion des profil (/posh-profil)
6 1 Christophe LEON
7 3 Christophe LEON
Lors de cette définition, vous avez la possibilité de définir
8 3 Christophe LEON
* *Le type de badge*: Informations, Attention et erreurs, le type de badge déterminera le type d'icone qui sera affiché
9 3 Christophe LEON
* *Le message* qui sera affiché à droite, juste au dessus du post-it
10 3 Christophe LEON
* *Une url distante* qui permettra de charger des badges dynamiques
11 4 Christophe LEON
12 4 Christophe LEON
+Exemple+
13 4 Christophe LEON
Voici la définition d'un badge sur piwigo
14 4 Christophe LEON
!badge-definition-photo.png!
15 4 Christophe LEON
Voici le résultat
16 4 Christophe LEON
!badge-infos-photo.png!
17 1 Christophe LEON
Vous noterez le *formatage HTML* et le lien *cliquable*
18 6 Christophe LEON
19 15 Christophe LEON
h2. 2° URL distante
20 6 Christophe LEON
21 6 Christophe LEON
Il est possible de définir une url distante qui permettra de récupérer une information qui peut donc être dynamique. comme par exemple le nombre de mail non lu.
22 13 Christophe LEON
Le chargement de l'url peux se faire de deux manières
23 6 Christophe LEON
24 7 Christophe LEON
h3. L'URL retourne un objet json directement
25 8 Christophe LEON
26 7 Christophe LEON
Dans ce cas il est *INDISPENSABLE* que cette url retourne directement un objet json, sans passer par des redirections HTML
27 7 Christophe LEON
pour cela la définition de l'url devra être préfixée par :
28 9 Christophe LEON
29 10 Christophe LEON
    @:http://URL_DU_BADGE/chemin/?parametres@
30 9 Christophe LEON
31 9 Christophe LEON
Cette url devra donc retourner
32 9 Christophe LEON
33 10 Christophe LEON
    @{count:<count>,message:<message>,type:<type>}@
34 1 Christophe LEON
35 10 Christophe LEON
Voici la signification des champs
36 1 Christophe LEON
37 14 Christophe LEON
* *type*: type de message (infos, warning, errors, count)
38 14 Christophe LEON
* *message* : votre message a afficher, laisser a vide si pas de message
39 14 Christophe LEON
* *count*: si c'est de type count, ce paramètre affichera le nombre dans l'info bulle
40 10 Christophe LEON
41 10 Christophe LEON
42 1 Christophe LEON
h3. L'URL doit passer par des redirections pour notamment permettre une authentification.
43 1 Christophe LEON
44 1 Christophe LEON
Dans la méthode précédente, l'appel utilisé est une fonction AJAX qui permet de charger une URL.
45 1 Christophe LEON
Sauf que l'appel d'une fonction AJAX, ne permet pas de suivre les liens de redirection
46 10 Christophe LEON
C'est ce qui se produit notamment lors d'une authentification CAS.
47 10 Christophe LEON
48 11 Christophe LEON
J'ai donc mis en place un mécanisme permettant d'utiliser une iframe avec l'appel d'un callback.
49 11 Christophe LEON
Ce mécanisme permet donc 
50 11 Christophe LEON
* De gérer les redirections http, lors des phases d'authentifications
51 11 Christophe LEON
* D'éviter les Xframe cross scripting inter-domaine, vous noterez donc qu'il est possible d'utiliser un badge sur un domaine différent.
52 11 Christophe LEON
53 10 Christophe LEON
La définition de l'url se fait de manière classique de manière absolue ou relative
54 10 Christophe LEON
55 16 Christophe LEON
    @https://URL_DU_BADGE/chemin/mapage?parametres
56 10 Christophe LEON
ou /chemin/mapage?parametres@
57 1 Christophe LEON
58 16 Christophe LEON
+*NOTE:*+  A cause des problème de mixed-content je vous conseille d'utiliser les liens en https
59 16 Christophe LEON
60 12 Christophe LEON
xDesktop appel cette URL en précisant une url de callback et un id. Avec l'exemple ci-dessus cela nous donne une requête (de xdesktop) vers l'url suivante
61 10 Christophe LEON
62 10 Christophe LEON
    @http://URL_DU_BADGE/chemin/mapage?parametres&callback=<domaine envole>/includes/plugins/plugin_xdesktop/infosplus.php&id=<id interne xdesktop>@
63 10 Christophe LEON
64 10 Christophe LEON
Votre page doit alors rediriger vers l'url de callback en précisant les informations suivantes
65 10 Christophe LEON
66 10 Christophe LEON
* id: id interne xdesktop, que vous avez reçu
67 10 Christophe LEON
* type: type de message (infos, warning, errors, count)
68 10 Christophe LEON
* message : votre message a afficher, laisser a vide si pas de message
69 10 Christophe LEON
* count: si c'est de type count, ce paramètre affichera le nombre dans l'info bulle
70 1 Christophe LEON
* link: pour le moment self permet de rendre le message cliquable
71 10 Christophe LEON
72 16 Christophe LEON
Ces informations peuvent être transmises en POST ou en GET, ainsi dans note exemple ci dessus votre page devra rediriger vers l'url suivante
73 10 Christophe LEON
74 10 Christophe LEON
    @<domaine envole>/includes/plugins/plugin_xdesktop/infosplus.php?id=123456&type=count&count=3&message=3%20messages@
75 10 Christophe LEON
 
76 10 Christophe LEON