SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 251 visiteurs en ce moment

Accueil > Rédaction > Imprimer et PDF > Comment avoir une version imprimable d’un article ?

Comment avoir une version imprimable d’un article ?

22 octobre 2006 – par Alexandra – 11 commentaires

6 votes

Faire un lien via un squelette d’impression : Méthodes traditionnelles pour SPIP 1.8 et SPIP 1.9, ou par plugin.

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)]

À 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 :

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...

Sauf que, petit hic encore, le &id ne valide pas en xhtml

-  L’astuce donnée par James, consiste à remplacer par &amp ;

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.

-  La syntaxe peut même se racourcir à :

Nous devons donc mettre le lien suivant dans notre squelette article.html. Une syntaxe courte, belle, et qui en plus valide !

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 :

-  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.

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 !

Notes

[1Nous sommes d’habitude plutôt favorable à l’idée de laisser le choix au visiteur d’ouvrir un lien dans une nouvelle page ou un nouvelle onglet, plutôt que de le lui imposer de fait. Néanmoins, cela semble se justifier lorsqu’il s’agit d’ouvrir un squelette spécifique d’impression avec une mise en page particulière et épurée

[3Imprimir artículo o breve con SPIP 1.8 ó 1.9

D’ailleurs l’auteur propose une option de popup javascript pour la 1.8 et la 1.9, indépendemment du plugin. Vous pouvez donc avoir le choix de la popup javascript ou de la méthode target _blank décrite plus haut. Il semblerait toutefois que le script javascript ne valide pas la page en xhtml.

[4http://zone.spip.org/files/spip-zone/ en jquery, disponible sur la zone.

Dernière modification de cette page le 9 juin 2007

Retour en haut de la page

Vos commentaires

  • Le 30 octobre 2012 à 16:22, par mikestef En réponse à : Comment avoir une version imprimable d’un article ?

    une vraie usine à gaz !

    Répondre à ce message

  • Le 16 novembre 2006 à 10:51, par quincailler En réponse à : Comment avoir une version imprimable d’un article ?

    Bonjour à toutes et à tous,

    Tout d’abord, merci pour cette contrib, qui m’a éclairé sur pas mal de choses, mais un point qui m’est essentiel au vue de la structure de notre site, ce sont les impressions des rubriques. Il s’avère que nous avons pas mal de contenu dans des rubriques, et l’impression reste délicate.
    Alors étant donné que nous n’utilisons pas les brèves, j’ai voulu modifier le plugin espagnol « imprimir_documento » et en remplacer l’appel de la page des brèves par une copie modifiée pour les rubriques. J’ai donc fait ce petit changement lors du test sur $_id_article :

    $_id_article = champ_sql(’id_article’, $p) ;

    $arg = « ’page=imprimir_articulo&id_article=’. ».$_id_article ;

    $url = generer_url_public(’’,$arg) ;

    // la modif ici :

    if (!$_id_article)

    $_id_rubrique = champ_sql(’id_rubrique’, $p) ;

    $arg = « ’page=imprimer_rubrique&id_rubrique=’. ».$_id_rubrique ;

    $url = generer_url_public(’’,$arg) ;

    $p->code =« preparar_enlace_imprimir($arg) » ;

    J’ai bien entendu créer un nouveau masque « imprimer_rubrique.html » que j’ai mis au bon endroit, seulement je ne comprends pas le script ne monte pas la bonne page, il m’envoi la page articulo, alors que le tag est placé dans mon rubrique.html, et que je teste la validité de la balise article.
    On dirait que l’identifiant de l’article est trouvé même si une rubrique est chagée ...
    Quelqu’un aurait il une soluce ?

    Merci beaucoup, car je ne dois pas être le seul dans ce cas.
    Ah oui pour les versions : spip 1.9.1 + pllugin installé

    • Le 16 novembre 2006 à 14:28, par quincailler En réponse à : Comment avoir une version imprimable d’un article ?

      Bon alors voilà, je vais me répondre en fait :

      la solution que j’ai trouvé est la suivante :

      if ($_GET[’article’])

      $_id_article = champ_sql(’id_article’, $p) ;

      $arg = « ’page=imprimir_articulo&id_article=’. ».$_id_article ;

      $url = generer_url_public(’’,$arg) ;

      else

      $_id_rubrique = champ_sql(’id_rubrique’, $p) ;

      $arg = « ’page=imprimer_rubrique&id_rubrique=’. ».$_id_rubrique ;

      $url = generer_url_public(’’,$arg) ;

      $p->code =« preparar_enlace_imprimir($arg) » ;

      $p->statut = ’html’ ;

      return $p ;

      Ce n’est peut être pas ce qu’il y a de mieux, mais en tous cas ça fonctionne !

      A savoir que nous n’utilisons pas les breves, donc attention à ceux qui voudraient se servir ce ça pour ajouter comme nous des choses à imprimer dans un squelette spécifique.

    • Le 16 novembre 2006 à 14:39, par Alexandra En réponse à : Comment avoir une version imprimable d’un article ?

      Merci pour avoir posté ton code qui fonctionne en détournant les brèves. Je pense qu’on pourrait contacter Jose Luis, l’auteur du plugin, pour lui demander dans quelle mesure il serait possbile de l’étendre aussi sur les rubrique. Pour ma part, je n’ai pas de compétence en développement.

    • Le 29 juin 2008 à 14:57, par Rano En réponse à : Comment avoir une version imprimable d’un article ?

      Salut a tous,
      j ´ai moi aussi ce probleme pour imprimer rubriques ou articles à volonté. Mais ce code ne fonctionne pas, les breves activées ou non c´est le même résultat... il se prend pas en compte les valuers lorsque nous sommes dans un article et imprime les rubriques...

      Y a t- il du mouvement ou ce plug est il abandonné ?

      Salutations
      Rano

    Répondre à ce message

  • Le 28 juin 2007 à 12:01, par seb En réponse à : Et le CSS ?

    n’est-ce pas à la feuille de style de dire comment imprimer le document HTML ? Ainsi dès qu’on lance l’impression la mise en forme peut être complétement modifiée.
    -  Je me trompe ou quoi ?

    Répondre à ce message

  • Le 13 mars 2007 à 11:50, par ? En réponse à : Où insérer la balise #IMPRIMIR_DOCUMENTO** ?

    Bonjour,

    je souhaite réaliser un squelette dans lequel on trouverai le même article plusieurs fois (10 fois le même sur 2 colonnes) pour imprimer en ligne des flyers par exemple.

    Je comprend les balises de base style #TEXTE mais là, je ne vois pas bien où placer la balise #IMPRIMIR_DOCUMENTO**.(que signifient les 2 astérisques ?)

    Il me semblait qu’en la mettant au début de la < div > à imprimer ça irait, mais non ! j’ai du oublier quelque chose quelque part !

    Pourtant le plugin est bien activé, j’ai crée un squelette article=34.html spécialement pour ça que j’ai placé dans le dossier plugins/squelette_egt/

    Si quelqu’un(e) a une idée...merci

    Répondre à ce message

  • Le 21 mars 2007 à 15:27, par Flo En réponse à : Comment avoir une version imprimable d’un article ?

    génial le plugin Imprimir_documento
    merci !

    Répondre à ce message

  • Le 16 mars 2007 à 16:48, par Onyrodine En réponse à : Comment avoir une version imprimable d’un article ?

    Bonjour,

    J’ai utilsé la version « À partir de SPIP 1.9 » (celle avec la balise #URL_page). Le bouton d’impression s’affiche dans mes articles mais lorsque je clique dessus j’obtiens une erreur 404. Vu la simplicité du code, je ne vois pas ou j’ai pu me tromper. QQ aurait-il une idée ? Y a t’il un autre fichier à modifier que mon squelette article ?

    Merci

    Répondre à ce message

  • Le 27 janvier 2007 à 17:03, par dedel53 En réponse à : Comment avoir une version imprimable d’un article ?

    je voulais savoir si il etait possible d’enlever « version imprimable » ?? si oui comment ??

    merci

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Adaptive Images

    15 novembre 2013 – 65 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • Brownie

    6 juillet 2012 – 43 commentaires

    Brownie est une adaptation pour Zpip du thème du même nom initialement développé par Egrappler.com. Présentation Brownie est un thème Responsive à deux colonnes. La démonstration ci-dessous utilise la version 2.0.0 de Brownie, la dist de SPIP3 (...)

  • Métas +

    3 décembre – 13 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Acces Restreint 3.0

    11 décembre 2008 – 785 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Compositions 2 et 3

    25 mars 2011 – 176 commentaires

    Ce plugin vous permet de définir plusieurs variantes de squelettes (nommées compositions) pour un même type d’objet SPIP. Dans l’espace privé, il est alors possible de choisir, dans un menu déroulant, la composition qu’on veut attribuer à chaque (...)

Ça spipe par là