You are not logged in.
Pages: 1
Topic closed
Bonjour,
Je développe actuellement un plugin nommé "listing" pour la v0.72 et ai un problème à l'utilisation de la fonction plugin_change_profile_listing(). Mon problème est qu'en mode débug, j'ai l'erreur suivante lors de la connexion :
PHP ERROR: Undefined index: glpi_plugin_listing_profile in D:\APPLICATIFS\GLPI-OCSNG\APACHE\htdocs\glpitest\plugins\listing\setup.php at line 158.
Je l'ai bien déclarée dans mon fichier hook.php :
function plugin_change_profile_listing() {
global $DB;
$result=$DB->query("SELECT ID, level FROM glpi_plugin_listing_profiles WHERE FK_profiles='" . $_SESSION['glpiactiveprofile']['ID'] . "'");
if($DB->numrows($result)){
$prof=$DB->fetch_assoc($result);
$_SESSION["glpi_plugin_listing_profile"]=intval($prof['level']);
}else{
$_SESSION["glpi_plugin_listing_profile"]=0;
}
}
Ma fonction init :
function plugin_init_listing() {
global $PLUGIN_HOOKS,$CFG_GLPI,$LANG;
$plugin = new Plugin();
if (isset($_SESSION["glpiID"])){
$PLUGIN_HOOKS['change_profile']['listing'] = 'plugin_change_profile_listing';
if ($plugin->isActivated("listing") && plugin_listing_haveRight(10)) {
$PLUGIN_HOOKS['menu_entry']['listing'] = true;
$PLUGIN_HOOKS['add_javascript']['listing'] = "javascript/listing.js";
$PLUGIN_HOOKS['add_css']['listing'] = "css/plugin_listing.css";
}
if ($plugin->isActivated("listing") && plugin_listing_haveRight(50)) {
$PLUGIN_HOOKS['submenu_entry']['listing']['add'] = 'front/plugin_listing.form.php?action=def';
}
if (($plugin->isActivated("listing") && plugin_listing_haveRight(99)) || haveRight("config","w")) {
$PLUGIN_HOOKS['submenu_entry']['listing']['config'] = 'front/plugin_listing.config.php';
$PLUGIN_HOOKS['config_page']['listing'] = "front/plugin_listing.config.php";
}
registerPluginType('listing',
'PLUGIN_LISTING_TYPE',
25001,
array(
'classname' => 'pluginListing',
'tablename' => 'glpi_plugin_listing',
'formpage' => 'front/plugin_listing.form.php',
'searchpage' => 'index.php',
'typename' => 'Listing',
'deleted_tables' => true,
));
}
}
Ma fonction posant problème :
function plugin_listing_haveRight($level) {
global $DB;
$plugin = new Plugin();
if (!isset($_SESSION["glpiactiveprofile"])){
return false;
}
if (!$plugin->isActivated("listing")){
return false;
}
if ($_SESSION["glpi_plugin_listing_profile"]>=$level){
return true;
}else{
return false;
}
}
La ligne 158 est la ligne
if ($_SESSION["glpi_plugin_listing_profile"]>=$level){
J'ai l'impression que la fonction "plugin_change_profile_listing" n'est pas appelée avant la ligne
if ($plugin->isActivated("listing") && plugin_listing_haveRight(10)) {
de ma fonction plugin_init_listing().
Dans ce cas, comment dois-je procéder ?
Merci d'avance,
Florian
GLPI 9.1.2 et FusionInventory 9.1+1.0
Offline
Ligne 158
if (isset($_SESSION["glpi_plugin_listing_profile"]) &&
$_SESSION["glpi_plugin_listing_profile"]>=$level){
Dév. Fedora 29 - PHP 5.6/7.0/7.1/7.2/7.3/7.4 - MariaDB 10.3 - GLPI master
Certifié ITILv3 - RPM pour Fedora, RHEL et CentOS sur https://blog.remirepo.net/
Offline
J'ai trouvé...
En fait la fonction plugin_change_profile_listing() n'est appellée automatiquement qu'au "changement" de profil et non à la première connexion.
J'ai donc modifier ma fonction posant problème de la sorte :
function plugin_listing_haveRight($level) {
global $DB;
$plugin = new Plugin();
if (!isset($_SESSION["glpiactiveprofile"]))
return false;
if (!$plugin->isActivated("listing"))
return false;
if (!isset($_SESSION["glpi_plugin_listing_profile"]))
plugin_listing_changeProfile();
if ($_SESSION["glpi_plugin_listing_profile"]>=$level){
return true;
}else{
return false;
}
}
Merci quand même,
Sujet clos
Florian
GLPI 9.1.2 et FusionInventory 9.1+1.0
Offline
On a posté quasiment en même temps,
Merci pour ta réponse,
GLPI 9.1.2 et FusionInventory 9.1+1.0
Offline
Pages: 1
Topic closed