Plugin Modèles media

Pour les versions de SPIP antérieures à la version 3.3, les modèles <doc>, <img> et <emb> produisent chacun un résultat différent et ce résultat, pour les images, dépend du fait qu’elle soit dans le portfolio ou non.

Ce plugin propose une nouvelle série de modèles ayant un comportement unifié et indépendant du mode des images. Les modèles existants (doc, emb, img) ne sont pas modifiés afin d’assurer la rétrocompatibilité.

Installation

Les modèles <media> nécessitent que le plugin Médiathèque soit installé et activé.

Le plugin Insérer Modèles n’est pas obligatoire mais fortement recommandé afin de fournir une aide aux rédacteurs pour l’insertion des modèles <media>.

Avertissement

La version 3.3 de SPIP a résolu la grande partie des problèmes auquel ce modèle répondaient. Le plugin est toutefois compatible 3.3 pour les raisons suivantes :
-  permettre de ne pas avoir à migrer ses modèles ;
-  continuer à disposer de certaines options non encore présente dans les modèles de SPIP.

Syntaxe générale

Syntaxe des modèles <media>
Syntaxe des modèles <media>

Trois variantes principales

Les modèles <media> reposent sur trois variantes principales : icone, vignette et embed.

<media12|icone> affichera l’icône représentant le type de document.

<media12|vignette> affichera une vignette du document. Il s’agira dans l’ordre :

  1. de la vignette personnalisée associée au document si elle existe.
  2. d’une vignette générée automatiquement à partir du document. La vignette générée est indépendante de la configuration de SPIP (que l’on ait activé ou non les vignettes automatiques dans Configuration > Fonctions avancées). Enfin, la taille de la vignette n’est pas déterminée par le paramètre de SPIP concernant les vignettes automatiques mais par le paramètre |taille transmis au modèle (voir ci-après).
  3. de l’icône du type de fichier si aucune vignette personnalisée n’est disponible et si aucune fonction de génération automatique de vignette n’est disponible pour ce type de fichier.

<media12|embed> permet d’incruster le document, l’incrustation étant fonction du type du document.

Depuis la vesion 1.2.0, on peut utiliser <media12|insert>, équivalent à <media12|embed> [1].

Alignement

L’alignement se précise comme actuellement avec |left, |center et |right.

Exemple : <media12|icone|right>

Afficher une légende

En l’absence de paramètres spécifiques, aucune légende n’est affichée.

Pour afficher une légende simple (titre + descriptif), on ajoutera simplement |legende au modèle. Par exemple : <media12|vignette|legende>.

Si l’on souhaite une légende complète (titre + descriptif + crédits + type de document + poids en octets), on indiquera |legende=complete. Par exemple : <media12|vignette|legende=complete>.

Il est également possible d’indiquer plus précisément les éléments qui devront composer la légende. Au lieu du paramètre |legende, on aura alors recours aux paramètres |titre, |descriptif, |credits, |type et |poids. Par exemple, si on souhaite afficher uniquement le titre et les crédits on fera : <media12|icone|titre|credits>. Pour afficher seulement le type de document et son poids : <media12|icone|type|poids>.

Il est possible de personnaliser le titre, le descriptif et les crédits à afficher pour utiliser d’autres valeurs que celles associées au document (utile par exemple sur un site multilingue). On précisera alors simplement à ces trois paramètres les valeurs à prendre. Par exemple :

<media12|icone
    |titre=Un autre titre
    |descriptif=Un autre descriptif avec du {{gras}}, de l'{italique} et même une note[[de bas de page]].
    |credits=d'autres crédits>

On peut utilise les deux formes d’écritures. Pour afficher le titre du document, des crédits personnalisés et le poids du document : <media12|icone|titre|credits=autres crédits|poids>. Si on souhaite afficher la légende complète en personnalisant juste le titre : <media12|icone|legende=complete|titre=Mon autre titre>.

Ajouter un lien

Pour les variantes icone et vignette, un lien pointant sur le document sera ajouté par défaut. Pour la variante embed, en l’absence de paramètre lien, aucun lien ne sera ajouté au média.

Pour que le média pointe sur lui-même, on ajoutera simplement |lien. Il est possible de préciser un lien spécifique, par exemple <media12|icone|lien=http://www.monsite.net>. On peut utiliser les raccourcis SPIP pour les liens internes. Par exemple, pour pointer sur la rubrique 3 : <media12|icone|lien=rub3>.

Il est également possible d’utiliser la syntaxe suivante [<media12|icone>->rub3].

L’attribut title du lien est déterminé automatiquement par SPIP en fonction du lien. Cependant, il est possible de spécifier explicitement l’attribut title avec le paramètre |titre_lien. Par exemple : <media12|icone|lien=http://www.monsite.net|titre_lien=Un super site à visiter>.

