Jolie prévisualisation des modèles personnalisés depuis l'espace privé

Bonjour,

J’exploite dans mes « plugins squelettes » des modèles personnalisés appelés depuis des articles, ex. :
<encadrement|texte=blabla>

Sur la page de prévisualisation de l’article (côté privé), le modèle n’est pas interprété et affiche <encadrement|texte=blabla> au milieu de mon article.

Je souhaiterais, comme pour les modèles de base (img, doc…), bénéficier d’une jolie prévisualisation depuis l’espace privé. Faut-il créer une noisette d’affichage spécial espace privé ? Comment/où agir ?

Merci pour votre aide !

Sans avoir le code de ton modèle, ça va être difficile de t’aider.

Tu peux donner l’URL de son code source sur ton site, ce sera le plus simple.

Bonjour,

Voici un exemple de modèle que j’utilise pour générer une section particulière de contenu :

<span class="flex column">
	[<h1>(#ENV*{titre}|propre)</h1>]
	[<h2>(#ENV*{sous-titre}|propre)<h2>]
	[(#ENV*{texte}|propre)]
</span>
	
<BOUCLE_document(DOCUMENTS){id_document=23}{tout}>
	[<img src="(#FICHIER|image_reduire{400}|extraire_attribut{src})" />]
</BOUCLE_document>

J’ai aussi un modèle video qui appelle tout simplement une balise video HTML5 ou encore un modèle <bidule|xx> qui retourne une simple chaîne de caractères « bidule ».

Je précise que je n’ai pas de souci pour exploiter les modèles sur le public, c’est la prévisualisation sur le privé que je cherche à manipuler : afficher bidule plutôt que <bidule|xx> sur la prévisualisation du privé.

Merci pour votre aide !

Il y a 1 ou 2 modèles là ?

Si c’est une question de mise en forme uniquement, il faut que tes styles soient ajoutés dans le privé en plus du public via une feuille de styles dédiée (voir Rédaction du paquet.xml - Plugins SPIP ).

Si c’est un squelette-plugin, tu peux le faire en ajoutant <style source="css/ta_feuille_de_style.css" /> au fichier paquet.xml pour qu’elle soit ajoutée dans le public et le privé (pour éviter de doublonner les styles).
Sinon, il faut voir du côté du header_prive - Programmer avec SPIP 4.0 je pense.

Bonjour et merci pour vos retours.

Je ne pense pas que cela soit uniquement une question de style, mais plutôt d’interprétation des modèles depuis le privé. Pour un modèle , SPIP gènère le <img src="..."/> dans la prévisualisation sur le privé. Le rédacteur voit son image au sein du texte et comment ça s’agence, tout le monde estt content ! Mais… pour un modèle personnalisé (aussi simple qu’il puisse être), SPIP préfère afficher le shortcode d’appel du modèle plutôt que le résultat de son interprétation. <texte_encadre|texte=bla bla bla bla> Plutôt que « bla bla bla bla ».

Si cela est prévu dans SPIP, il doit exister une méthode/fonction/pipeline/noisette pour indiquer à SPIP comment interpréter un modèle depuis le privé, mais où ?

1 seul modèle ici.
Cet exemple représente la noisette modeles/section.html
Appelé au sein d’un article comme cela par exemple :

Lorem ipsum dolore Lorem ipsum dolore Lorem ipsum dolore Lorem ipsum dolore
Lorem ipsum dolore Lorem ipsum dolore Lorem ipsum dolore .

<section|titre=mon titre|texte=bla bla>

Lorem ipsum dolore Lorem ipsum dolore Lorem ipsum dolore Lorem ipsum dolore .

J’ai le même type de modèle et le résultat (pas le « shortcode » donc) s’affiche bien dans le privé <deplier|debut|titre=Le titre pour cliquer> ou encore <bouton|texte_bouton=Cliquer ici|lien=https://www.domaine.fr>

Je réitère donc la demande initiale : un lien vers le modèle utilisé (exemple : mondomaine.tld/squelettes/modeles/bidule.html

Et tant qu’on y est, un lien vers une page côté public montrant le résultat du modèle.

Normalement c’est l’interprétation du modèle qui s’affiche dans le privé, pas son code d’appel. Comme pour les images et documents, et comme dans le public.

La question c’est donc : pourquoi c’est pas comme ça sur ton site ?
C’est quelle version de SPIP ?

On le saurait si on avait eu l’URL du site :wink:

Hello @Pierre_Jean ,

Ça se produit quand SPIP ne parvient pas à retrouver le squelette du modèle en question, dans ce cas là le raccourci n’est pas interprété, logique.

La seule fois où j’ai eu ce problème, c’était sur un site multidomaines qui ne déclarait pas les dossiers supplémentaires de squelettes dans le privé.

Est-ce que tu as des particularités avec ton ou tes dossiers de squelettes ?

Le plus étonnant c’est que tu dis que ça fonctionne dans le public mais que tu n’as que les raccourcis dans le privé.

Bonjour et merci à tous pour vos retours.

Donc, oui, on est dans le cadre d’une situation anormale.
Déjà merci pour avoir mis le doigt dessus.

Ci-dessous voici la différence de restitution entre le privé et le public.

Ce site est géré dans le cadre d’une mutualisation du noyau de sites SPIP basée sur la 4.1.5 et le squelette est géré par un plugin squelette maison. Comme l’indique @tcharlss je vais regarder du côté des déclarations des dossiers supplémentaires de squelettes dans le privé. Ca ne me parle pas en l’état, donc ça pourrait venir de là, je n’ai rien de tel dans mon paquet.xml mais je ne vois aucune doc sur le sujet.

Il y a un pipeline pour faire ça ?

Autrement, j’ai simplement placé mon modèle section dans MonPlugin/squelettes/modeles/section.html

Même en mettant uniquement le mot bonjour dans section.html, impossible de voir ce mot s’afficher sur le privé, juste le « shortcode »…


Est-ce que des problèmes de droits d’écriture ou de user pourraient aboutir à ce comportement ?

Le site a un autre problème, mais je n’arrive pas à trouver le lien entre les problématiques : la boucle DOCUMENTS ne retourne de résultats que si j’utilise le filtre {tout} en plus du {id_document=xx}. Si je rajoute des filtres du type mod=image ou encore une pagination, plus de résultat.

Je me dis que ces comportements étranges ont peut-être un dénominateur commun !

Cf Rédaction du paquet.xml - Plugins SPIP : « La balise <chemin> et son attribut path permettent de déclarer dans le path de SPIP les dossiers du plugin accessibles automatiquement. Si aucun chemin n’est précisé, seuls les dossiers habituels du path sont accessibles (c’est le cas classique). » avec la doc les attributs ensuite.

Mais ça ne devrait pas être nécessaire si c’est dans le /squelettes de ton plugin.

Et de plus comme c’est OK dans le public, c’est qu’il y a quelque chose qui perturbe le privé. Et ce quelque chose vient de tes plugins, et comme ça se saurait si c’est un plugin courant, c’est probablement dans un code maison : filtre perso, plugin perso, fichier d’options ou de fonctions perso etc. (Ou dans le code qui gère la mutualisation ?)

Et puis au cas où : pour les documents, c’est pas mod=image mais mode

Il me semble aussi que MonPlugin/modeles/section.html devrait suffire.

Bonjour à tous,

Petit update de mon cas !

Si les différents autres problèmes annexes ont pu être résolus, celui de la prévisualisation demeure.
J’ai juste remarqué que dans la prévisualisation côté privé, mes shortcodes étaient encapsulés dans une balise <tt> mais je doute que cela soit une piste intéressante…

Lorsqu’une solution aura été trouvée, je la posterai ici…