Fr Plugin072to078 » History » Version 29

« Previous - Version 29/67 (diff) - Next » - Current version
remi, 11/09/2009 07:48 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

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.

getSearchOptions

Cette nouvelle méthode doit retourner les options de recherche pour le type courant.

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

Liste alphabétique :

Ancienne fonction Alternative
addDeviceDocument() DocumentItem->add()
addDeviceContract() ContractItem->add()
cleanCache();
dropdownRequestType(...); dropdownValue('glpi_requesttypes', ...)
getDocumentLink() Document->getDownloadLink()
getRequestTypeName(...) getDropdownName('glpi_requesttypes',...)
getContractSuppliers() Contract->getSuppliersNames()
showContractAssociated() Contract::showAssociated()
showDocumentAssociated() Document::showAssociated()
showSaveBookmarkButton(...) Bookmark::showSaveButton(...)

Classes renommées

Enterprise => Supplier

HOOK supprimés

  • plugin_example_getAddSearchOption() : remplacé par la méthode getSearchOptions du type et le hook plugin_example_getAddSearchOptions

HOOK ajoutés

  • plugin_example_getAddSearchOptions($itemtype) retourne les options de recherche ajoutées par le plugin aux types existants

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)