You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2018-02-16 10:46:21

serviceit
Member
Registered: 2018-02-12
Posts: 13

Barcode et GenericObject

Bonjour,
je voulais partager une astuce pour pouvoir utiliser le plugin barcode avec les objets créés par le plugin GenericObjet. Alors peut -être qu'il ya plus simple en modifier le code mais ne connaissant pas le php.
Voilà la marche à suivre :
- créer d'abord vos nouveaux types avec generic object
- aller dans le fichier Hook.php sous plugins/barcode/
- ajouter les lignes,  par exemple, case 'PluginGenericobjectVehicule' comme ci-dessous
Ceci permet d'avoir les mass actions du plugin barcode pour les nouveaux types d'objets

// Define actions :
function plugin_barcode_MassiveActions($type) {

   switch ($type) {
      // New action for core and other plugin types : name = plugin_PLUGINNAME_actionname
      case 'Computer' :
      case 'Monitor' :
      case 'NetworkEquipment' :
      case 'Printer' :
      case 'Peripheral' :
      case 'Phone' :
      case 'PluginGenericobjectVehicule' :
      case 'PluginGenericobjectOutillage' :
      case 'PluginGenericobjectTvhifi' :
      case 'PluginGenericobjectMedicalesoin' :
      case 'PluginGenericobjectElectromenager' :
      case 'PluginGenericobjectMobilier' :

         return ["PluginBarcodeBarcode".MassiveAction::CLASS_ACTION_SEPARATOR.'Generate'
                    => __('Barcode', 'barcode')." - ".__('Print barcodes', 'barcode'),
                 "PluginBarcodeQRcode".MassiveAction::CLASS_ACTION_SEPARATOR.'Generate'
                    => __('Barcode', 'barcode')." - ".__('Print QRcodes', 'barcode')
                ];

Il reste un pb qd j'édite le QRcode d'un nouvel objet, l'url n'est pas bonne.
Elle est sous la forme "https://<serveur>/plugins/genericobject/front/electromenager.form.php?id=79"
au lieu de "https://<serveur>/plugins/genericobject/front/object.form.php?itemtype=PluginGenericobjectElectromenager?id=79"
C'est sûrement là qu'une modif est à faire ds le code du plugin Barcode mais je suis passé par un rewrite au niveau d'apache.
Lignes à ajouter dans le fichier du virtualhost de GLPI sous la balise directory :

Options FollowSymLinks
Rewriteengine on
RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule ^plugins/genericobject/front/electromenager.form.php$ https://<serveur>/plugins/genericobject/front/object.form.php?itemtype=PluginGenericobjectElectromenager&id=%1 [NE]
RewriteRule ^plugins/genericobject/front/vehicule.form.php$ https://<serveur>/plugins/genericobject/front/object.form.php?itemtype=PluginGenericobjectVehicule&id=%1 [NE]
...

<serveur> = est a remplacer par l'adresse DNS/IP de votre GLPI
[NE] permet de garder les caractères spéciaux (?,&) dans l'url de destination
Je n'ai pas pu passer le type (electromenager, vehicule...) en variable pour des pb de majuscule

voilà si ça peut dépanner

Mise à jour :
J'ai ajouté l'adresse complète sur l'url cible sinon on arrive sur un nouvel objet et non sur l'objet visé.

Last edited by serviceit (2018-07-24 15:25:04)

Offline

Board footer

Powered by FluxBB