You are not logged in.
Bonsoir,
je suis en train de remettre à l'ordre du jour une extension uniquement compatible avec la 0.83 au max.
Il est impossible de l'installer sauf à :
- changer CommonDBTM en Profil
- contourner les checks read/write des droits sur le plugin
J'ai donc commenté les
function canCreate() {
return plugin_manageentities_haveRight('manageentities', 'w');
}
function canView() {
return plugin_manageentities_haveRight('manageentities', 'r');
}
et d'autres portions blocantes.
Oui mais ça ne suffit pas à ce que ça fonctionne bien (et en plus c'est pas comme il faut).
Les erreurs dans les logs sont les suivantes :
PHP Fatal error: Cannot make static method CommonDBTM::canView() non static in class
PHP Fatal error: Cannot make static method CommonDBTM::canCreate()
PHP Fatal error: Cannot make non static method Profile::showForm() static in class
J'ai changé le common par profile, et enlevé l'appel static à showform.
1) Est-bon un bon début
2) Quelles sont les bonnes valeurs de check/fonctions pour les droits ?
- SoluTek.fr - | occasional plugin contributor
GLPI 9.3.1
Windows 2016 - IIS Reverse Proxy - HTTPS/Let's Encrypt | Apache 2.4.33 / PHP 7.1.16
Offline
Bonjour
Les méthodes canCreate et canView doivent être statiques dans les classes du plugin, car elles sont statiques dans CommonDBTM.
Idem pour showForm.
De plus les droits ont évolué, il n'y a plus de 'r' ou 'w' mais des constantes qu'on peut trouver dans define.php . define.php est dans glpi/config jusqu'à 9.1 et dans glpi/inc à partir de 9.2.
changer CommonDBTM en Profil
je n'ai pas compris ce que ça implique concrètement.
No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!
Offline
*** PHP Runtime Notice(2048): Declaration of PluginManageentitiesPreference::showForm() should be compatible with Profile::showForm($ID, $options = Array)
C'est ce qui m'a induit à penser qu'il fallait remplacer CommonDBTM:: en Profile::
Mais visiblement j'a trompé
- SoluTek.fr - | occasional plugin contributor
GLPI 9.3.1
Windows 2016 - IIS Reverse Proxy - HTTPS/Let's Encrypt | Apache 2.4.33 / PHP 7.1.16
Offline
Si le code est publié quelque part, donnez le lien.
Je suppose que la classe PluginManageentitiesPreference hérite de la classe Profile. Si Profile implémente une méthode showForm alors PluginManageentitiesPreference peut la redéfinir, mais en respectant la signature de la classe mère, à savoir
- statique ou non
- liste des arguments, leur type si défini, et une valeur par défaut.
redéfinissez showFormdans la classe du plugin comme ceci
public function ($ID, $options = []) {
// ... du code
}
De mémoire showForm n'est pas statique, mais vérifiez quand même. Si oui, alors ajoutez le mot static entre public et function.
Pour exploiter les argumetns $ID et $options, prenez une classe de GLPI et voyez sa méthode showForm pour savoir ce qui est transmis, et comment s'en servir si besoin.
No support with MP - Always run an upgrade task on a testing instance before running it on production! Always backup before any upgrade task!
Offline
Merci, je n'ai pas encore fait de dev pour glpi, mais je vais m'y mettre, et là j'ai besoin de ce plugin pour nous simplifier le travail
- SoluTek.fr - | occasional plugin contributor
GLPI 9.3.1
Windows 2016 - IIS Reverse Proxy - HTTPS/Let's Encrypt | Apache 2.4.33 / PHP 7.1.16
Offline
Je vous conseille de migrer ce plugin en 0.84 à l'ai de https://forge.glpi-project.org/projects … in083to084
Et ensuite de la migrer en 0.85 à l'aide de https://forge.glpi-project.org/projects … in084to085
Vous avez aussi https://forge.glpi-project.org/projects … ePlugin084 qui vous aidera pour rendre l'installation possible et mieux comprendre le fonctionnement
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