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 2023-06-29 12:29:38

weedakris
Member
Registered: 2023-06-29
Posts: 1

BareCode QRCode Problème

Bonjour,

J'ai effectué de nombreuses recherches avant de poster mais je ne trouve pas de solution. Je n'arrive pas à générer de QRCode avec la fonction massiveaction.php j'ai une page blanche, en mode debug j'ai l'erreur suivante :


Uncaught Exception Error: Call to undefined method QRcode::png() in /home2/xxx/xxxx/public/marketplace/barcode/inc/qrcode.class.php at line 159

Merci pour votre aide


Hébergement mutualisé O2SWITCH

Information serveur :

Operating system: Linux cafe.o2switch.net 4.18.0-425.19.2.lve.el7h.x86_64 #1 SMP Thu Apr 6 13:40:55 UTC 2023 x86_64
PHP 7.4.33 litespeed (Core, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, bcmath, bz2, calendar, ctype, curl, date, dom,
	exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, imagick, imap, intl, json, ldap, libxml, litespeed, mbstring,
	mysqli, mysqlnd, openssl, pcntl, pcre, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, posix, readline, session, shmop, soap, sockets,
	sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xml, xmlreader, xmlrpc, xmlwriter, xsl, zip, zlib)
Setup: max_execution_time="360" memory_limit="512M" post_max_size="512M" safe_mode="" session.save_handler="files"
	upload_max_filesize="512M" 
Software: Apache ()
	Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Server Software: MariaDB Server
	Server Version: 10.6.14-MariaDB
	Server SQL Mode: 
	Parameters: xxxxxx@localhost/xxxxxx
	Host info: Localhost via UNIX socket
	
PHP version (7.4.33) is supported.PHP version (7.4.33) is supported.
Sessions configuration is OK.Sessions configuration is OK.
Allocated memory is sufficient.Allocated memory is sufficient.
mysqli extension is installed.mysqli extension is installed.
Following extensions are installed: dom, fileinfo, json, simplexml.Following extensions are installed: dom, fileinfo, json, simplexml.
curl extension is installed.curl extension is installed.
gd extension is installed.gd extension is installed.
intl extension is installed.intl extension is installed.
libxml extension is installed.libxml extension is installed.
zlib extension is installed.zlib extension is installed.
The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.
Database engine version (10.6.14) is supported.Database engine version (10.6.14) is supported.
No files from previous GLPI version detected.No files from previous GLPI version detected.
The log file has been created successfully.The log file has been created successfully.

PHP 7.4 official support has ended. An upgrade to a more recent PHP version is recommended.PHP 7.4 official support has ended. An upgrade to a more recent PHP version is recommended.
Web server root directory configuration seems safe.Web server root directory configuration seems safe.
PHP directive "session.cookie_secure" should be set to "on" when GLPI can be accessed on HTTPS protocol. PHP directive "session.cookie_httponly" should be set to "on" to prevent client-side script to access cookie values.PHP directive "session.cookie_secure" should be set to "on" when GLPI can be accessed on HTTPS protocol.
PHP directive "session.cookie_httponly" should be set to "on" to prevent client-side script to access cookie values.
OS and PHP are relying on 64 bits integers.OS and PHP are relying on 64 bits integers.
exif extension is installed.exif extension is installed.
ldap extension is installed.ldap extension is installed.
openssl extension is installed.openssl extension is installed.
Following extensions are installed: bz2, Phar, zip.Following extensions are installed: bz2, Phar, zip.
Zend OPcache extension is installed.Zend OPcache extension is installed.
Following extensions are installed: ctype, iconv, mbstring. Following extensions are not present: sodium.Following extensions are installed: ctype, iconv, mbstring.
Following extensions are not present: sodium.
Write access to /home2/xxxxx/xxxxxxxxx/public/marketplace has been validated.Write access to /home2/xxx/xxxxr/public/marketplace has been validated.
Access to timezone database (mysql) is not allowed.Access to timezone database (mysql) is not allowed.

Offline

#2 2024-04-05 14:42:30

marcori
Member
From: LAVAL
Registered: 2007-06-21
Posts: 42
Website

Re: BareCode QRCode Problème

Bonjour communauté de GLPI,
Je rencontre le même problème que @weedakris, mais avec une version de GLPI plus récente (10.0.14) et sur le même hébergement (O2Switch).
J'ai complété sur le Github du plugin cette demande :
https://github.com/pluginsGLPI/barcode/issues/125

Je me dit que l'auteur "chrishablet" de la déclaration de cette "Issue" n'est personne d'autre que @weedakris puisque le même contenu de ticket a été effectué le même jour...

Quoi qu'il en soit, vu que personne ne rencontre cette problématique sur ce forum, je me dit que c'est un contexte spécifique à l'environnement de O2Switch. Certes, mais lequel ?
Est-ce que quelqu'un dans la communauté a rencontré le même problème ?
S'il vient encore traîner ici bas, comment @weedakris a t'il fait pour dépanner ou contourner ce problème ?

