Semaine 11: 25_29/08/2014

Cette semaine c’est ma dernière semaine. Le week-end précédent j’avais pensé qu’on m’attendait une semaine tranquille mais pas du tout !! Mon tuteur m’a demandé de faire des tests de A à Z pour vérifier si tout fonctionne et ne provoque aucune erreur. Pour cela, j’ai créé un fichier Excel partagé avec mon tuteur et j’ai ajouté des tableaux pour chaque onglet. Pour l’info, il y a 10 onglets dans l’intranet.
onglets
Voila un exemple de ce que j’ai réalisé :

https://docs.google.com/spreadsheets/d/1N3WCzUzWjepCZs_6g6oXgOwZX9G7nPnyAU-3E7oZJ9A/edit?usp=sharing

Puis, j’ai pris un RV pour Geoffrey (l’un des chargés d’affaire) pour le 1er test. Pendant le test, on a presque tout testé. En plus, on a jeté un coup d’œil le contenu de chaque fichier généré. Ce qui m’a surpris c’est qu’il découvrait quelques fonctionnalités avec moi. Cela prouve que l’équipe Thermique et Informatique se communique pas assez souvent et donc en conséquence, les thermiciens ne sont pas au courant de quelques fonctionnalités de l’intranet. Selon le bilan du 1er test, voici les erreurs ou remarques :

  • APS.doc est obsolète
  • “Créer le fichier à partir de BD” ne fonctionne pas (l’onglet DCE – Plomberie)
  • “Créer le fichier modèle pour compléter” ne fonctionne pas (l’onglet DCE – Plomberie)
  • “Suppression d’un bâtiment” n’existe pas à l’onglet NF Thermique. Il faudrait l’ajouter

J’ai pas supprimé le lien correspondant Aps.doc car Geoffrey il n’était pas sûr que ce fichier-là était obsolète. Peut-être que quelqu’un d’autre pourrait l’utiliser un jour pour un besoin.

J’ai mis à la fin dans l’ordre le manque de la fonctionnalité Suppression d’un bâtiment parce que ce n’était pas urgent. En plus, je n’avais pas beaucoup de temps pour faire tout. Ma priorité était de tester les onglets. Donc, j’ai commencé à corriger les erreurs survenues à la partie Plomberie. Je pense que Jean-François il les a déplacé le fichier exportExcelPlomberie.php et exportExcelPlomberieNew.php donc on ne pouvait pas générer ces fichiers. Il m’a demandé de vérifier la source de fichier PHP concernant ces fichiers de Plomberie que tout fonctionne bien.
plomberie
Apres avoir analysé/contrôlé ces fichiers, j’ai trouvé aucune erreur pour exportExcelPlomberieNew.php mais j’ai rencontré des erreurs bizarre de PEAR parser

Avec plein de tests, j’ai trouvé d’où ils viennent les erreurs au bout de 2 heures. C’était à cause d’une opération de maths genre “=AND(.., ..)”. Dans cette source, il y avait 8 worksheets et à chaque test je supprimais un sheet pour trouver l’endroit de l’erreur.

Puis, mon tuteur m’a signalé qu’il y avait une erreur sur le fonctionnement de la partie Explorer
explorer
Le code de source était vraiment mélangé comme un spaghettti. Mais j’ai résolu ce problème.

Ensuite, il m’a signalé un autre errreur de css dans les onglets :
hover
C’était mal réalisé le fonctionnement de hover car il y a un hover sur <li> et en plus sur <a>. Et il y a un padding de 10px. En plus, on utilisait une image pour le hover. Donc ce n’était pas facile à le faire d’un coup, de suite. Je l’ai mis à coté.

Je suis passé à un autre travail qu’Olivier a signalé en envoyant un mail. Il n’arrivait pas à créer le fichier CCTP. J’ai eu un peu de soucis parce que je ne devinais pas la raison de ce problème. J’ai commencé à faire des tests. Au bout d’un moment, j’ai compris qu’il a ajouté un tiret spécial dans le nom du lot (c’est un champ d’input html). La différence entre un tirait d’union et un tiret se voit si on les écrit successivement. J’avais eu un problème sur ce tiret dans une affaire personnelle donc j’en ai eu l’expérience.

