Fr Plugin083to084

divers

GLPI utilise désormais l'extension mysqli. Aucune fonction mysql_* ne doit donc être appelée directement. Dans tous les cas il est préférable de passer par les méthodes de $DB.

Changement des appels de constantes

CSV_OUTPUT                     =>  Search::CSV_OUTPUT
FIRSTNAME_BEFORE => User::FIRSTNAME_BEFORE
GLOBAL_SEARCH => Search:GLOBAL_SEARCH
GLOBAL_SEARCH_ DISPLAY_COUNT => Search::GLOBAL_DISPLAY_COUNT
HELPDESK_ALL_HARDWARE => Ticket::HELPDESK_ALL_HARDWARE
HELPDESK_MY_HARDWARE => Ticket::HELPDESK_MY_HARDWARE
HTML_OUTPUT => Search:: HTML_OUTPUT
PDF_OUTPUT_LANDSCAPE => Search:: PDF_OUTPUT_LANDSCAPE
PDF_OUTPUT_PORTRAIT => Search:: PDF_OUTPUT_PORTRAIT
REALNAME_BEFORE => User::REALNAME_BEFORE
SYLK_OUTPUT => Search::SYLK_OUTPUT
Ticket::REQUESTER              => CommonITILActor::REQUESTER
Ticket::OBSERVER => CommonITILActor::OBSERVER
Ticket::ASSIGN => CommonITILActor::ASSIGN

Changement des statuts

Les constantes sont définies dans CommonITILObject, mais il est préférable d'utiliser les fonctions définies dans l'objet
(getNewStatutArray(), getSolvedStatut()...)

new     => INCOMING
assign => ASSIGNED
plan => PLANNED
waiting => WAITING
solved => SOLVED
closed => CLOSED
accepted => ACCEPTED
observe => OBSERVED

GLPI_ROOT

Il n'est plus nécessaire de définir la constante GLPI_ROOT dans chaque page, c'est désormais définis dans includes.php

Donc au lieu de

define('GLPI_ROOT', '../../..');
include (GLPI_ROOT . "/inc/includes.php");

Il suffit de faire :
include ('../../../inc/includes.php');

Hook supprimés

  • headings
  • headings_action

Voir Migration 0.80 vers 0.83 (Définition des onglets)

Tables supprimées

  • glpi_entitydatas => champs repris dans la table glpi_entities

Fonctions supprimées

  • Toutes les fonctions utiles de la class Entitydata ont été reprises dans la class Entity
  • ShowNotesForm (class Entity)
  • Dropdown::dropdownTypes($name, $value='', $types=array(), $used=array()) => Dropdown::showItemTypes($name, $types=array(), $options=array())

Fonctions ajoutées

  • CommonDBTM::initForm($ID, $options) : permet la chargement de l'item, le controle des droits, et éventuellement la récupération des données sauvegardées (échec de l'ajout précedent). A utiliser en début du showForm()
  • $DB->escape($str) doit être impérativement utilisé à la place des fonctions mysql_escape_string ou mysql_real_escape_string

Fonctions modifiées

  • La fonction showFormHelpdesk de la class Ticket n'est plus une fonction statique
  • changement de prototype de getName / getNameID et getLink. Ajout getNameField / getCompleteNameField / getPreAdditionalInfosForName / getPostAdditionalInfosForName
  • Fonctions obligatoirement statiques : getIndexName(), canCreate(), canView()
  • Dropdown::show('Class1',..) peut remplacé par Class1::dropdown

Enregistrement d'un événement géré par le plugin sur un objet du coeur

Enregistrement

$changes = array(0, "old value", "new value");
Log::history($items_id, $itemtype, $changes, $pluginitemtype, $action);

$itemtype + items_id => référence de l'objet concerné
$changes => changements
$pluginitemtype => le nom de la classe qui gère l'affichage (qui implémente la méthode getHistoryEntry)
$action => numéro de l'action, doit être >= Log::HISTORY_PLUGIN

Affichage

La méthode qui gère l'affichage doit implémenter la méthode getHistoryEntry, qui reçoit en entrée les données de la table glpi_logs et doit fournir la libellé du changement.

static function getHistoryEntry($data);

Example : https://forge.indepnet.net/projects/example/repository/revisions/192