Merci de votre lecture et de l'intérêt que vous portez à cette question.

Marc-Henri


Marc-Henri PAMISEUX - Maine Services Informatique
Intégrateur de solutions Libre - Être Libre, c'est choisir.

Offline

#3 2024-04-05 22:14:52

marcori
Member
From: LAVAL
Registered: 2007-06-21
Posts: 42
Website

Re: BareCode QRCode Problème

A mon sens, il existe un autre problème avec le code de ce plugin : il n'a pas été mis à jour depuis longtemps. La dernière release 2.7.1 date du 18/07/2022 (https://github.com/pluginsGLPI/barcode/tree/2.7.1). Savez-vous si quelqu'un continue de maintenir ce plugin ?


Marc-Henri PAMISEUX - Maine Services Informatique
Intégrateur de solutions Libre - Être Libre, c'est choisir.

Offline

#4 2024-05-14 22:33:04

marcori
Member
From: LAVAL
Registered: 2007-06-21
Posts: 42
Website

Re: BareCode QRCode Problème

Je renouvelle mes demandes.
Sur le Github du projet Barcode, j'ai écrit ceci :
------------------------------------------------
Je rencontre le même type de message d'erreur :

[2024-03-18 17:21:49] glpiphplog.CRITICAL: *** Uncaught Exception Error: Call to undefined method QRcode::png() in /var/www/glpi-10.0.14/plugins/barcode/inc/qrcode.class.php at line 159
Backtrace :
plugins/barcode/inc/qrcode.class.php:381 PluginBarcodeQRcode->generateQRcode()
src/MassiveAction.php:1420 PluginBarcodeQRcode::processMassiveActionsForOneItemtype()
src/MassiveAction.php:1398 MassiveAction->processForSeveralItemtypes()
front/massiveaction.php:62 MassiveAction->process()
public/index.php:82 require()


Voici, le contenu de la ligne 159 de ce fichier "barcode/inc/qrcode.class.php" :
QRcode::png($codeContents, GLPI_PLUGIN_DOC_DIR.'/barcode/tmp'.$rand.'-'.$number.'.png', QR_ECLEVEL_L, 4);

Il s'avère qu'après quelques recherches, je trouve la méthode QRcode::png dans le fichier suivant :

barcode/vendor/deltalab/phpqrcode/qrencode.php (ligne 283)

Dès lors que l'erreur est "Call to undefined method QRcode::png()", cela signifie que le fichier barcode/vendor/deltalab/phpqrcode/qrencode.php n'a pas été chargé par le ClassLoader.

Je confirme ce diagnostic puisque juste avant le chargement de la méthode QRcode::png(), j'ai invoqué un test du type "if (!class_exists('QRcode', false)) {..." et cette condition est VRAI (donc la classe n'est pas chargée).
------------------------------------------------

Il y a 3 jours, EngelenH a répondu à ma demande en m'indiquant grosso modo que je ferai mieux de changer de classe car "deltalab/phpqrcode" date de trop longtemps.
Euh... Comment dire... Je partais dans l'idée de faire un peu de Debug, pas de refondre l'ensemble du plugin barcode !

Est-ce que quelqu'un utilise barcode ?
Est-ce que quelqu'un sait comment les classes de type "vendor" sont chargées en mémoire ?


Marc-Henri PAMISEUX - Maine Services Informatique
Intégrateur de solutions Libre - Être Libre, c'est choisir.

Offline

#5 2024-05-18 15:25:21

marcori
Member
From: LAVAL
Registered: 2007-06-21
Posts: 42
Website

Re: BareCode QRCode Problème

Ola,
Je clôture ce monologue, espérant qu'il sera utile à d'autres usagers de l'application GLPI.

ATTENTION : Sur votre instance de GLPI 10.0.x, si vous utilisez conjointement les plugins PDF (version 3.0.0) et Barcode (version 2.7.1), sachez que Barcode ne fonctionnera pas car la fonction autoload des classes externes "vendor" accordera la préférence aux classes externes du plugin PDF plutôt qu'aux classes externes du plugin Barcode.
Il en résulte une incompatibilité provoquant l'erreur :
CRITICAL: *** Uncaught Exception Error: Call to undefined method QRcode::png() in /var/www/glpi-10.0.14/plugins/barcode/inc/qrcode.class.php at line 159

Pour le moment, je me suis contacté de désactiver le plugin PDF qui ne répond pas nécessairement à un besoin (au contraire de l'impression des QRCode).

Cela n'enlève rien à un défaut de cloisonnement avec le classLoader de GLPI (Core) rendant, de facto, certains plugins incompatible quand d'autres plugins sont présents.


Marc-Henri PAMISEUX - Maine Services Informatique
Intégrateur de solutions Libre - Être Libre, c'est choisir.

Offline

Board footer

Powered by FluxBB