Le plugin encarts coté rédacteur
Une fois le plugin installé, vous pouvez ajouter un ou plusieurs encarts à vos articles SPIP.
Vous disposez de 2 types d’encarts :
- les encarts simples écrits directement à l’intérieur du texte (et qui ne pourront s’afficher qu’à l’intérieur du texte)
- les encarts de type “objet SPIP” saisis depuis l’interface privée (qui pourront s’afficher, soit à l’intérieur du texte, soit dans la marge ou ailleurs, tel que défini par le graphiste dans le squelette)
1) Encarts simples
Pour ajouter un nouvel encart simple, dans le corps du texte :
- éditez le corps du texte de l’article
- choisissez, au sein du texte, l’endroit où votre encart doit apparaître
- rédigez y votre encart, puis entourez-le d’une balise <encart>
et </encart>
- ça doit donner quelque-chose semblable à ceci :
<encart>À lire dans la presse : «Biographie d'Adolphe Thiers, bourreau de la commune de Paris»</encart>
- cliquez sur “enregistrer”
- votre nouvel encart apparait au sein du texte de votre article !
- vous pouvez ajouter autant d’encarts de ce type dans votre article
Attention ! cette balise <encart>
sera remplacée par SPIP par une balise de type <span>
afin de pouvoir être insérée dans les paragraphes de texte (balises <p>
); ainsi, la mise en forme que vous mettrez dans ce type d’encart doit uniquement comporter des balises de type «en ligne»; vous devez donc éviter les balises de type titres <hx>
, les doubles sauts de ligne, les notes de bas de page, les éléments <docxx>
, <videoxx>
...
Nota 1 : cette méthode diffère très peu de celle employée par d’autres plugins ajoutant des mises en forme au sein des textes d’article.
Nota 2: les encarts de type “simple” insérés dans votre article par cette méthode ne pourront pas apparaitre dans d’autres articles.
2) Encarts « objet SPIP »
Dans la partie privée de SPIP, en bas de chaque article, vous disposez d’un bouton nommé “Ajouter un encart” qui vous permet d’ajouter un nouvel encart de type «objet SPIP» dans la base de donnée SPIP.

Chaque encart porte un identifiant unique (un numéro) permettant de le manipuler comme tout objet SPIP : on peut ainsi l’afficher et le placer dans les squelettes grâce aux boucles SPIP.
Mode opératoire pour ajouter un encart en base de données :
- se déplacer à la fin de l’article
- cliquer sur le bouton “ajouter un encart”

- remplissez le titre (éventuellement) et le texte de l’encart
- vous pouvez utiliser tous les raccourcis de SPIP pour la mise en forme du texte, y compris ajouter des liens ou des images
- cliquez sur le bouton “enregistrer”
- votre nouvel encart apparait au dessous de l’article, dans le bloc des encarts

- vous pouvez ajouter autant d’encarts de ce type à un article
Nota : l’affichage de l’encadré sur le site public se gère dans le squelette ! Si le squelette ne prévoit pas explicitement l’affichage de l’encadré, celui-ci ne s’affichera pas !
Pour afficher un encart de type «objet SPIP» dans le corps du texte
À l’intérieur du texte d’un article, il est possible d’afficher un encart provenant de la base de données SPIP, grâce au modèle <encartXXX>
, XXX étant l’identifiant de l’encart; voici la marche à suivre :
- vous avez déjà saisi un encart, et connaissez son numéro (imaginons que vous souhaitiez placer l’encart N°159)
- éditez le corps du texte de l’article
- choisissez l’endroit où devra apparaître votre encart
- insérez l’encart avec le code <encart159>

