// récupération des chemins absolus
$cheminSmarty = getAbsolutePath() . "plugins/groupead/Smarty";
define('GLPI_ROOT', getAbsolutePath());
include GLPI_ROOT . "inc/includes.php";
// définition de l'emplacement de la bibliothèque
define('SMARTY_DIR', $cheminSmarty . "/libs/");
// instanciation de la class Smarty
require_once SMARTY_DIR . 'Smarty.class.php';
$smarty = new Smarty();
// définition des dossiers Smarty
$smarty->template_dir = $cheminSmarty . "/templates/";
$smarty->compile_dir = $cheminSmarty . "/templates_c/";
$smarty->config_dir = $cheminSmarty . "/configs/";
$smarty->cache_dir = $cheminSmarty . "/cache/";
//Instanciation de la class config
$config = new PluginGroupeadConfig();
//Gestion des images
$actualiserOption['title'] = "Modifier";
$actualiserOption['alt'] = "Modifier";
$menuaddOption['title'] = "Ajouter AD";
$menuaddOption['alt'] = "Ajouter AD";
$smarty->assign('actualiserIMG', HTML::image(getHttpPath() . 'pics/actualiser.png', $actualiserOption));
$smarty->assign('menuaddIMG', HTML::image(getHttpPath() . 'pics/menu_add.png', $menuaddOption));
//Envoie des variables à Smarty
$smarty->assign('infoAD', $config->getAD());
$smarty->assign('httpPath', getHttpPath());
//$smarty->assign('absolutePath',  getAbsolutePath());
$smarty->assign('targetCSS', getHttpPath() . "plugins/groupead/css/groupead.css");
//Affichage de l'entête GLPI
HTML::header('Configuration Plugin GroupeAD');
//Affichage du plugin
 /**
  * Fonction qui affiche le formulaire du plugin
  * @param type $id
  * @param type $options
  * @return boolean
  */
 function showForm($id)
 {
     global $DB;
     $cheminSmarty = $this->getAbsolutePath() . "plugins/groupead/Smarty";
     // définition de l'emplacement de la bibliothèque
     define('SMARTY_DIR', $cheminSmarty . "/libs/");
     // instanciation de la class Smarty
     require_once SMARTY_DIR . 'Smarty.class.php';
     $smarty = new Smarty();
     // définition des dossiers Smarty
     $smarty->template_dir = $cheminSmarty . "/templates/";
     $smarty->compile_dir = $cheminSmarty . "/templates_c/";
     $smarty->config_dir = $cheminSmarty . "/configs/";
     $smarty->cache_dir = $cheminSmarty . "/cache/";
     if ($this->getDomain($id) != null) {
         //vérifiaction si machine dans un domaine
         $groupe = $this->getGroupeAD($id);
         asort($groupe[0]);
         asort($groupe[1]);
         $smarty->assign('erreur', 'null');
         $smarty->assign('groupeOrdinateur', $groupe[0]);
         $smarty->assign('groupeAD', $groupe[1]);
     } else {
         $smarty->assign('erreur', 'nodomain');
         $config = new PluginGroupeadConfig();
         $listeAD = null;
         foreach ($config->getAD() as $AD) {
             $listeAD[] = $AD["suffix"];
         }
         $smarty->assign('listeAD', $listeAD);
     }
     $smarty->assign('id', $id);
     $smarty->assign('httpPath', $this->getHttpPath());
     $smarty->assign('endform', HTML::closeForm(false));
     $smarty->display('groupeadold.tpl');
 }
<?php

//============================================================================//
//==    Plugin pour GLPI - Dévelloppeur: Viduc (Fleury Tristan) - ©2013     ==//
//==            http://viduc.sugarbox.fr - viduc@sugarbox.fr                ==//
//============================================================================//
/**
 * Traite toute les demandes ajax du plugin
 */
define('GLPI_ROOT', getAbsolutePath());
include GLPI_ROOT . "inc/includes.php";
//Instanciation de la class config
$config = new PluginGroupeadConfig();
if (isset($_POST['action'])) {
    if ($_POST['action'] == "modifierAD") {
        if (strstr($_POST['identification'], "valider")) {
            $valeur['serveur'] = $_POST['serveur'];
            $valeur['dc'] = $_POST['dc'];
            $valeur['suffix'] = $_POST['suffix'];
            $valeur['login'] = $_POST['login'];
            $valeur['passwd'] = $_POST['passwd'];
            $valeur['groupe'] = $_POST['groupe'];
            $config->setValeurInfoAD($_POST['identification'], $valeur);
        } else {
            $config->setValeurInfoAD($_POST['identification'], $_POST['valeur']);
        }
    }
    if ($_POST['action'] == "ajoutAD") {
        $config->setAD();
    }
    if ($_POST['action'] == "testerAD") {
 /**
  * Scan les domains enregistrés pour voir si la machine y appartient
  * @param int $id l'id de la machine
  * @return aray liste des ad dont la machine fait partie
  */
 function verifComputerInDomain($id, $appelant = "front")
 {
     $require_adldap = $this->getAbsolutePath() . "plugins/groupead/adldap/adLDAP.php";
     if ($appelant == "ajax") {
         $require_adldap = $this->getAjaxAbsolutePath() . "adldap/adLDAP.php";
     }
     require_once $require_adldap;
     $name = $this->getItemName($id);
     $config = new PluginGroupeadConfig();
     $retour = null;
     foreach ($config->getAD() as $AD) {
         $LDAPConfig = $this->getLDAP($AD["suffix"]);
         if ($LDAPConfig != NULL && $this->testerAD($LDAPConfig, $require_adldap)) {
             $serveur[0] = $LDAPConfig['serveur'];
             $adldap = new adLDAP(array('base_dn' => $LDAPConfig['dc'], 'account_suffix' => $LDAPConfig['suffix'], 'domain_controllers' => $serveur));
             $adldap->close();
             $adldap->setAdminUsername($LDAPConfig['login']);
             $adldap->setAdminPassword($LDAPConfig['passwd']);
             $adldap->connect();
             // Récupération des infos de la machine
             $info = $adldap->computer()->info($name);
             if ($info[0]["count"] != 0) {
                 $retour[] = $AD["suffix"];
             }
         }
     }
     return $retour;
 }