le tiret spécial : –
Le tiret d’union : -
Si on les écrit successivement : –-
(C'est vrai que ça ne se voit pas clairement sur cette page)

On a résolu ça en se servant de la fonction str_replace(‘–’, ‘-‘, $string).

Cette solution n’est pas clean mais bon … J’ai discuté un peu sur cette histoire de tiret. Mon tuteur me disait que le tiret spécial a une valeur d’ASCII 150 mais quand j’utilisais chr(150), ça ne me donnait pas le même tiret. En plus, quand je consultais le tableau d’ASCII me confirmait. Je pense qu’il avait trouvé cette valeur en Autocad et je vois qu’il y a des différences.

Ensuite, je suis passé au problème de largeur des tableaux dans l’onglet NF thermique, PC et Contacts. Des fois, le bord droit du tableau dépassait le bord de body. On voulait bien encadrer ces tableaux. Mon tuteur ne croit pas que fixer une largeur à une td fonctionne et que ça dépend de ce qui se trouve à l’intérieur et aussi de la boîte qui emballe la table.

D’abord, j’ai essayé d’ajouter la propriété class pour chaque colonne. Par exemple, pour la colonne Telephone, on affectait class= ‘td_tel’, pour la colonne mail, on affectait class=’td_mail’ … Mais cela n’a pas fonctionné pas. J’avais déjà utilisé cette solution pour une autre affaire et c’était bon. Puis, mon tuteur m’a proposé une solution de JavaScript. Et il ajoutait que ce n’est pas possible de le résoudre en pure CSS. Ce que j’ai réalisé était de trouver les largeurs de chaque tableau et de préciser la largeur de body selon la largeur le plus élevé.

Jeudi après-midi j’ai commencé à faire le 2ème test avec Jean-Yves. Par la chance, il a choisi une affaire qui contient l’accent è dans son nom de logo quai immobilières.png. Du coup, la plupart de fonctionnalités n’a pas fonctionné et j’ai du cherché d’où vient l’erreur et à la fin j’ai constaté que c’était à cause d’accent. PHPDocx a cette donction (juste le début) :

public function replacePlaceholderImage($variable, $src, $options = array()){
if (!file_exists($src)) {
PhpdocxLogger::logger('The' . $src . ' path seems not to be correct. Unable to obtain image file.', 'fatal');
}

Ce qu’on devait faire était de fournir la variable $src correctement.

Apres avoir cherché le problème, j’ai constaté que c’était ma faute en fait. J’avais utilisé utf8_decode() dans if :

if(file_exists(utf8_decode(…)))

Mais j’avais oublié d’utiliser utf8_decode() dans le bloc de if. Ce probleme était facile à résoudre et en plus c’était la version 4.0 de PHPDocx. L’autre fichier qu’on avait eu du soucis de logo utilisait la version 3.7 et cela fonctionnait pas avec les accents. Du coup, j’ai du le transformer en version 4.0.

Vendredi avant de commencer à faire le 3ème test, je voulais faire mes quelques propres tests moi-même. Au bout d’un moment, j’ai constaté qu’il y a un autre problème de logo dans les fichiers Excel. Si le nom de logo a un accent, ca n’insérait pas le logo au fichier. Cette fois-ci ce n’était pas ma faute. Vu que vendredi c’était mon dernier jour de stage, mon tuteur m’a proposé une solution simple et facile à réaliser.
J’explique :
On a trouvé cette fonction sur internet qui nous a servi pour remplacer les accents par ses version à sans accent. Exemple : Au lieu de à, ca met a. Voici la fonction :

function stripAccents($string){
return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
}

la source: http://www.commentcamarche.net/faq/8063-supprimer-les-accents-avec-php

Ce qu’on a réalisé c’est copier temporairement dans /temp le logo s’il contient au moins un accent, le renommer sans accent et le passer sans accent. S’il n’a pas d’accent, ca posera aucun probleme. Pour cela, on compare le changement du nom de logo avant et après la fonciton stripAccents(). S’il y a une différence entre les deux, c’est-à-dire que le logo a au moins un accent. Ca a bien marché avec cette solution. Juste pour l’info, c’est mon tuteur qui m’a rappelé cela : Il faut supprimer le logo potentiel. Par exemple, si on a déjà copié un logo et renommé ‘test’ et si on essaye de le faire la même opération, cela pose problème car ce n’est pas possible de donner un nom à 2 fichiers differents dans un dossier comme vous le savez. A la fin, tout était bon. Pour l’info :

@unlink marche toujours, si pas trouvé il n’y a pas de message d’erreur. C’est le @ qui fait ça en PHP.

Puis j’ai effectué mon 3ème et dernier test de stage pour les onglets avec Olivier. Il m’a signalé quelques erreurs sur les contenus de quelques fichiers générés. A 17h, j’avais fini tout et selon mon point de vue j’ai validé mon stage. Probablement, Prelem va rencontrer quelques erreurs dans le log de jour mais au moins, mois je n’ai aucun message d’erreur non résolu. Ce que j’aurais voulu faire c’était les modifications de CSS que mon tuteur voulait faire. Mais tant pis, c’est déjà bien !