Spécifier la taille

En l’absence de paramètres spécifiques, la taille du document sera utilisée (modifiable selon le type de fichier), notamment pour les vignettes.

Les modèles <media> proposent 4 tailles standards : icone, petit, moyen et grand. Ces quatre tailles peuvent être personnalisées dans la Configuration de SPIP, sous l’onglet Fonctions avancées.

On spécifiera la taille souhaitée en utilisant le paramètre |taille, par exemple : <media12|vignette|taille=petit>. Il est également possible de spécifier une taille précise en pixels de la manière suivante : <media12|vignette|taille=150>.

Les médias sont redimensionnés en respectant le ratio hauteur/largeur. Ainsi, |taille=150 redimensionnera le média de telle manière que son plus grand côté soit égal à 150 pixels.

Si on souhaite simplement spécifier une hauteur maximum de 150 pixels, on utilisera |hauteur=150. Pour une largeur maximum de 300 pixels, |largeur=300. On peut utiliser les deux paramètres en même temps : <media12|vignette|hauteur=150|largeur=300>.

Personnaliser le texte alternatif

Il est possible de personnaliser le texte alternatif ajouté aux images et autres médias avec le paramètre |alt. Par exemple : <media12|icone|alt=Texte alternatif sur l'icône>.

Cas du modèle appelé sans variante

Il peut arriver que le modèle soit appelé sans spécifier de variante (exemple : <media12>).

Le modèle n’est pas censé être appelé sans variante. Si cela arrive, la variante vignette sera utilisée. Mais cela n’est pas recommandé.

Aide à l’insertion des modèles

Afin de faciliter l’insertion des nouveaux modèles, ce plugin fournit un formulaire d’insertion utilisable avec le plugin Insérer Modèles. Si celui-ci est actif, alors une aide à l’insertion des modèles media sera disponible dans le porte-plume.

Plugins étendant les modèles media

Footnotes

updated on 18 February 2021

Discussion

