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 2025-01-21 13:05:44

SpyK
Member
Registered: 2025-01-21
Posts: 3

Création d'un plugin qui modifie le menu

Bonjour à tous,

Je suis en train de me lancer dans la création d'un plugin afin d'apporter des modifications au code source de GLPI. J'aurais besoin d'ajouter des liens sous le même format que les menus Parc/Assistance/Gestion, etc.

Le mieux serait de pouvoir afficher ces liens avec des habilitations en fonction des profils utilisateurs, mais ce n'est pas la priorité.

Nous pouvons afficher les liens uniquement pour ceux ayant un affichage standard, ce qui permettrait d'avoir une sorte d'habilitation (afin d'éviter l'affichage aux utilisateurs standard).

J'ai trouvé quelques sujets qui en parlent ainsi que des hooks, mais rien de suffisamment simple pour que je puisse comprendre.

J'ai réussi à afficher des liens comme dans le plugin footer, mais j'aimerais ajouter une catégorie aux liens pour pouvoir les organiser par thème.

Voici les hooks que j'ai utilisés, mais sans succès :

$PLUGIN_HOOKS['menu_toadd']['myplugin_id'] = ['tools' => 'MyPluginHomepageClass']; // Affiche le lien (du plugin) dans la catégorie outils
$PLUGIN_HOOKS['helpdesk_menu_entry']['example'] = 'MY_CUSTOM_LINK'; // Ajoute un lien au menu pour les utilisateurs avec l'interface simplifiée

Merci d'avance

Offline

#2 2025-01-21 14:52:40

cconard96
Moderator
Registered: 2018-07-31
Posts: 3,222
Website

Re: Création d'un plugin qui modifie le menu

Avez-vous pensé à vous déconnecter et à vous reconnecter à GLPI pour tester cela ? A moins que vous n'ayez activé le mode débogage, la présentation du menu n'est générée que lorsque vous vous connectez.


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#3 2025-01-21 16:52:46

SpyK
Member
Registered: 2025-01-21
Posts: 3

Re: Création d'un plugin qui modifie le menu

Je n'avais pas pensé donc j'ai refais mes tests mais toujours pas.

Voici mon code:

setup.php

<?php
function plugin_init_plugintest() {
    global $PLUGIN_HOOKS;
    $PLUGIN_HOOKS['csrf_compliant']['plugintest'] = true;

    // Ajouter les liens dans le menu
    $PLUGIN_HOOKS['menu_toadd']['plugintest'] = ['home' => 'plugin_plugintest_addmenu'];
    error_log("Plugin Plugintest initialized");
}

function plugin_version_plugintest() {
    return [
        'name'           => 'Plugintest',
        'version'        => '1.0.0',
        'author'         => 'Votre Nom',
        'homepage'       => 'https://votre-site-web.com',
        'minGlpiVersion' => '10.0.0',
    ];
}

function plugin_plugintest_check_prerequisites() {
    // Log message when checking prerequisites
    error_log("Checking prerequisites for Plugintest");
    return true;
}

function plugin_plugintest_check_config() {
    // Log message when checking configuration
    error_log("Checking configuration for Plugintest");
    return true;
}

function plugin_plugintest_install() {
    return true;
}

function plugin_plugintest_uninstall() {
    return true;
}

inc/hook.php

<?php
function plugin_plugintest_addmenu() {
    global $menu;
    // Récupérer les liens définis dans PluginPlugintestMenu
    $menuItems = PluginPlugintestMenu::getMenuContent();
    // Ajouter chaque catégorie comme un menu principal
    foreach ($menuItems as $item) {
        $menu['home'][$item['title']] = [
            'title' => $item['title'],
            'page'  => '',
            'links' => $item['links'],
            'icon'  => 'fas fa-link', // Icône pour la section principale
        ];
    }
}

inc/menu.class.php

<?php
class PluginPlugintestMenu {
    public static function getMenuContent() {
        return [
            [
                'title' => __('Catégorie 1', 'plugintest'),
                'links' => [
                    [
                        'title' => __('Lien 1', 'plugintest'),
                        'page'  => 'https://example.com/lien1',
                        'icon'  => 'fas fa-link'
                    ],
                    [
                        'title' => __('Lien 2', 'plugintest'),
                        'page'  => 'https://example.com/lien2',
                        'icon'  => 'fas fa-link'
                    ]
                ]
            ],
            [
                'title' => __('Catégorie 2', 'plugintest'),
                'links' => [
                    [
                        'title' => __('Lien 3', 'plugintest'),
                        'page'  => 'https://example.com/lien3',
                        'icon'  => 'fas fa-link'
                    ]
                ]
            ]
        ];
    }
}

Pour info je ne suis pas dev et encore moins dev PHP ^^', c'est du code ia pour info.

Merci d'avance

Offline

#4 2025-01-22 18:06:00

cconard96
Moderator
Registered: 2018-07-31
Posts: 3,222
Website

Re: Création d'un plugin qui modifie le menu

Malheureusement, l'IA ne vous apportera rien d'utile. Il existe des ressources officielles pour aider les développeurs de plugins.

Documentation pour les développeurs de GLPI :
https://glpi-developer-documentation.re … en/master/

Documentation sur le développement des plugins GLPI :
https://glpi-developer-documentation.re … index.html

Exemple de plugin (certains éléments peuvent être obsolètes) : https://github.com/pluginsGLPI/example

De plus, la plupart des plugins existants sont open source, vous pouvez donc trouver un plugin existant qui fait quelque chose de similaire et l'utiliser comme référence.
https://plugins.glpi-project.org/


GLPI Collaborator and Plugin Developer.
My non-English comments are automated translations. Sorry for any confusion that causes.
Mes commentaires non anglais sont des traductions automatiques. Désolé pour toute confusion qui cause.
Mis comentarios que no están en inglés son traducciones automáticas. Perdón por cualquier confusión que cause.

Offline

#5 2025-03-18 12:04:15

SpyK
Member
Registered: 2025-01-21
Posts: 3

Re: Création d'un plugin qui modifie le menu

Bonjour,

J'ai trouvé un plugin sur GitHub qui réussit à faire ce que je souhaite.
Voici le lien pour ceux qui en ont besoin :

github.com/adrianomarinhosilva/plugin-glpi-menu-extras

Bonne journée

Offline

Board footer

Powered by FluxBB