Imprimer

Stage Flavien Crochard Semaine 10

Revert de plusieurs modifications

J'ai retiré plusieurs modifications de fichiers suite à la résolution du bug de la semaine 9 dans dompdf car cela a créé d'autres bugs :

  • j'ai replacé la résolution d'images pour les backgrounds dans le fichier style.cls.php
  • concaténation de la recherche des éléments parents qui peuvent être en position fixed (http://code.google.com/p/dompdf/source/detail?r=243)
  • calcul de la largeur d'un élément en position fixe à revoir (http://code.google.com/p/dompdf/source/detail?r=244)

La solution pour la résolution d'image est de définir le protocol et le host pour une instance de dompdf. Dans dompdf_config.inc.php, j'ai mis true à la variable de configuration DOMPDF_ENABLE_REMOTE.

Il me faut tester les exemples de dompdf avant de commiter. En effet, je dois vérifier qu'une correction ne crée pas un autre défaut.

Calcul des dimensions d'un élément en position fixe

Ce calcul s'effectue dans le fichier block_frame_reflower.php. Plus précisément dans _calculate_width(), _calculate_restricted_width() (elle gère le cas du min et max widths) et de _calculate_content_height().
Dans les deux premières fonctions, si l'élément est en position fixe, le calcul s'effectue en utilisant la page comme containing block (cf http://www.w3.org/TR/CSS21/visudet.html#containing-block-details). Pour la troisième fonction, le containing block est déjà attribué, donc aucune ligne n'est à rajouter.

Quelques modifications de l'intégration de dompdf dans Mediboard

Une discussion avec Thomas en début de semaine m'a amené à effectuer quelques modifications.

  • le comportement de l'enregistrement d'un compte-rendu (modèle ou document à partir d'un modèle) avec un CFile
  • en mode admin, un bouton permettant d'accéder directement au pdf généré

La génération des vignettes jusqu'à présent était exécutée à partir d'un PDF temporaire que je supprimais une fois les vignettes générées. Le PDF du CFile n'était utilisé seulement pour la génération de la première vignette de la tooltip? d'un document. Désormais, le PDF du CFile va être toujours utilisé.

Voici le diagramme de séquence pour l'enregistrement d'un nouveau modèle :

Ensuite le diagramme de séquence quand on enregistre des modifications pour un modèle existant :

Enfin le diagramme pour la création d'un nouveau document :

Pour l'enregistrement des modifications d'un document existant, le diagramme de séquence est identique à celui pour un modèle, en remplaçant le mot modèle par document.

Autres modifications

Fabien m'a fait remarqué l'absence du bouton Annuler dans la modale de mise en page pour un document. Je l'ai donc rajouté.

Pour ce faire, j'ai du créer un événement +-onclick-+ sur le bouton Annuler qui contient le code suivant pour fermer la modale: Control.Modal.close();. Control.Modal permet de récupérer la modale courante.

Ensuite, j'ai rajouté les traductions pour toutes les expressions utilisées. Ceci se passe dans le fichier dPCompteRendu.php situé dans l'arborescence mediboard/locales/fr/.

Un exemple de ligne présente dans ce fichier :

$locales['CCompteRendu-Pagelayout'] = "Mise en page";
$locales['CCompteRendu-no-pdf-generated'] = "L'aperçu du modèle n'a pas été généré. Enregistrez ce document pour en obtenir un aperçu.";

L'utilisation de ces traductions dans les vues, se fait de la manière suivante : {{tr}}CCompteRendu-no-pdf-generated{{/tr}}

J'ai créé une icône pour le bouton de génération de pdf. Je suis allé chercher une icône sur http://www.iconfinder.net. Cependant, après réduction, aucune des icônes trouvées n'a pu convenir. Donc, j'ai créé une image comportant le logo en dessous duquel j'ai rajouté le mot PDF en rouge. Le rendu est le suivant :


Dernièrement modifié par flavien1805 points  , Basé sur le travail de system .
Modifiée dernièrement le vendredi 02 de avril, 2010 16h23m54.