You are not logged in.
Pages: 1
Topic closed
Bonjour,
Dans le plugin pdf, on peut choisir de faire apparaitre la liste des éléments utilisés.
Dans cette liste, comment puis-je faire pour faire apparaitre le modèle du matériel ?
La codification des modèles faisant appelle à une table différente pour chaque famille :
glpi_computermodels pour les ordinateurs,
glpi_monitormodels pour les moniteurs,
glpi_peripheralmodels pour les périphériques,
glpi_printermodels pour les imprimantes
J'ai bien vu que cela ce passe au niveau de :
$pdf->displayLine($item->getTypeName(1),
Dropdown::getDropdownName("glpi_entities", $data["entities_id"]),
$name, isset($data["serial"]) ? $data["serial"] : '',
isset($data["otherserial"]) ? $data["otherserial"] : '',
isset($data["states_id"])
? Dropdown::getDropdownName("glpi_states", $data['states_id'])
: '',
$linktype);
dans le script mais je ne vois pas comment faire
Merci pour votre aide
Last edited by bruno.desmet (2021-04-19 08:39:12)
En Prod : Windows Server 2016 IIS PHP 7.3.4 MySQL Enterprise Server 8.0.17 GLPI 9.4.6 75 entités 18603 postes 19031 Moniteurs 739 imprimantes 11278 périphériques pour 12223 utilisateurs plugins : injection de fichier, impression pdf, rapports
Offline
L'impression PDF correspond généralement à l'affichage dans GLPI.
Là on recherche dans chaque objet le champ users_id ou users_id_tech pour savoir si c'est un élément utilisé ou géré et l'affichage se fait à la volée.
Dans votre demande, il faudrait vérifier pour chaque objet si il a une table des modèles et rechercher le modèle de chaque objet.
Donc, faire une boucle dans une boucle... et il n'y a pas que les 4 types d'objet que vous mentionnez
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour,
J'ai fait quelques recherches sur le net.
Esct ce que ce genre de chose pourrait marcher :
$types = ['Computer', 'Monitor', 'NetworkEquipment', 'Phone', 'Printer'];
foreach ($types as $type) {
$item = new $type();
$linktype = "";
if ($data[$field_user] == $ID) {
$linktype = User::getTypeName(1);
}
/*$pdf->displayLine($item->getTypeName(1),
Dropdown::getDropdownName("glpi_entities", $data["entities_id"]),
$name, isset($data["serial"]) ? $data["serial"] : '',
isset($data["otherserial"]) ? $data["otherserial"] : '',
isset($data["states_id"])
? Dropdown::getDropdownName("glpi_states", $data['states_id'])
: '',
$linktype);
*/
/* avant modif test sur type matériel
$pdf->displayLine($item->getTypeName(1)
,Dropdown::getDropdownName("glpi_entities",$data["entities_id"])
,$name
,isset($data["serial"]) ? $data["serial"] : ''
,isset($data["otherserial"]) ? $data["otherserial"] : ''
,isset($data["states_id"]) ? Dropdown::getDropdownName("glpi_states", $data['states_id']) : ''
,isset($data["locations_id"]) ? Dropdown::getDropdownName("glpi_locations", $data['locations_id']) : ''
,isset($data[[$item->getTable().]) ? Dropdown::getDropdownName("glpi_computermodels", $data[[$item->getTable().]) : ''
,$linktype);
*/
....
Merci de vous intéresser à mon problème
En Prod : Windows Server 2016 IIS PHP 7.3.4 MySQL Enterprise Server 8.0.17 GLPI 9.4.6 75 entités 18603 postes 19031 Moniteurs 739 imprimantes 11278 périphériques pour 12223 utilisateurs plugins : injection de fichier, impression pdf, rapports
Offline
Solution trouvée en intégrant un test sur le type de donnée récupérée
....
if (isset($data["computermodels_id"]))
....
En Prod : Windows Server 2016 IIS PHP 7.3.4 MySQL Enterprise Server 8.0.17 GLPI 9.4.6 75 entités 18603 postes 19031 Moniteurs 739 imprimantes 11278 périphériques pour 12223 utilisateurs plugins : injection de fichier, impression pdf, rapports
Offline
Pages: 1
Topic closed