Fr Plugin072to078 » History » Version 19

remi, 09/20/2009 10:08 AM

1 1 remi
h1. Migration d'un plugin de GLPI 0.72 vers 0.80
2 1 remi
3 4 remi
{{toc}}
4 4 remi
5 1 remi
ATTENTION ce document n'est qu'un mémo de ce qui change dans la version développement de GLPI.
6 1 remi
7 5 remi
h2. Database
8 5 remi
9 2 tsmr
h3. CleanDB
10 1 remi
11 2 tsmr
Le coeur a subi d'importantes modification au niveau base de données :
12 2 tsmr
13 2 tsmr
https://forge.indepnet.net/wiki/glpi/CleanDbStudy
14 2 tsmr
15 5 remi
h2. CommonDBTM
16 5 remi
17 1 remi
h3. showFormHeader
18 1 remi
19 1 remi
Nouveau prototype :
20 1 remi
<pre>
21 1 remi
function showFormHeader ($target, $ID, $withtemplate='', $colspan=1)
22 1 remi
</pre>
23 1 remi
24 1 remi
Nouveau fonctionnement :
25 1 remi
* ouverture des <form, <div (tabsbody) et <table (tab_cadre_fixe)
26 1 remi
* champs cachés : is_template et entities_id
27 1 remi
28 1 remi
Conseil : à utiliser conjointement avec showFormHeader
29 1 remi
30 2 tsmr
h3. showFormButtons
31 1 remi
32 1 remi
Nouvelle fonction (factorisation du code)
33 1 remi
34 1 remi
<pre>
35 1 remi
function showFormButtons ($ID, $withtemplate='', $colspan=1)
36 1 remi
</pre>
37 1 remi
38 1 remi
Fonctionnement :
39 1 remi
* fermeture des <form, <div et <table
40 1 remi
* champs cachés : id
41 2 tsmr
42 3 remi
h3. can / check
43 3 remi
44 3 remi
Nouveau prototype
45 3 remi
46 3 remi
<pre>
47 3 remi
function can($ID,$right,&$input=NULL)
48 3 remi
function check($ID,$right,&$input=NULL)
49 3 remi
</pre>
50 3 remi
51 3 remi
Le paramètre $input, uniquement requis lors d'un ajout, attend les valeurs à ajouter (souvent le $_POST) et pas uniquement l'entité cible.
52 1 remi
53 12 remi
h3. cleanDBonPurge
54 11 remi
55 15 remi
Les méthodes fournies par le coeur (cleanRelationData/cleanRelationTable) nettoient les enregistrements liés des tables lors de la suppression d'un objet.
56 14 remi
* glpi_contracts_items (if registered in 'contract_types')
57 14 remi
* glpi_documents_items (doc_types)
58 14 remi
* glpi_infocoms (infocom_types)
59 14 remi
* glpi_networkports (netport_types)
60 14 remi
* glpi_reservationsitems (reservation_types)
61 14 remi
* glpi_tickets (helpdesk_types)
62 11 remi
* etc.. (à vérifier)
63 11 remi
64 16 remi
Il n'est donc plus utile de le prévoir dans la méthode *cleanDBonPurge* du type, mais de s'assurer de l'enrichissement des tableaux lors du *registerPluginType*.
65 11 remi
66 11 remi
67 8 tsmr
h2. Variables de session
68 2 tsmr
69 2 tsmr
<pre>
70 2 tsmr
$_SESSION["glpiview_ID"] remplacé par $_SESSION["glpiis_ids_visible"] 
71 2 tsmr
</pre>
72 1 remi
73 8 tsmr
h2. Utilisation Mbstring pour gérer UTF8
74 7 tsmr
75 6 tsmr
<pre>
76 1 remi
substr remplacé par utf8_substr
77 9 tsmr
</pre>
78 17 tsmr
<pre>
79 17 tsmr
utf8_decode remplacé par decodeFromUtf8
80 17 tsmr
</pre>
81 17 tsmr
<pre>
82 17 tsmr
utf8_encode remplacé par encodeFromUtf8
83 17 tsmr
</pre>
84 17 tsmr
<pre>
85 17 tsmr
strtolower remplacé par utf8_strtolower
86 17 tsmr
</pre>
87 17 tsmr
<pre>
88 17 tsmr
strtoupper remplacé par utf8_strtoupper
89 17 tsmr
</pre>
90 9 tsmr
91 9 tsmr
h2. Configuration
92 9 tsmr
93 9 tsmr
<pre>
94 9 tsmr
$CFG_GLPI["mailing"] remplacé par $CFG_GLPI["use_mailing"]
95 6 tsmr
</pre>
96 10 tsmr
97 18 remi
h2. Fonctions supprimées
98 1 remi
99 18 remi
<pre>
100 1 remi
cleanCache();
101 18 remi
</pre>
102 18 remi
103 18 remi
h2. Fonctions modifiées
104 18 remi
105 19 remi
*0.72*
106 19 remi
<pre>
107 1 remi
getDocumentLink($filename, $params, $len);
108 19 remi
</pre>
109 1 remi
110 19 remi
*0.80*
111 19 remi
<pre>
112 1 remi
getDocumentLink($id, $params, $len);
113 18 remi
$document->getDownloadLink($params, $len);
114 19 remi
</pre>
115 12 remi
116 12 remi
h2. Tâche planifiée
117 12 remi
118 12 remi
Le hook *'cron'* n'est plus utilisé
119 12 remi
120 12 remi
Lors de l'installation un plugin peut enregistrer une tâche en utilisant
121 12 remi
<pre>
122 12 remi
   CronTask::Register('pluginame', 'taskname', DAY_TIMESTAMP, array('param'=>50));
123 12 remi
</pre>
124 12 remi
La suppression est automatiquement réalisée par le coeur lors de la désinstallation du plugin.
125 12 remi
126 12 remi
Il devrait ensuite fournir 1 fonction
127 12 remi
<pre>
128 12 remi
function plugin_example_cron_info($name)
129 12 remi
</pre>
130 12 remi
Qui retourne un tableau à 2 entrées pour la tâche $name comprenant 'description' (description localisée de la tâche) et 'parameter' (optionnel, description localisée du paramètre)
131 12 remi
132 12 remi
Et pour chaque tâche, une fonction d'exécution
133 12 remi
<pre>
134 12 remi
function plugin_example_cron_sample_run($task)
135 12 remi
</pre>
136 12 remi
L'objet $task permet d'enregistrer des évenements ($task->log) et des statistiques ($task->add/setVolume)
137 12 remi
Le code retour doit être : 0 (rien à faire), >0 (terminé) ou <0 (à continuer)