Imprimer

Stage Flavien Crochard Semaine 6

Module concerné

L'intégration de dompdf dans Mediboard va s'appuyer sur la modification de quelques fichiers dans le module dPcompteRendu.

Modifications apportées

Plus précisément, je m'intéresse aux éléments suivants :

  • le fichier edit_compterendu.tpl : la vue de l'éditeur de documents
  • le fichier addedit_modeles.tpl : la vue en lecture seule des modèles de documents
  • le fichier mb_fckeditor.tpl : la vue relative à la barre d'outils de FCKEditor
  • le dossier fcke_plugins : ajout d'un sous-dossier mbprintPDF permettant la sortie d'impression en pdf

Egalement, la création des élements suivants :

  • print_pdf.php : fichier qui récupère un flux html + css et qui renvoie un pdf
  • ajax_thumbs.php : fichier qui construit les vignettes d'un pdf à l'aide de phpThumb?
  • ajax_display_first_thumb : fichier qui construit la première vignette d'un CFile associé à un CCompteRendu et qui en fait un echo. Cette première vignette est affichée dans la tooltip d'un document (quand la souris passe au dessus de ce document)
  • htmlheader.tpl : contient le header du document html qui sera transformé en pdf
  • inc_thumbnail.tpl : la vue qui affiche les vignettes à droite de l'éditeur

Choix de conception

Dans la popup qui contient l'éditeur et les vignettes, le rafraîchissement des vignettes est fait en reconstruisant un fichier PDF temporaire à partir du contenu de l'éditeur. Les vignettes sont ensuite générées et affichées, puis le document PDF temporaire est supprimé.

Après l'enregistrement d'un document, le CFile est supprimé. Il sera reconstruit quand la souris sera au dessus d'un document et quand la tooltip s'affiche. Phpthumb met aussitôt en cache la vignette créée. Pour ce faire, j'ai du modifier une ligne au sein de cette librairie : dans le fichier phpthumb.functions.php, et plus précisément dans la fonction EnsureDirectoryExists(). La fonction explode pose un petit souci : même si la chaîne qu'on lui passe en paramètre est vide, cette fonction retourne un array avec un seulement à null. Donc il faut tester cette situation avant de continuer.


Dernièrement modifié par flavien1734 points  , Basé sur le travail de system .
Modifiée dernièrement le lundi 22 de mars, 2010 10h59m11.