Академический Документы
Профессиональный Документы
Культура Документы
Plugin Reports
Créer un rapport
Le plugin Reports de GLPI permet, via l’ajout d’un fichier PHP et d’un ou plusieurs fichiers de
langue associés, de créer facilement des rapports. Ce tutoriel a pour but d’expliquer la méthode de création
d’un rapport.
Prenons l’exemple d’un rapport qui dresserait la liste des ordinateurs sous contrat avec une date de
début d’utilisation paramétrable, nous l’appellerons « historiquedescontrats ». Il sera disponible en français
et en anglais.
+ historiquedescontrats
historiquedescontrats.php
historiquedescontrats.fr_FR.php
historiquedescontrats.en_GB.php
Le fichier principal est historiquedescontrats.php, c’est lui qui contient la requête à exécuter. Pour
fonctionner, il a besoin d’au moins un fichier de langue. Dans notre cas, nous en avons deux.
Tous ces fichiers sont placés dans un dossier qui porte le même nom que le rapport. Ce qui nous donne
l’arborescence suivante :
1) Déclarations obligatoires:
Ces déclarations sont nécessaires à GLPI. Elles permettent d’initialiser les variables globales et
d’inclure le fichier de configuration.
Code :
$NEEDED_ITEMS = array("search");
$USEDBREPLICATE = 1;
$DBCONNECTION_REQUIRED = 0;
define('GLPI_ROOT', '../../../..');
include (GLPI_ROOT . "/inc/includes.php");
Le rapport doit être instancié pour pourvoir hériter des méthodes déjà implémentées.
Code :
Le plugin Reports permet d’ajouter des critères de recherche pour un rapport donné. Ces critères
doivent être déclarés avant la requête.
new DateIntervalCriteria($report,"glpi_contracts.begin_date");
$report->displayCriteriasForm($_SERVER['PHP_SELF']);
new DateIntervalCriteria($report,"glpi_contracts.begin_date");
new StringCriteria($report,"name");
$report->displayCriteriasForm($_SERVER['PHP_SELF']);
Il est nécessaire de déclarer toutes les colonnes qui seront retournées par la requête. Ces colonnes
doivent avoir le même nom que celui utilisé dans la requête. Si la colonne de la table n’a pas un nom assez
explicite, il peut être utile de la renommer via un alias (SELECT monChamp AS champ)
if ($report->criteriasValidated())
{
$report->setColumnsNames(array( 'serial' => "Numéro de série",
'name' => 'Nom',
'ID' => 'ID'));
La requête est écrite tout simplement sous la forme d’une chaîne de caractères associée à une
variable.
Ces deux lignes permettent d’enregistrer la requête dans l’attribut de la classe et d’exécuter la
requête.
$report->setSqlRequest($query);
$report->execute();
}
Remarque : L’accolade fermante est présente pour fermer celle qui a été ouverte au paragraphe 5-
Déclaration des colonnes
$report->setSqlRequest($query);
$report->execute();
Les fichiers de langue doivent contenir au moins cette ligne, elle indique le nom du rapport. Il faut
ajouter ensuite autant de ligne qu’il y a de texte traductible dans le rapport.
testcount.fr_FR.php
testcount.en_GB.php
Il est possible d’ajouter d’autres lignes qui seront susceptibles d’être traduites en plusieurs langues.
1. Code :
Voici le fichier tel qu’il doit être à la fin du tutoriel. Ce fichier prend en compte les critères utilisés
tout au long du tutoriel.
Code :
$NEEDED_ITEMS = array("search");
$USEDBREPLICATE = 1;
$DBCONNECTION_REQUIRED = 0;
define('GLPI_ROOT', '../../../..');
include (GLPI_ROOT . "/inc/includes.php");
if ($report->criteriasValidated())
{
$report->setColumnsNames(array( 'serial' => "Numéro de série",
'name' => 'Nom',
'ID' => 'ID'));
$report->setSqlRequest($query);
$report->execute();
}
Le tutoriel est terminé, il a permit d’expliquer comment utiliser le plugin Reports afin de pouvoir
créer des rapports personnalisés. Il faut noter que GLPI est en constante évolution et que par conséquent, le
plugin ainsi que ses méthodes sont susceptibles de changer.