49 discussions

  • 9

    Bonjour,

    Quand j’affiche les légendes sur les medias, la largeur de la légende est limité a 350px max.
    Quand j’affiche dans le modèle media image le width de l’image passé en paramètre , il m’affiche la taille original du document et non la taille du document inséré dans l’article.

    est ce un comportement normal ? pour la limite a 350 je suppose que oui, c’est le cas du modèle document de base fournis avec spip, et je n’ai d’ailleurs jamais trop compris le pourquoi de cette limitation, je pense que des css suffisent amplement a gérer ces cas de figure...

    comment contourner ce(s) problèmes ? j’utilise les dernières version publiés ...

    Merci de vos réponses

    • Par défaut, les modèles media reproduisent le fonctionnement du modèle standard, à savoir une largeur minimum de 120 pixels et maximum de 350 pixels pour les légendes.

      Cependant, ces paramètres sont modifiables dans le formulaire de configuration du plugin.

    • Enfin, il est toujours possible de créer ses propres modèles de légende ou de surcharger modeles/legende_complete.html

    • Bonjour Joseph,

      Merci de ta réponse, effectivement j’ai surchargé, le modèle standard de spip pour contourner la limitation (d’ailleurs je surcharge ce modèle sur tous mes sites).

      Cependant, ces paramètres sont modifiables dans le formulaire de configuration du plugin.

      j’ai pas accès a une configuration quelconque, ... en version 1.2.13, le formulaire est bien présent dans le dossier mais aucun bouton de config. L’appel de l’url exec=media ne donne rien

      en fait en regardant dans /prive/ c’est dans un dossier /configurer et pas squelette/contenu/

      bref c’est infonctionel forcément ...

    • Ok donc après test c’est bien ça le problème. En créant les dossiers dans /privé, ça fonctionne correctement, on peut configurer le plugin.

      bon hormis qu’on ne peut spécifier la taille des légendes que en px et pas en % ou auto et je ne vois vraimment pas le pourquoi de ce fonctionnement par défaut, le légendes s’adapte a l largeur et si besoin on fait le reste en css avec un padding => c’est anti-responsive ce truc des pixels ;-).

    • Quand j’affiche dans le modèle media image le width de l’image passé en paramètre , il m’affiche la taille original du document et non la taille du document inséré dans l’article.

      Donc en fait c’est les images recadrés par [(#TEXTE|image_reduire{})] dans le squelette de l’article qui ne renvoie pa la bonne taille.

    • Comme indiqué dans la documentation,le formulaire de configuration se situe

      dans la Configuration de SPIP, sous l’onglet Fonctions avancées.

      , soit via la page ecrire/?exec=configurer_avancees.

      La manière dont la largeur des légendes fonctionne suit le fonctionnement des modèles par dféaut de Spip et permet la gestion de cette largeur sans qu’il y ait besoin de rajouter une couche de CSS, soit out of the box.

      Le width transmis à la balise #MEDIA_LEGENDE est celui calculé avec #MEDIA_IMAGE_RETAILLEE. Il n’y a pas de paramètre ’width’ qui peut être passé à un modèle media. Par contre tu peux passer un paramètre ’largeur’.

    • Ok, merci pour toutes ces explications et patience habituelle ;-), effectivement j’avais pas vu/lu que la configuration du plugin était dans les paramètres avancés : c’est plutôt rare ... mea culpa ;-)

      La pour que mes documents inssérés sans taille/largeur spécifiés dans le modèle, et remis a la taille max de la largeur de l’article par TEXTE|image_reduire{560}, s’ajuste correctement, j’ai paramétré la largeur_max a 560px. Dans ce contexte ça fonctionne.

      Par contre renseigner en dur une balise style=“width:XXpx”, si je ne m’abuse, empêche toute surcharge via les css, donc si je suis sur un périphérique qui fait 320px, et que ma largeur max est a 560 on sort de la page, que ce soit avec le markup classic ou avec figure ...

      Il est pourtant possible de faire ça différemment sans compliquer le markup (tout du moins pour les navigateurs dignes de ce nom) en utilisant la propriété display:table : une petite demo ici

      A voir ...

    • Tu peux toujours utiliser la propriété CSS max-width pour limiter la largeur de la légende, par exemple à 100%. Même si tu as un width: 560px;, sur un écran de 320 pixels, la légende ne dépassera pas les 100%, puisque c’est le souci que tu évoques.

      Il en est d’ailleurs de même avec l’image qui est juste au-dessus.

      Et sinon, tu devrais pouvoir outrepasser la valeur indiquée en dure avec la propriété !important.

    • Certes, max-width le fera, mais faut le coller partout, !important je suis pas fan du tout, ça tiens plus du hack que du réel css ... je l’utilise en dernier recours dans un perso.css, a la fin de la cascade, quand je n’ai pas le choix, mais jamais dans mes composants.

      Enfin c’est surchargé “grâce à SPIP”, je préfère un display : table a un !important , le plus étant de présenter si besoin la description a droite ou en dessous suivant le viewport, la grille ou le thème.

      Le support navigateur est très correct, de plus = http://caniuse.com/#feat=css-table

      Merci de tes conseils.

    Reply to this message

  • 2

    Problème avec document googledoc
    Je me demande si je ne viens pas de tomber sur un petit bug, ou plutôt sur un cas de figure un peu particulier qui cause un problème.
    Je travaille sur un site sur lequel je souhaite insérer un graphique googledoc. L’url de l’image dans ce cas précis est de la forme https://docs.google.com/spreadsheet/oimg?key=xxxxxxxxxxxxxxxxx
    L’acquisition par SPIP de l’image (<<ajouter un document>> option <<depuis internet>) se passe très bien et la vignette de l’image apparait bien à gauche dans la colonne des documents.

    Insertion dans l’article
    <imgxx> est OK : l’image est bien affichée
    <docxx> est OK : une vignette est bien affichée mais l’agrandissement médiabox ne fonctionne pas (au lieu de l’image, c’est du code informatique qui s’affiche dans la mediabox)
    <mediaxx> pas OK (=pas d’image). L’examen du code source de la page montre que la valeur de l’attribut src dans la balise img générée est tronquée https://docs.google.com/spreadsheet/oimg lorsque le “?” de l’url du doc google est rencontré.

    ??? C’est grave docteur ?

    • Euhhh un site de démo ? Ou l’URL du graphique ? (en message privé au besoin)

      Est-ce que le plugin Google Viewer est activé ?

      Comment SPIP comprend ce lien? Il détecte que c’est une image ?

    • Réglé avec la version 2.1.13

    Reply to this message

  • 1
    Christophe Noisette

    Bonjour
    je viens de me rendre compte que pour que compteur de clic (via le plugin analyclick) fonctionne, il faut absolument utiliser <DOCxx|compteur> et non pas, comme j’essayais de la faire <MEDIAxx|compteur>. Autrement dit, les plugins analyclicks et medias ne peuvent pas être utilisés ensemble. Quelqu’un a-t-il une idée pour faire comprendre à analyclick de compter les téléchargements des docs qui sont insérés via ?

    Sur le forum d’analyclick, où j’ai aussi posé la question, on me dit :
    “... s’ils peuvent se brancher sur l’url de comptage (#URL_DOC_COMPTEUR) lorsque le plugin analyclick est activé.”

    Merci d’avance et bonne journée.

    • L’usage est que ce soit au plugin qui introduit une nouvelle fonctionnalité d’étendre les modèles .

    Reply to this message

  • 3

    Bsr,

    Quand la balise <mediaXXX|insert|center> concerne un ppt, les < > restent apparents cf Mon site

    • Quels sont les plugins actifs ?

      Il faudrait faire un var_mode=inclure et voir quel squelette produit les < >

    • Moi pas comprendre “var_mode=inclure”
      En tous cas, cela ne le fait pas avec les pdf ...

    • Et avec un document Word ?

      Quels sont les plugins installés sur le site ?

      Pour le var_mode=inclure, il suffit de se connecter comme admin sur le site. Puis charger la page du site public où il y a un problème et ajouter &var_mode=inclure à l’URL, soit http://www.copacamu.org/spip.php?article211&var_mode=inclure

    Reply to this message

  • 1

    Bonjour Joseph,
    je viens d’avoir un retour d’un client qui me fait part d’un truc qui ma parait pas couillon. Je ne sais pas si c’est du ressort de ton plugin ou si c’est autre part qu’il faudrait intervenir, mais, bon, je poste ici.
    Il publie sur son site différentes choses dont des vidéos youtube, vimeo etc.... Il utilise pour cela au plugin VIDÉOS de xduj.
    Après avoir inséré une vidéo, celle-ci apparaissant comme les autres documents dans la colonne de gauche, mon client, un peu étourdi, a assez naturellement fait un <mediaxxx|embed> dans son article;
    Bien évidement, ça ne fonctionne pas mais je me disais que ça serait tout de même bien “ergonomique” que dans ce cas précis <mediaxxx|embed> soit équivalent à <videoxxx>
    Qu’en penses-tu ? Compliqué à mettre en place ou est-ce qu’une modification du modèle serait suffisant ?

    Reply to this message

  • 1

    Bonjour,
    avec un SPIP3 et le plugin accès restreint activé sur les documents,
    je n’arrive pas à obtenir de vignette, d’icône ou de redimensionnement avec largeur ou taille. J’obtiens une icône de vignette générique SPIP même si j’ai activé la fabrication des vignettes.
    Merci s’il existe une solution.

    Reply to this message

  • 29

    Bug (?) en cas de «base» externe et/ou mutualisation
    Je suis en train de monter une mutualisation dans laquelle chaque site dispose de ses propres données mais comporte également un item qui va récupérer des infos provenant d’un site “maitre” (partage d’une rubrique commune).
    Si, dans un de ces articles “partagés”, je mets des images en les insérant avec les raccourcis classiques img et doc, pas de problème, je récupère bien ces images dans les articles quand je les consulte depuis le site “client”.
    Par contre, si j’utilise le raccourci media, il n’y a pas d’affichage d’image


    exemple :
    si dans l’article “source”, j’utilise l’insertion suivante :
    <media1|embed|taille=moyen>
    j’obtiens le code suivant dans l’article récupéré
    <p><span class='spip_document_1 spip_documents media media_image media_image_jpg'></span></p>


    code du squelette appelant :

    <BOUCLE_test(base_sitemaitre:ARTICLES){'<hr>'}>
    #TEXTE</BOUCLE_test>

    C’est moi qui zappe quelque chose ou est-ce qu’il y a un truc qui ne va pas quelque part ?

    ma config : SPIP 3.0.10 + plugin modèles media installé sur tous les sites “clients”

    • Bonjour,

      je n’ai jamais été confronté à cette question (multisite). Je vais essayer de comprendre le fonctionnement sous-jacent.

      Cordialement

    • Pour prolonger (et peut-être donner des pistes de recherche), la balise media dans un article du site maitre semble en fait interprétée “en local”.
      Je veux dire par là que , lorsque site esclave n’a pas de contenu (images) propre. et dans ce cas, la balise media des articles d’origine ne donnait rien. ( Lors de mon premier message, j’avais simplement commencé à travailler à mettre en place unes structure /maitre / esclave et je travaillais juste à la façon de récupérer les articles “partagés”.)
      Depuis, j’ai saisi des informations propres au site “client”, dont des images et... ce sont ces images-là qui maintenant ressortent là où jusque là <media1> ne conduisait à aucun affichage. Il semble donc que le modèle <mediaXX> présent dans un article du site maitre insère dans son contenu l’image id = XX du site client. (cf image jointe)

      En espérant avoir été clair et que ça puisse aider...

      PS 1 : il y avait eu une discussion il y a quelque temps pour remplacer l’obscur anglicisme “embed” par un truc plus compréhensible (et français)... Un consensus s’est-il dégagé ?

      PS 2 : encore un super grand merci pour ce plugin que je trouve vraiment indispensable (et qui rend simple et claire l’insertion des images)

    • Pour le PS1, il n’y avait pas vraiment eu de consensus mais insert avait émergé. Je devrais peut-être l’intégrer au plugin.

      Oui, j’ai bien compris que le modèle faisaient appel aux données du site client et non du site maitre. La question est de savoir d’où cela vient puisque les modèles doc, enb aux récupèrent bien le paramètre basesitemaitre dans leur contexte.

      Il faudrait identifier où, dans le code de SPIP, on transfère au modèle le paramètre basesitemaitre et pourquoi cela est transmis aux modèles doc, img, emb et pas aux modèles media.

    • Pouvez vous faire sur le site escalve un var_mode=debug avec dans l’article un modèle emb et un modèle media.

      Le modèle emb a-t-il un paramètre connect dans son environnement ? Quand est-il du modèle media ?

    • squelette plugins/auto/media/v1.1.0/modeles/media_embed.html
      Temps de calcul : 404.012 ms
      #ENV
      page : sitemaitre
      id_article : 2
      date : 2013-08-12 12:30:45
      date_default : 1
      date_redac : 2013-08-12 12:30:45
      date_redac_default : 1
      type : page
      composition : sitemaitre
      lang : fr
      dir_racine :
      id_media : 1
      id : 1
      class :
      args : (1 items) [moyen]
      taille : moyen


      squelette plugins/auto/media/v1.1.0/modeles/media_image.html
      Temps de calcul : 117.479 ms
      #ENV
      page : sitemaitre
      id_article : 2
      date : 2013-08-12 12:30:45
      date_default : 1
      date_redac : 2013-08-12 12:30:45
      date_redac_default : 1
      type : page
      composition : sitemaitre
      lang : fr
      dir_racine :
      id_media : 1
      id : 1
      class :
      args : (1 items) [moyen]
      taille : moyen


      squelette plugins-dist/medias/modeles/img.html
      Temps de calcul : 7.582 ms
      #ENV
      page : sitemaitre
      id_article : 2
      date : 2013-08-12 12:30:45
      date_default : 1
      date_redac : 2013-08-12 12:30:45
      date_redac_default : 1
      type : page
      composition : sitemaitre
      lang : fr
      dir_racine :
      id_document : 1
      id : 1
      class :
      args : (0 items) []


      L’url appelante est /spip.php?page=sitemaitre&connect=nomdelabasesitemaitre

      Le squelette sitemaitre.html est :

      <BOUCLE_test(connect_sitemaitre:ARTICLES){id_rubrique=1}{id_article ?}{0,1}>
      <div class="#EDIT{titre} titre">#TITRE</div>
      <div class="#EDIT{chapo} chapo">#CHAPO</div>
      <div class="#EDIT{texte} texte">#TEXTE</div>
      </BOUCLE_test>

      À PROPOS DE CONNECT

      Cette histoire du parametre connect et de sa portée m’intéresse particulièrement. J’avis d’ailleurs posté un message sur la liste SPIP-user à ce sujet mais je n’ai pas eu de réponse. Il s’agissait du si j’appelle l’url suivante :
      spip.php?article3&connect=connect_sitemaitre&toto=123456

      Si je teste l’environnement transmis aux pages par[<pre>(#ENV**|unserialize|print_r{1})</pre>]
      Array
      (
      [article3] =>
      [toto] => 123456
      [id_article] => 3
      [type] => article
      [date] => 2013-08-09 07:25:15
      [date_default] => 1
      [date_redac] => 2013-08-09 07:25:15
      [date_redac_default] => 1
      [id_rubrique] => 1
      [id_secteur] => 1
      [composition] =>
      [lang] => fr
      )

      Pourquoi le paramètre connect n’est-il pas explicitement transmis ?
      Pourtant, il doit bien l’être puisque, depuis le site client, une boucle du type

      <BOUCLE_test2(connect_sitemaitre:RUBRIQUES){id_rubrique=1}>
      <BOUCLE_test2_lesarticles(ARTICLES){id_rubrique}{'<br>'}>
      <div class="#EDIT{titre} titre">#TITRE</div>
      </BOUCLE_test2_lesarticles>
      </BOUCLE_test2>

      liste bien les articles du site maitre présents dans la rubrique 1 du site maitre.
      => le connect = connect_sitemaitre est implicitement transmis à la boucle test2_lesarticles sans qu’il apparaisse dans #ENV

      en espérant ne pas avoir été trop confus...)

    • En farfouillant un peu le code du core, le paramètre connect est retiré de l’environnement pour être transmis de manière séparée aux différentes fonctions internes de SPIP. C’est pour cela qu’il n’apparait dans la balise #ENV.

      Je viens juste de penser à quelque chose. D’après http://programmer.spip.net/Inclure-suivant-une-connexion, une inclusion ne transmet pas automatiquement la connexion parente ; pour propager une connexion il faut la spécifier dans l’inclusion.

      Or il y a plusieurs inclusions dans les modèles media.

      Pourriez-vous tester la chose suivante :

      • repérer dans tous les fichiers du répertoire modeles/ du plugin media, les inclusions (#INCLURE)
      • demander à ce que la connexion soit transmise à l’inclusion (en ajoutant {connect})

      Est-ce que cela change quelque chose ?

    • NB : vous pouvez également faire un essai dans vos articles avec le code <mediaXX|image>. En effet, en appelant directement la variante image on évite de passer par une inclusion. On peut alors vérifier si connect est bien transmis.

    • Modification du raccourci
      Dans l’article test, j’ai donc ajouté le raccourci <media1|image. L’affichage reste OK dans le site maitre mais reste défectueux dans le site client qui affiche l’icône image absente.
      Le code source est : <img src="IMG/jpg/shifang-hall.jpg" style="height:  px; width:  px;" height="" width="" alt="Le titre de l'image">


      Passage du parametre connect
      J’ai modifié l’ensemble des inclusions en faisant un rechercher/remplacer #INCLURE par #INCLURE{connect}
      par exemple :
      [(#INCLURE}{fond=modeles/media_image_#EXTENSION}{id=#ID_DOCUMENT}{env})]
      est devenu
      [(#INCLURE{connect}{fond=modeles/media_image_#EXTENSION}{id=#ID_DOCUMENT}{env})]
      Pas mieux non plus


      copie d’écran de la page “cliente”

    • Mais on note une différence. Si j’ai bien compris, cette fois ci on a bien pris en compte les informations du document du site maître, c’est juste l’URL du fichier qui n’est pas bonne (car relative au site maitre et non au site escalve).

      Je crois avoir une idée d’où ça peut venir. Dans le modèle media_image.html, peux tu essayer de remplacer #MEDIA_IMAGE_RETAILLEE{#FICHIER} par #MEDIA_IMAGE_RETAILLEE{#URL_DOCUMENT} ?

      Désolé de te demander de faire les tests toi même, mais je n’ai aucune installation de ce type pour faire les tests de mon côté.

      Cordialement

    • Yesssss ! Les raccourcis <media1|image> conduisent à l’affichage de la bonne image maintenant (cf copie d’écran)

    • Bon et bien maintenant on sait où sont les modifications à effectuer.

      Je n’aurai pas d’accès SVN avant ce week end. J’essaierai de faire les corrections samedi.

    • Juste une remarque. Est-ce que la correction sur les connect dans les inclures est toujours en place ? Notamment dans le modele media_embed?

      Attention : il est peut être préférable d’utiliser la syntaxe [(#INCLURE{fond=modeles/media_[(#MIME_TYPE|groupe_mime)]_#EXTENSION, id=#ID_DOCUMENT, env, connect})] avec connect à la fin.

      En effet, media_embed va appeler media_image mais il faut encore que le connect soit bien transmis.

    • Oui, j’ai laissé les connect

    • Juste pour être précis, en regardant le code, je note que dans la version du plugin qui est en place (1.1.0 SVN [69446]), la syntaxe pour faire passer id, env et connect n’est pas tout à fait la même que celle que tu as indiquée dans ton dernier message... mais je suppose qu’elles sont équivalentes (????)
      [(#INCLURE{fond=modeles/media_[(#MIME_TYPE|groupe_mime)]_#EXTENSION}{id=#ID_DOCUMENT}{env}{connect})]]

    • Elles sont censées être équivalente mais la syntaxe de mon précédent message est censée être meilleure (paramètres séparés par des virgules). Donc essayer cette autre syntaxe en priorité.

    • En lisant le code du core j’ai l’impression que #INCLURE ne tient pas compte de connect. Pourrais-tu essayer deux choses s’il te plait :

      • le modèle du core emb
      • dans media_embed, remplacer le #INCLURE par un <INCLURE ... >

      Qu’est ce que ca donne ?

    • j’ai peur de ne pas avoir bien compris la demande... j’ai modifié media_embed.html et media_emb, c’est bien cela ?
      le nouveau code avec les inclure est :

      <BOUCLE_ext(DOCUMENTS types_documents) {id_document=#ENV{id}} {tout}>
      [(#CHEMIN{modeles/media_[(#MIME_TYPE|groupe_mime)]_#EXTENSION.html}|oui)
              <INCLURE{fond=modeles/media_[(#MIME_TYPE|groupe_mime)]_#EXTENSION, id=#ID_DOCUMENT,env,connect}>
              ]
      [(#CHEMIN{modeles/media_[(#MIME_TYPE|groupe_mime)]_#EXTENSION.html}|non)
              <INCLURE{fond=modeles/media_[(#MIME_TYPE|groupe_mime)], id=#ID_DOCUMENT,env,connect}>
              ]
      </BOUCLE_ext>

      Il doit y avoir une ’tite errreur de syntaxe qui m’échappe puisque j’ai une erreur : le compilateur (cartouche debug) me retourne : “Filtre fond=modeles/media_ non défini” et dans le corps de la page, j’ai image,id=1,env,connect}> qui apparait là où le modèle est appelé...

    • Deux choses.

      Que donne le modèle emb du core? Est-ce qu’il fonctionne correctement ?

      Pour l’erreur de syntaxe dans media_embed, c’ets un problème de parenthèses.
      Eventuellement en faisant :

      <BOUCLE_ext(DOCUMENTS types_documents) {id_document=#ENV{id}} {tout}>
      [(#SET{mime_type,[(#MIME_TYPE|groupe_mime)]})]
      [(#CHEMIN{modeles/media_[(#MIME_TYPE|groupe_mime)]_#EXTENSION.html}|oui)
              <INCLURE{fond=modeles/media_#GET{mime_type}_#EXTENSION, id=#ID_DOCUMENT, env, connect}>
              ]
      [(#CHEMIN{modeles/media_[(#MIME_TYPE|groupe_mime)]_#EXTENSION.html}|non)
              <INCLURE{fond=modeles/media_#GET{mime_type}, id=#ID_DOCUMENT, env, connect}>
              ]
      </BOUCLE_ext>

      est-ce ca marche ?

    • Ouiiiiiiii !

    • Et que donne le modèle emb du core ?

    • ???? Je ne comprends pas la question...

    • Si dans ton article de test tu mets emb à la place de img, est ce que ca marche ?

    • Non, <emb1> produit l’affichage de l’image id=1 du site client

    • Hello,

      j’ai effectué les corrections dans le plugin (version 1.2.1). Peux tu vérifier que tout fonctionne sur ton site esclave ?

    • Aïe, ça ne semble pas tout à fait réglé...
      En PJ une copie d’écran de la page “client” avec les différentes syntaxes utilisées...

      • 1 : Le modèle “emb1” ne passe pas
      • 2 : Pour le modèle vignette, sur le site client, l’image qui s’ouvre dans la mediabox n’est pas la bonne : c’est l’image id=1 du site client qui s’affiche (et non l’imge id=1 du site maitre)
      • 3 : les crayons sont OK pour le texte de l’article (ie : je peux modifier le texte de l’article original depuis l’article client) mais ça n’est pas du tout OK pour les titres ou les légendes
        -  3-1 : Pour le raccourci doc, les crayons fonctionnent : je peux modifier le titre
        -  3-2 : Pour les raccourcis media + légende, clic sur les crayons conduit à l’affichage du titre... de l’image du site client (et les modifications éventuelles ne sont pas enregistrées)
    • Pour le modèle emb, j’ai signalé le problème sur SPIP-dev. Pour l’heure, ce que tu peux faire c’est de surcharger le modèle dans ton répertoire squelette/modeles en le remplacant par :

      <BOUCLE_ext(DOCUMENTS types_documents) {id_document} {tout}>
      [(#SET{modele_mime,[(#MIME_TYPE|trouver_modele_mime)]})]
      [(#VAL**{emb_[(#EXTENSION)]}|trouver_fond{modeles/}|oui)
      	<#INCLURE{fond=modeles/emb_#EXTENSION, id=#ID_DOCUMENT, env, emb=' ', connect}>
      ][(#VAL**{emb_[(#EXTENSION)]}|trouver_fond{modeles/}|non)
      	<INCLURE{fond=modeles/#GET{modele_mime}, id=#ID_DOCUMENT, env, emb=' ', connect}>
      ]</BOUCLE_ext>

      Je regarde ce qu’il en est pour les crayons et pour mediabox.

    • On va y arriver. Est-ce que la 1.2.2 règle les soucis concernant les crayons et la mediabox ?

    • Le point avec la 1.2.2 :
      Crayons, c’est OK
      Mediabox : au clic, une boite s’ouvre mais reste blanche (pas d’image). Dans la console firefox, j’ai une erreur : [00:06:59,297] TypeError: jQuery.spip is undefined @ http://nomdusiteclient.tld/prive/javascript/ajaxCallback.js:53

    • Fixé dans la version 1.2.3

    Reply to this message

  • 2
    Pierrot

    Bonjour,

    Je détecte un possible petit bug, mais la lecture du code me pose question donc je préfère poser la question ici. En faisant des tests de validation W3C d’un site, je constate que le plugin génère ce genre de chose:

    <figure class='spip_document_19 spip_documents spip_documents_center media media_image media_image_jpg'><img src="IMG/jpg/schema_parcours.jpg" style="height: 416 px; width: 376 px;" height="416" width="376" alt='JPEG - 51.4&#160;ko' />

    Je pense qu’il y a un souci au niveau de l’attribut “style” style="height: 416 px; width: 376 px;" devrait en fait être écrit style="height: 416px; width: 376px;" (pas d’espace entre la valeur numérique et “px”).

    J’ai parcouru le code, je vois effectivement ou peut se situer le pbm dans des fichiers du plugin media_img_bmp.html et media_fonctions.php mais ce qui m’interpelle c’est que dans media_info.html les espaces en trop sont carrément remplacés par des &nbsp;, donc j’en déduis que c’est volontaire et que quelque chose m’échappe ... mais quoi ... telle est la question :-)

    C’est moi ou c’est effectivement un (micro)bug ?

    Pierre.

    • Avec un peu de retard, corrigé par la version 1.1.1.

      Cordialement

    • Le mois d’août sert à ça, corriger des vieux bugs :-)
      Grand merci !
      Pierre.

    Reply to this message

  • 2

    Depuis que j’ai découvert ce plugin, je l’utilise systématiquement sur l’ensemble des sites dont j’ai la charge. Merci beaucoup pour ce merveilleux outil !
    Il y a toutefois un point qui me chagrine lorsque je forme des rédacteurs : l’utilisation du mot “embed”. Pour les non-anglophones, c’est un mot qui n’évoque rien.
    Y-aurait-t-il un moyen de franciser cela pour rendre la rédaction plus intuitive, genre le remplacer par “insertion” ou un mot équivalent ?
    Ce qui donnerait : <mediaXX|left|taille=moyen|insertion> qui est plus “compréhensible” que <mediaXX|left|taille=moyen|embed>
    Qu’en pensez-vous ?

    • Ceci est assez facile. Il suffirait de faire un fichier modeles/media_insertion.html avec le même contenu que modeles/media_emb.html et éventuellement un petit ajout dans modeles/media.html quand la variante est mal positionnée (en effet, la syntaxe correcte est <mediaXX|embed|left|titre=xxxx>.

      Ceci dit, avant d’implémenter une variante francisée pour embed, il me semble d’un petit sondage / un petit débat ne serait pas mal venu sur la liste de discussion SPIP Zone pour voir quel serait le terme français le plus adéquat (insertion, incrustation, affichage ...).

      Si vous voulez lancer cette discussion sur la liste SPIP Zone, vous êtes le bienvenu.

    • Suite à http://archives.rezo.net/archives/spip-zone.mbox/DLSZJMNHOVKENJLKXQTZ5G2T6DJE35OM/, la variante insert (équivalent à embed) a été ajoutée à partir de la version 1.2.0. Bien sur, la variante embed est toujours acceptée pour rétrocompatibilité.

    Reply to this message

  • 4

    Bonjour,

    ce plugin semble intéressant mais avant de l’installer je voudrais savoir si il permet que les images soient reprises par les scripts genre addthis ou social tags, ce qui n’est pas le cas des logo, emb et doc de spip.

    Merci

    • Et quels sont les prérequis de ces plugins ?

    • S’il s’agit de la fonction de partage des photos de AddThis, il faut ajouter une classe ’addthis_shareable’ sur les balises img, ce que ne fait ni les modèles par défaut ni ceux de modèles média.

      vous avez le choix entre surcharger les modèles fournis pour répondre à votre besoin pour les images ou bien développer un plugin charger de le faire.

      Codialement

    • jfredd

      Rebonjour et merci

      mais j’avoue ne pas vraiment comprendre la réponse.
      Je sais que ce n’est pas le bon endroit pour poser cette question mais en gros quand on utilise addthis ou social tags et qui’on a intégré des images via par exemple ckediitor dan,s un article, eh bien le script trouve les images et en propose des vignettes et on en choisit une qui illustrera le post de partage facebook par ex.

      Là j’ai utilisé uniquement les raccourcis spip pour intégrer mes images et résultats quand je veux signaler une des pages de mon site sur fb avec addthis ou social tag -j’ai essayé les deux) je n’ai que du texte, c’est laid.

      Voilà désolé de ce hors sujet mais si qqu’un a la réponse merci d’avance.

    • Bonjour,

      votre question dépasse la problématique de ce seul plugin. Et pour y répondre il est nécessaire de comprendre précisément comment fonctionne les scripts en question.

      Je vous invite à poser votre question sur la liste de discussion SPIP-Zone qui sera plus appropriée pour obtenir une réponse.

      Cordialement

    Reply to this message

Ajouter un commentaire

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom