Fr Plugin072to078 » History » Version 18

« Previous - Version 18/67 (diff) - Next » - Current version
remi, 09/20/2009 10:08 AM


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

Les méthodes fournies par le coeur (cleanRelationData/cleanRelationTable) nettoient les enregistrements liés des tables lors de la suppression d'un objet.
  • glpi_contracts_items (if registered in 'contract_types')
  • glpi_documents_items (doc_types)
  • glpi_infocoms (infocom_types)
  • glpi_networkports (netport_types)
  • glpi_reservationsitems (reservation_types)
  • glpi_tickets (helpdesk_types)
  • etc.. (à vérifier)

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.

Variables de session

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

Utilisation Mbstring pour gérer UTF8

substr remplacé par utf8_substr

utf8_decode remplacé par decodeFromUtf8

utf8_encode remplacé par encodeFromUtf8

strtolower remplacé par utf8_strtolower

strtoupper remplacé par utf8_strtoupper

Configuration

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

Fonctions supprimées

cleanCache();

Fonctions modifiées

0.72
getDocumentLink($filename, $params, $len);

0.80
getDocumentLink($id, $params, $len);
$document->getDownloadLink($params, $len);

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)