Avertissement
La façon normale et « standard » de procéder pour gérer l’impression est de fournir au navigateur (comme le fait la dist/) une feuille de style alternative destinée à l’impression.
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
Pour plus de détail, nous vous renvoyons sur l’excellent article d’Openweb
Cette « petite contribution » ne s’adressera donc à vous que dans la mesure où vous voulez un squelette spécifique d’impression, que vous pourrez personnaliser à souhaît.
Jusqu’aux versions de SPIP 1.8
1/ Faire un squelette d’impression
2/ Faire un lien dans le squelette article, avec du texte ou une petite image d’imprimante, vers l’article en mode impression.
article_print.php3?id_article=[(#ID_ARTICLE)]
<a href="imprimer.php3?id_article=#ID_ARTICLE"
title="afficher une version imprimable de cet article">
Imprimer l'article
</a>
À partir de SPIP 1.9
Il n’ y a plus de fichier d’appel en .php3.
1/ Mettre le squelette imprimer.html dans le répertoire squelettes à la racine de spip ou dans dist à défaut.
2/ Dans le squelette article.html
Je me suis posée la question de savoir comment insérer ce lien en spip 1.9.
J’avais d’abord trouvé cette solution un peu naïve avec la balise #URL_SITE :
<a href="#URL_SITEspip.php?page=imprimer&id_article=#ID_ARTICLE" onclick="window.open(this.href,'_blank');return false;">
Imprimer
</a>
3/ Cela a pour effet d’ouvrir la page dans un target _blank [1].
Pour être accessible, penser à mettre un « title » dans le lien.
On peut également insérer une image d’impression. Pour valider la page en xhtml strict, qui ne validerait pas avec un target blank [2] classique, on se sert de cette astuce dans le lien.
http://www.webmaster-hub.com/lofive...
<a href='#'onclick="window.open
(this.href,'_blank');return false;">
Sauf que, petit hic encore, le &id ne valide pas en xhtml
- L’astuce donnée par James, consiste à remplacer par &
amp ;
<div>
<a href="#URL_SITEspip.php?page=imprimer&id_article=#ID_ARTICLE" title="afficher une version imprimable de cet article" onclick="window.open(this.href,'_blank');return false;">
<img src='squelettes/impresora.gif' alt="impression" title="impression" />
</a>
Imprimer cet article
</div>
En fait, tout cela n’est pas très SPIP !
Il y a une balise beaucoup plus appropriée et une syntaxe beaucoup plus « spip » pour faire cela. Merci, encore une fois à James, de me l’avoir indiquée.
- Utiliser : #URL_PAGE
Cf ce que dit la doc à propos de cette balisehttp://www.spip.net/
fr_article190...
#URL_PAGE (...) retourne une url de type « page » (...), vers la page passée en paramètre et qui pourra être utiliser dans un lien. Par exemple, pour accéder à la page générée par le squelette toto.html, située dans votre dossier-squelette, #URL_PAGEtoto généra automatiquement l’url spip.php ?page=toto. Un second paramètre est autorisé pour ajouter des paramètres à l’url. Exemple
#URL_PAGE {toto,id_article=#ID_ARTICLE}
génèrera l’url spip.php ?page=toto&id_article=XXX.
#URL_PAGE{imprimer}|parametre_url{id_article}
- La syntaxe peut même se racourcir à :
#URL_PAGE{imprimer,id_article=#ID_ARTICLE}
Nous devons donc mettre le lien suivant dans notre squelette article.html. Une syntaxe courte, belle, et qui en plus valide !
<div>
<a href="#URL_PAGE{imprimer,id_article=#ID_ARTICLE}" title="afficher une version imprimable de cet article" onclick="window.open(this.href,'_blank');return false;">
<img src='squelettes/impresora.gif' alt="impression" title="impression" />
</a>
Imprimer cet article
</div>
Cette solution en 1.9 reste pour tout ceux qui voudraient concevoir leur propre squelette d’impression, ou qui ne voudraient pas utiliser du javascript.
La solution plugin avec « Imprimir_documento » [3]
Mise à jour SPIP-Contrib (juin 2007)
ce plugin est désormais documenté, pour la version française, dans cette rubrique
Il y a désormais un plugin imprimir_documento fait par JoseLuis, et disponible sur la zone.
Il y a aussi une contribution en espagnol faîte par l’auteur lui-même du plugin.
Je ne parle pas du tout l’espagnol pour traduire l’article de Joseluis, mais rapidement, quelques mots concernant ce plugin :
1/ Comme pour tous les plugins, récupérez le dernier zip à jour de cette contrib sur http://zone.spip.org/files/spip-zone/, décompactez le et placez le dossier « imprimir_documento_1_9 » obtenu dans votre répertoire /plugins (à créer à la racine de votre spip s’il n’existe pas encore), puis allez sur l’interface de gestion des plugins (menu Configuration > Gestion des plugins), cochez le plugin « imprimir_documento_1_9 » puis validez.
2/ Ensuite, dans votre squelette d’article ou de brève, insérer à l’endroit souhaité la balise #IMPRIMIR_DOCUMENTO**
avec les deux astérix.
Ce petit plugin est basé sur un jeu de deux squelettes que vous pouvez très bien personnaliser si vous le souhaîtez, un de brève et un d’article :
- imprimir_articulo.html
- imprimir_breve.html
Et un petit script javascript qui lance une popup bien sympatique, contenu dans un script php :
- baliza_imprimir_documento.php
3/ Il est possible de personnaliser le plugin :
- Vous pouvez changer l’icone d’impression en renommant votre propre icone « impresora.gif » dans le répertoire plugin.
- La typographie du style appliqué entre la balise #IMPRIMIR_DOCUMENTO**
peut être changée à l’aide d’une balise span style dans le squelette, ou dans une feuille de style que ous créez :
<span style= "font-size: 65%;" >… </span>
- Toutes les autres modifications se font dans baliza_imprimir_documento.php.
Ce qu’il reste à faire encore sur ce petit plugin
- L’internationaliser en remplacant l’espagnol d’orgine des deux squelettes par des fichiers de langues et des chaînes de langues, ainsi que les quelques mots du fichier php.
- Rendre le javascript d’appel de la popup compliant et valide.
- et dans baliza_imprimir_documento.php, ligne 28, rajouter un attribut alt et title dans la balise img pour que ca valide xhtml.
<img src=\"$logo\" title=\"Impression\" alt=\"Impression\" />
En pièce jointe, le squelette de Joseluis, donné ici uniquement à titre d’exemple, pour appliquer la méthode d’impression en target _blank sans plugin, et sans javascript, ie dans une nouvelle fenêtre et une petite image d’impression fournie par le plugin. Mais naturellement, vous pouvez concevoir votre propre squelette d’impression.
Conclusion
Cette modeste contribution ne prétend en rien être novatrice, juste peut-être utile à certains. Cette question d’impression revient en effet souvent sur les listes et sur les forums.
Pour élargir un peu, dans le genre d’outil pratique pour le squelette article, signalons :
- le plugin de Fil « Recommander » par mail. [4]
- le plugin de Cédric « Article_pdf_1_9 », qui génère un .pdf de vos articles. [5]
À vos imprimantes !
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |