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 2010-01-27 03:55:18

Nelson24
Member
From: Québec(Canada)
Registered: 2009-09-23
Posts: 31

Problème avec liaison de table

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

#2 2010-01-27 10:26:58

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: Problème avec liaison de table

Nelson24 wrote:

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

Nelson24 wrote:

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

#3 2010-01-27 15:05:40

Nelson24
Member
From: Québec(Canada)
Registered: 2009-09-23
Posts: 31

Re: Problème avec liaison de table

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

#4 2010-03-15 20:05:04

Nelson24
Member
From: Québec(Canada)
Registered: 2009-09-23
Posts: 31

Re: Problème avec liaison de table

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

#5 2013-04-19 15:19:41

Nelson24
Member
From: Québec(Canada)
Registered: 2009-09-23
Posts: 31

Re: Problème avec liaison de table

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

Board footer

Powered by FluxBB