Fr Plugin072to078 » History » Version 12

« Previous - Version 12/67 (diff) - Next » - Current version
remi, 09/12/2009 03:00 PM


Migration d'un plugin de GLPI 0.72 vers 0.80

ATTENTION ce document n'est qu'un mémo de ce qui change dans la version développement de GLPI.

Database

CleanDB

Le coeur a subi d'importantes modification au niveau base de données :

https://forge.indepnet.net/wiki/glpi/CleanDbStudy

CommonDBTM

showFormHeader

Nouveau prototype :

function showFormHeader ($target, $ID, $withtemplate='', $colspan=1)

Nouveau fonctionnement :
  • ouverture des <form, <div (tabsbody) et <table (tab_cadre_fixe)
  • champs cachés : is_template et entities_id

Conseil : à utiliser conjointement avec showFormHeader

showFormButtons

Nouvelle fonction (factorisation du code)

function showFormButtons ($ID, $withtemplate='', $colspan=1)
Fonctionnement :
  • fermeture des <form, <div et <table
  • champs cachés : id

can / check

Nouveau prototype

function can($ID,$right,&$input=NULL)
function check($ID,$right,&$input=NULL)

Le paramètre $input, uniquement requis lors d'un ajout, attend les valeurs à ajouter (souvent le $_POST) et pas uniquement l'entité cible.

cleanDBonPurge

La méthode par défaut fournie par le coeur nettoie les enregistrements liés des tables
  • glpi_contracts_items
  • glpi_infocoms
  • glpi_networkports
  • glpi_reservationsitems
  • etc.. (à vérifier)

Si vous surchargez la classe, il faut penser, pour profiter de cet automatisme à appeler

parent::cleanDBonPurge($ID);

Variables de session

$_SESSION["glpiview_ID"] remplacé par $_SESSION["glpiis_ids_visible"] 

Utilisation Mbstring pour gérer UTF8

substr remplacé par utf8_substr

Configuration

$CFG_GLPI["mailing"] remplacé par $CFG_GLPI["use_mailing"]

fonctions supprimées

cleanCache();

Tâche planifiée

Le hook 'cron' n'est plus utilisé

Lors de l'installation un plugin peut enregistrer une tâche en utilisant

   CronTask::Register('pluginame', 'taskname', DAY_TIMESTAMP, array('param'=>50));

La suppression est automatiquement réalisée par le coeur lors de la désinstallation du plugin.

Il devrait ensuite fournir 1 fonction

function plugin_example_cron_info($name)

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)

Et pour chaque tâche, une fonction d'exécution

function plugin_example_cron_sample_run($task)

L'objet $task permet d'enregistrer des évenements ($task->log) et des statistiques ($task->add/setVolume)
Le code retour doit être : 0 (rien à faire), >0 (terminé) ou <0 (à continuer)