You are not logged in.
Bonjour,
J'ai modifié le nom du champs 'Numéro d'inventaire' de la table glpi_computers par "Direction"
Dans ma table glpi_users j'ai complété le champs "phone2" par le champs Service de mon Annuaire LDAP
ex.: phone2 vaut DTI
Dans mon champs "Direction" de ma table glpi_computers, je veux faire apparaître cette valeur tout dépend qui est connecter sur le poste.
ex.:
Si chon04 est connecter, je veux que le champs direction soit DTI qui est définie dans le champs phone2 de la table glpi_users.
Si camj05 est connecter, je veux que le champs direction soit DPRF qui est définie dans le champs phone2 de la table glpu_users.
Voici ma requêtes SQL :
SELECT phone2 FROM glpi_users u INNER JOIN glpi_computers c WHERE u.ID = c.FK_users
Quand je vais directement dans MySQL, la requête fonctionne mais quand j'édite le code de la page computer.class.php, rien ne s'affiche.
J'ai trouver le bout de code à modifié mais j'ai de la misère a comprendre le fonctionnement.
Je me suis créé une fonction dans le fichier db.function.php
function getDirectionFromUser()
{
$rep = mysql_query('SELECT phone2 FROM glpi_users u INNER JOIN glpi_computers c WHERE u.ID = c.FK_users');
$data = mysql_fetch_array($rep);
$direction = $data['direction'];
return $direction;
J'appelle cette fonction dans le fichier computer.class.php
echo "<td>".$LANG['common'][20].($template?"*":"").": </td><td>";
$test = getDirectionFromUser();
echo "<input type='text' name='direction' value='$test' size='40'>\n";
J'ai enlever les lignes suivantes
//$objectName = autoName($this->fields["otherserial"], "otherserial", ($template === "newcomp"),COMPUTER_TYPE,$this->fields["FK_entities"]);
//autocompletionTextField("otherserial","glpi_computers","otherserial",$objectName,40,$this->fields["FK_entities"]);
J'ai fait tout les tests avec ces lignes mais comme je vous dis j'ai de la misère à comprendre la programmation.
Si possible quelqu'un pourrait m'aider pour faire afficher le champs phone2 de la table glpi_users dans la table glpi_computers dans le champs Direction.
Or s'il y a une mise à jour de GLPI je vais avoir une patch qui modifiera les lignes des pages que je modifie pour que mes changement embarque par dessus la mise à jour.
Glpi : 0.84.7
Mysql : 5.5.38
OcsInventoryNG : 2.1.2
Serveur : 5.5.38-0ubuntu0.14.04.1 - (Ubuntu)
Offline
J'ai fait tout les tests avec ces lignes mais comme je vous dis j'ai de la misère à comprendre la programmation.
.
Et beaucoup de courage pour vouloir modifier le code de GLPI si vous ne maîtrisez pas la programmation
Or s'il y a une mise à jour de GLPI je vais avoir une patch qui modifiera les lignes des pages que je modifie pour que mes changement embarque par dessus la mise à jour.
Un patch ne peut pas toujours s'appliquer tel quel.
Il faut savoir qu'en 0.80, le framework à totalement changé.
Donc je pense que vous vous lancez dans une 'usine à gaz'. Si le but est uniquement de modifier le libellé d'un champ visible dans GLPI, je vous conseille de changer uniquement ce libellé dans le fichier /locales/fr_FR.php
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
Je me connait bien en programmation php et sql mais le orienté objets un peu moins.
J'ai réussi à changé le libellé dans le locales\fr_FR.php
J'ai réussi à faire ma requête SQL pour avoir les informations que je veux. Je me suis créé une fonction dans le bd.function.php.
J'ai trouvé le partie de code a changé dans le computer.class.php
À première vu la fonction autoName est une fonction de parse avec des expressions régulières qui ne me sont pas utile pour l'instant.
La fonction autocompletionTextField est la fonction qui crée le input et met la valeur dans le champs.
En changeant le 4è paramètre de la fonction on peut changer la valeur du input. Or quand je met la retour de fonction dans ce paramètre, rien ne s'affiche.
Pourtant en SQL, ma requête et ma fonction semble fonctionné.
Pour ce qui est de la patch je vais le mettre en conséquence du framework car je n'est pas le choix malheureusement.
Glpi : 0.84.7
Mysql : 5.5.38
OcsInventoryNG : 2.1.2
Serveur : 5.5.38-0ubuntu0.14.04.1 - (Ubuntu)
Offline
Merci à ceux qui m'ont éclairé sur le sujet
Glpi : 0.84.7
Mysql : 5.5.38
OcsInventoryNG : 2.1.2
Serveur : 5.5.38-0ubuntu0.14.04.1 - (Ubuntu)
Offline
On peux fermer le sujet.
Glpi : 0.84.7
Mysql : 5.5.38
OcsInventoryNG : 2.1.2
Serveur : 5.5.38-0ubuntu0.14.04.1 - (Ubuntu)
Offline