Stage Flavien Crochard Semaine 13
Bugs de l'intégration en première version
Même si l'option de génération de pdf est désactivée pour l'instant, car il y a quelques bugs encore à résoudre, quelques bugs sont apparus en clinique. Il y a certains tests que je n'avais pas effectués, et donc qui en permettaient pas d'enregistrer un document depuis le module dPfiles. Plus précisément, il s'agissait de la création à partir d'un pack de document : c'est l'assemblage de plusieurs compte-rendus. Et quand l'option pdf est désactivée, l'option de mise en page avec les marges était toujours activée : cela déclenchait une alerte comme quoi ces champs n'étaient pas remplis.
Après avoir résolu ce souci, je me suis rendu compte que je ne tenais pas compte des marges pour la génération PDF à partir de packs. Le fichier à modifier est edit_compte_rendu.php, dans lequel je rajoute ces marges à l'objet concerné.
Fonction de nettoyage
Le code source des compte-rendus est valide XML mais HTML. Je me suis donc attaché à construire une fonction qui permet de rendre ce code le plus correct possible. Le rendu n'en sera que meilleur dans domPDF car c'est un convertisseur html to PDF.
Les modifications apportées sont dans le fichier htmltopdf.class.php. Plusieurs fonctions ont été créées :
-
remove_block_elements_inside_inline_elements(): elle prend comme paramètre une chaîne de caractères et retourne cette chaîne nettoyée. -
recursive_remove(): elle prend comme paramètre un DomNode et retourne un DomNode avec son arborescence nettoyée.
Les autres changements apportés sont :
-
htmlheader.tpl: J'ai remplacé la première ligne (<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">) par <?xml version="1.0"?> . En effet, la fonctionloadHTML()de php rend valide elle-même la chaîne de caractère, mais altère la mise en page. Je vais donc utiliser la fonctionloadXML()qui n'effectue aucune modification.
Dernièrement modifié par lryo
, Basé sur le travail de
flavien
et
system
.
Modifiée dernièrement le lundi 03 de mai, 2010 09h48m18.