- cliquez sur “enregistrer”
- SPIP va remplacer ce code par un appel à l’encart qu’il ira chercher en base de données
Nota 1 : afin d’éviter qu’un encart soit présent par inadvertance, à la fois dans le corps du texte et ailleurs dans le squelette [3] les encarts déjà présents dans le corps du texte disposent d’un statut spécial; ce statut s’appelle “vu” et sa valeur passe à “oui” lorsque l’encart est appelé depuis le corps du texte; ainsi dans les squelettes on pourra choisir de n’afficher dans la marge que les encarts qui ne sont pas déjà présents dans le corps du texte, et dont le statut sera “vu=non”
Nota 2 : comme chaque encadré porte un numéro unique, il peut être inséré dans le corps d’un autre article que son article parent; l’encadré <encart63>
peut ainsi être placé dans tout article du site avec ce code.
Coté intégrateur : le plugin encart dans les squelettes
Le plugin crée un nouvel objet SPIP de type encart. Cet objet est composé des champs suivants, qui pourront être récupérés dans des boucles <BOUCLE_encart(ENCARTS)>
:
- id_encart
- date
- titre
- texte
Les encarts sont liés aux articles, et pour récupérer les encarts d’un article on utilise le critère {id_article}
dans les boucles. Ce qui donne par exemple pour récupérer tous les encarts liés à l’article 876 : <BOUCLE_encarts(ENCARTS){id_article=876}>
.
Comme on l’a vu, pour éviter d’afficher 2 fois un encart sur une page, si l’auteur a souhaité insérer son encart au sein du texte, SPIP attribue à l’encart en question le statut “vu” à “oui”. Il suffit donc d’ajouter ce critère dans la boucle, ce qui donne : <BOUCLE_encarts(ENCARTS){id_article=876}{vu=non}>
.
Les encarts qui sont insérés par l’auteur dans son texte, possèdent la class interne
, ce qui permet de styler ces encarts différemment des encarts placés dans un autre bloc par exemple.
Installation et dépendances
Le plugin Encarts s’installe depuis l’interface privée, de la manière classique :
- configuration > Gestion des plugins
- bouton “Ajouter des plugins”; vérifiez que vos listes de plugins soient bien à jour
- descendre sur “Encarts”, cliquez sur la flèche pour télécharger
- cliquez sur “suivant” pour installer et encore sur “suivant” pour activer
- gogogo ! Les encarts sont disponibles pour votre site !
Nota : le plugin “Encarts” nécessite 2 plugins utilitaires pour fonctionner :
- afficher objets, optimisant l’affichage des objets SPIP dans l’interface privée
- saisies, facilitant l’écriture des formulaires SPIP
Limites & Évolutions
Le plugin insère un <span>
s’il trouve le code <encart>
dans le texte; cela évite l’ajoute de balises block dans les paragraphes SPIP du texte. A terme il faut remplacer cet inclusion de span par une inclusion de div, tout en détectant si on est pas déjà dans un paragraphe.
A terme, gérer le placement d’un encart par l’emploi éventuel de “left”, “center” ou "right en paramètre de la balise : <encart159| left>
.
Discussions by date of activity
16 discussions
Bonjour,
J’ai découvert une petite coquille dans la dernière version de ce plugin (3.0.0). Il provoque chez moi des erreurs 500 dans l’espace privé lorsque je veux enregistrer/mettre à jour d’autres objets comme des articles, mots clés, plugins, etc. (voir pièce jointe)
J’ai procédé par élimination en désactivant tous les autres plugins.
Mon environnement est :
Version php 8.0.23
Version Spip 4.1.7
Merci d’avance pour vos retours !
Reply to this message
Bonjour,
Je viens de passer mon site (spip 3.2.7 + sarkaspipr) en PH7 et je rencontre cet avertissement:
Dans l’interface privé:
Notice:
concerne la partie:
et en public:
voici la ligne du cache:
et le cache désactivé:
le code en question:
la ligne 155 correspond à
peut- être la notice et le warning sont liés ou pas.
Merci d’avance pour votre éclairage.
Reply to this message
Bonjour,
@Manu, @pw, @jpcrea :
J’ai corrigé le plugin pour une compatibilité SPIP 3.x. Je l’ai fait selon la documentation et la lecture du code. Si vous voyez des erreurs, merci de me faire signe. Je ferai de mon mieux pour le remettre à niveau.
En tout cas, retour de l’interprétation des
<encart>
et des<marge>
. Association d’encarts à la méthode classique de SPIP (un peu comme les mots-clés). Je ne suis pas sûr que ce point là reprenne ce que vous attendiez. J’ai fait rentrer le plugin dans le “moule” de l’espace privé de SPIP.Il faut voir maintenant si cela est pertinent pour vous.
cf. http://zone.spip.org/trac/spip-zone/changeset/100136
http://zone.spip.org/trac/spip-zone/changeset/100137
Bonjour,
le plugin fonctionne bien en 3.1
Merci
Reply to this message
Bonjour,
j’ai un petit problème :
si je met un encart dans une rubrique alors dans la liste des objets liés toutes les rubriques du site apparaissent et pas seulement celle où il est.
Avez-vous une idée ?
Merci
Reply to this message
Ne fonctionne pas avec SPIP 3.1.
Et aucune réponse de l’auteur(depuis Octobre 2013) aux différentes demandes.
Dommage !
Reply to this message
J’ai l’impression qu’il y a un souci avec la (les) dernières versions du plugin : les encarts insérés au fil du texte via les raccourcis
<encart>bla bla bla </encart>
ne sont pas transformés en “encart”.Je m’arrache les cheveux depuis des heures là-dessus, fait des svn up dans tous les sens, désactive les plugins etc... rien n’y fait
En regardant de plus près, je remarque que
Si je rétablis ça, ça fonctionne de nouveau...
... Alors, est-ce que le truc, c’est que j’installe tous mes plugins par svn. Pour SPIP 3.0, dans la très grande majorité des cas, c’est la version “trunk” qu’il faut installer.
Dans le cas précis de “encarts”, la “branche trunk” ayant apriori abandonné la gestion des encarts au fil du texte, il faut alors installer la branche “branches/v2.0” dont le nom est un peu trompeur (pour faire vite, on se dit, trunk c’est pour SPIP 3, v2.0, à doit être pour SPIP 2.
Autant pour moi, donc (et désolé du bruit)
Reply to this message
Bonjour
je teste ce plugin sur un Spip 3.1 et il me rajoute bien un objet “encarts” dans le menu édition.
Cependant pas de trace d’un bouton “ajouter un encart” dans l’édition des articles, ni de modèle pour les afficher (d’ailleurs pas de répertoire modèles dans le plugin).
C’est-y que la 3.1 pose souci ? ou que je devrais avoir un bouton mais que peut-être un autre plugin est en conflit ? Ou qu’il y a une config à faire quelque part ?
Merci de m’éclairer ;-)
Reply to this message
Bonjour,
Ce plugin ne semble pas fonctionner avec la derniere version de Spip.
Le formulaire d’edition ne fait pas apparaître les champs.
Une idée pour réparer cela ?
Bonjour
La version 2.0.1 devrait résoudre le problème pour spip3
Reply to this message
Bonjour,
Y a-t-il un moyen d’utiliser ce plugin sur des rubriques ?
Je suis en SPIP v3, et cherche à intégrer un encart dans un squelette.
Et ce plugin est EXACTEMENT ce qu’il me faudrait !
En vous remerciant
Reply to this message
Bonjour,
Existe-t-il une version du plugin Encarts pour Spip 3 ou quelque chose d’équivalent ?
Merci
Bonjour,
Une version beta de encarts pour SPIP3 est publiée; je l’ai testée rapidement sur un site de développement et n’ai pas noté d’anomalies pour la création / suppression des encarts depuis un article; en revanche il reste à traiter le pipeline qui remplace le code
<encart>
(fonction encarts_pre_propre()).http://zone.spip.org/trac/spip-zone/browser/_plugins_/encarts/trunk
Bonjour Cyril,
Pour un site qui vient de migrer sous SPIP3, je souhaitais utiliser “encarts” pour insérer des encarts (!) au fil du texte via la paire de balises
<encart>bla bla bla</encart>
mais, en lisant la doc, qu’est-ce que je vois, aaarrrgggh! damned, c’est le bout qui manque actuellement…Alors, je me suis fait une rustine de dépannage en installant la fonction encarts_pre_propre dans mes_fonctions.php et j’ai appliqué dans mes squelettes le filtre encarts_pre_propre sur les balises visées.
OK, ça fonctionne mais c’est bien sûr beaucoup moins bien que si le plugin encart faisait le boulot…
Que faudrait-il faire pour activer le “bout qui manque” était compliqué à faire… Ça m’intéresserait de me pencher sur le truc parce que j’ai l’impression que ça ne doit pas être trop compliqué et que ça m’aiderait à comprendre comment marche un plugin, un pipeline etc...
Bonjour Manu,
Une piste à suivre serait d’ajouter au plugin en version V2 la fonction encarts_pre_propre qui se trouve ici : http://zone.spip.org/trac/spip-zone/browser/_plugins_/encarts/branches/v1.3/encarts_pipelines.php#L31. Sans oublier de déclarer le pipeline dans le paquet.xml ici : http://zone.spip.org/trac/spip-zone/browser/_plugins_/encarts/trunk/paquet.xml
Bonne programmation !
et tiens nous au courant des résultats ;-)
…OK…
1 - j’ai rajouté dans plugin.xml
<pipeline nom="post_propre" inclure="encarts_pipelines.php"/>
2 - j’ai rajouté dans encarts_pipelines.php la fonction encarts_pre_propre
mais rien ne se passe, enfin, je veux dire que le remplacement de
<encart> et </encart>
ne se fait pas…Comment peut-on “suivre” ce que fait SPIP ? La question que je me pose est de savoir si, arrivé dans le pipeline “post_propre” (ou celui qui est déclaré dans paquet.xml), la fonction encarts_pre_propre est bien exécutée ? Comment puis-je savoir ça ?
Hello Manu,
Tu y es presque ;-)
Il faut que le nom du pipeline déclaré dans paquet.xml (attention, en SPIP3 c’est “paquet.xml” et pas “plugin.xml”) soit le même que celui de ta fonction.
En l’occurrence d’après ce que tu écris, tu appelles le pipeline “post_propre” au lieu de “pre_propre”.
Ensuite, il ne faut pas oublier de repasser sur la page /ecrire/?exec=admin_plugin afin que le fichier paquet.xml modifié soit pris en compte.
Enfin, pour mettre au point ton code, tu peux y insérer des var_dump() pour faire afficher le contenu de variables; bien veiller à les supprimer ensuite ;-)
Une page d’astuces toujours utiles : http://www.spip.net/fr_article4453.html
OK… tu as tapé juste : je n’avais pas capté qu’il fallait repasser par ?exec=admin_plugin pour que les motifs de paquet.xml soient prises en compte. Merci !
Pour compléter, j’ai modifié la fonction pour que le remplacement produise un div plutôt qu’un spam : on peut ainsi mettre des sous titres, paragraphes etc… bref se servir de la barre typo dans la rédaction de l’encart qui, sinon, part en vrille…
J’ai l’impression qu’avec SPIP3 qui revu sa gestion du “paragraphage” du texte, l’utilisation de div doit poser moins de problème, non ?
Reply to this message
Add a comment
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.
Follow the comments:
|
