Semaine 7: 28/07/2014 – 01/08/2014

J’avais ajouté la colonne de navigation sur WP avec du Javascript il y a 2 semaines. Mon tuteur m’a demandé de le faire avec pur CSS parce qu’il pensait que ca complique la vie et ca peut entrer en conflit avec WP. Pour cela, j’ai divisé en deux le fihcier _1.php qui contient le contenu de la barre de navigation et son fichier CSS sbs.css car ce fichier avait une balise non fermante et en plus, sa balise fermante se trouve dans un autre fichier. Du coup, je les ai renommé prlm-nav.php et prlm-main.php pour _1.php et prlm-main.css et prlm-nav.css pour sbs.css. Comme j’ai modifié le nom du fichier, j’ai cherché tous les fichier php ayant include(‘_1.php’) et j’ai mis à jour la ligne d’include de chacun. Ensuite, j’ai essayé d’utiliser le pur CSS et pas de Javascript. Le résultat est quasiment bon pour le WP mais l’apparence de la colonne sur wikimedia n’était pas bon. A partir de ca, mon tuteur a pris la main et il a corrigé le petit décalage de colonne en hauteur sur wiki et il m’a laissé le travail de mediawiki. Pendant 2 jour, j’ai essayé de trouver une solution. Mais je pense que j’ai mal choisi ma question à répondre. Je pensais que l’un des script de mediawiki posait un problème sur l’affichage mais j’ai rien trouvé intéressant. J’ai décidé de faire un autre travail et y revenir après.

J’ai rencontré un problem de UTF8 quand on génère un fichier word. On voyait pas les caractères spéciaux. Ce qui est bizarre est qu’on génère 3 fichiers word à peu pres avec le même syntaxe. 2 fichiers fonctionnaient bien mais l’autre ne fonctionnait pas. Ca peut être à cause du modèle word qu’on fait load mais j’ai pas trouvé une solution pour ca. A mon avis, la seule solution était de changer la version de PHPDocx. J’ai essayé avec trial version 4.0 et ca a fonctionné.
J’ai rencontré le 2ième problème de PHPDocx quand j’essayais d’insérer une image/logo à l’en-tête ou dans le corps du document. Au premier coup, j’ai recherché sur Google la solution. Il n’y avait pas beaucoup de site à consulter à part le site officiel de PHPDocx. Puis, j’ai décidé de consulter le répertoire de PHPDOCX parce qu’il y a un sous-répertoire nommé Examples.Apres avoir cherché et jeté un coup d’oeuil sur les examples pendant un moment, j’ai une fonction qui peut me servir. Ca a vraiment inséré une image dans le corps du document (par contre j’ai pas arrivé à insérer une image àl’en-tête). Comment ca marchait cette fonction? D’abord, on insérait un logo dans le template/modèle. Ca nous aide à déterminer la position d’image qu’on veut insérer. Puis, on ajoute une variable avec n’importe quel nom dans l’emplacement de texte d’image qu’on a mais dans le modèle. Voici un screenshot. Apres avoir fini l’insertion du logo, j’ai montré ce que j’ai fait à Olivier, il a voulu faire son propre test. Le test a echoué. Je me suis rendu compte que j’ai travaillé sous Office 2007 et Olivier avait Office 2010. Du coup, j’ai tout de suite installé Office 2010 home & businnes sur mon poste (ordinateur) parce que j’étais seul à utiliser Office 2007. Puis j’ai retesté le script php que j’ai modifié mais le résultat était pareil. Au bout d’un moment, avec plein test j’ai trouvé l’erreur. J’utilisais cela:

 $logoDirectory.$societeOuvrage['logo']

Par contre, $logoDirectory contenait des backslash et ca bugait. Quand je remplacais $logoDirectory.$societeOuvrage[‘logo’] par ‘../../divers/Logos/Clients/’.$societeOuvrage[‘logo’]. Tout était bon!! Donc, pour résoudre ce problème, j’ai utilisé str_replace() pour transformer les backslahs aux slash normaux. Malgré toutes les solutions que j’ai trouvé, j’arrivais pas à insérer une image à l’en-tête. Donc, j’ai analysé un peu les autres méthodes grâce à l’API de PHPDocx et j’ai trouvé une autre méthode intérresante. Elle fonctionne quand on voulait insérer une image à l’en-tête! Et avec ca, tout était bon.
Vu que l’on commencait à rencontrer pas mal d’erreur sous la version 3.7 du PHPDocx, on l’a acheté et est passé de la version 3.7 à la version 4.0.

Advertisements