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>

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

Discussion

54 discussions

  • Ikari Shinji

    Bonjour,

    Depuis la mise à jour sur SPIP 4.0, les largeurs et hauteurs indiquées dans SPIP ne sont plus prises en compte. J’ai width=“” et height=“”. Par contre, elles sont bien prises en compte avec emb ou img.

    Auriez-vous une idée de l’origine du problème ?

    Reply to this message

  • 7
    Ikari Shinji

    Bonjour,

    Je viens de mettre à jour mon site en version 4.0. A cette occasion, les images svg ont une url incorrecte. En effet, il y a devant l’url la chaîne suivante : “://”.

    Auriez-vous une idée de l’origine de l’erreur dans MEDIA_LIEN ?

    En vous remerciant.

    • Ikari Shinji

      Le but ne se produit qu’avec les SVG.

    • Bonjour,

      je n’ai plus d’installation en spip 4.0 sous la main mais je n’arrive pas à reproduire le bug sous SPIP 4.1 avec le plugin medias à jour.

      Les modèles du type <mediaXXX|insert> fonctionnent correctement.

      Quelle est la syntaxe utilisée ? L’image est-elle correctement insérée en utilisant le modèle <emb> natif de SPIP ?

    • Ikari Shinji

      Bonjour,

      Pour répondre aux questions, le bug se produit en 4.1. Mais j’ai dû renoncer à la mise à jour, car je ne parviens plus à accéder à la partie privée des différents objets éditoriaux. Je retenterai la mise à jour plus tard et resterai en 4.0 pour le moment.
      Et avec emb ou img, je n’ai pas de souci.

      J’ai contourné le bug en modifiant la fonction « calculer_balise_MEDIA_IMAGE_RETAILLEE » avec :

              $url = parse_url($src);
              if (!empty($url['query'])) {
                      $src = $url['scheme'].$url['host'].$url['path'];
              }

      au lieu de :

              $url = parse_url($src);
              if (!empty($url['query'])) {
                      $src = $url['scheme'].'://'.$url['host'].$url['path'];
              }
    • hmmm Il me semble que dans votre cas, $url['scheme'] est simplement vide. Mais quand ce n’est pas le cas, cela devrait valoir qqch comme “http” ou “https” et dans ce cas il faut les “://”.

      Est-ce que le code ci-après fonctionne :

              // Supprimer proprement le query string
              $url = parse_url($src);
              if (!empty($url['query']) & !empty($url['scheme'])) {
                      $src = $url['scheme'].'://'.$url['host'].$url['path'];
              }
              if (!empty($url['query']) & empty($url['scheme'])) {
                      $src = $url['host'].$url['path'];
              }
    • Ikari Shinji

      Bonjour,

      Merci pour votre réponse rapide. Je viens de modifier la fonction comme vous le proposez, et ça marche nickel !

      Encore merci !

      Est-ce que la modification sera ajoutée aux prochaines versions du plugin ou il faudra que je modifie manuellement la fonction à chaque mise à jour ?

    • J’ai corrigé dans le code du plugin. https://git.spip.net/spip-contrib-extensions/modeles_media/commit/03e12695db955e61bb3170776f45bdfa3bae2796

      Une nouvelle version 1.4.18 avec la correction devrait être bientôt disponible.

    • Ikari Shinji

      Bonjour,

      Merci pour la correction.

    Reply to this message

  • 2
    Bérénice

    Bonjour,
    super plugin que j’utilise depuis longtemps!
    En revanche, étant sur la conception d’un nouveau site web en ce moment, je l’ai installé avant de m’apercevoir du manque de compatibilité avec spip 4.1.
    Est-ce prévu pour bientôt?
    Merci d’avance.

    Reply to this message

  • Bonjour,

    Depuis la mise à jour à SPIP 4, dans squelettes-dist/inclure/documents la balise vu=non ne semble pas fonctionner https://contactimpro.org/Resultat-sondage-juillet-2021

    Ce site n’a pas de modèle doc/img perso. Sur ce site et j’ai aussi enlevé lors de la migration à SPIP 4, le fichier inclure/documents qui était dans mes squelettes pour prendre celui de squelettes-dist. La personne à utiliser le format proposer dans l’espace privé, c.-à-d. <media1700|vignette|left> pour faire afficher son document.

    Donc techniquement, le fichier ne devrait pas apparaître dans Documents joints.

    Merci d’avance,

    Zaa

    Reply to this message

  • 3

    Bonjour,
    L’affichage est devenu différent entre Safari et Firefox (redimensionnement d’images défectueux), visible sur la page d’accueil de notre site https://laccreteil.fr
    En pièce jointe : montage avec le code et les affichages différents.
    Bonne journée.
    Michel

    • J’étais également passé à la version de SPIP 3.2.11 [24473](qui permet PHP 7.4) + PHP Version 7.3 ... je suis revenu à PHP Version 7.1.32, et vidé le cache... maintenant c’est OK.
      Donc pb avec PHP et les nouvelles versions de SPIP.
      Bonne soirée.
      Michel

    • Tu sais que tu a posté ton rapport de bug sur 3 canaux différents ? ca va pas le faire plus avancer :)

      En tout cas je viens de tester en php 7.3 et php 7.4, j’ai bien reduction de la taille.

      Je me demande tout simplement si ton install php 7.3 ne serait pas incompléte.

      Peux tu vérier en te rendant sur tonsite/ecrire/?exec=info , et regarder si GD est activé.

    • Bonjour Maîeul,
      1) Pour ce qui concerne l’info... sur la liste, le sujet était abordé... et c’était un élément d’information complémentaire...
      2) Pour ce qui concerne l’effet, il n’était visible qu’avec php 7.3 et Firefox
      3) Je viens de passer à PHP Version 7.3.27 en vidant TOUS les caches, et les Images pour responsive
      ... et c’est OK.
      4) Il est donc important après une mise à jour de ce type :
      -  De vider tous les caches et les dossiers d’images.
      -  De tester avec différents navigateurs (car l’effet peut être différent)

      Bonne journée.
      Michel

    Reply to this message

  • 1

    Mystère....
    Je rencontre un problème soudain : sur un de mes sites en mutualisation, l’insertion d’image ne fonctionne plus via l’utilisation du raccourci <mediaxxx|...>.

    Au lieu d’être de la forme
    ..sites/nom_du_site/IMG/jpg/mon_image.jpg?1600586414
    l’url calculée de l’image insérée dans le texte est incorrecte :
    /home/riennet/public_html/spip/IMG/jpg/mon_image.jpg?1600586414

    Pour les autres sites de la même mutualisation, le fonctionnement est OK

    SPIP 3.2 dernière version, plugin modeles_media à jour. Problème rencontré avec la dist, sans aucun plugin (excepté plugin modeles_media bien sûr). Pas de fichiers mes_fonctions.php ni mes_options.php.

    Qu’est-ce qui peut provoquer ce mauvais calcul ?
    Ça pourrait venir de quoi ?

    • Je précise que l’insertion des images par le modèle <imgxxx> fonctionne très bien ;-)

    Reply to this message

  • Bonjour, Modeles média ne semble pas compatible (ou vice versa) avec le thème HTML5UP Alpha. Les médias utilisés avec le rôle logo sont déformés.

    Reply to this message

  • 1

    Une petite suggestion (meme si elle va aux antipodes de “normes” spipiennes)
    Rajouter une valeur de paramètre supplémentaire |lien=_blank, qui rajouterait à l’appel le paramètre target="_blank"
    Usage : avoir la possibilité de visualiser en pleine page une illustration (dans mon besoin précis, une carte à afficher de facon plus détaillée) sans quitter l’article en-cours.
    Autre possibilité (que je n’ai pas sue trouver non plus) : |lien=popup
    facilité par le plugin du même nom...

    Cdlt

    Reply to this message

  • 3

    Bonjour,

    j’ai installé Modèles médias sur un SPIP 3.2.1 en local (MAMP) et tout allait très bien, mais depuis la mise en ligne, les filtres de taille (taille, largeur et hauteur) ne répondent plus... (sur appel des modèles à l’intérieur d’un article :

    <media42|left|hauteur=200>

    )

    J’ai essayé avec les moteurs GD2 et IMAGICK, même résultat (GD et Imagick tous deux supportés chez Infomaniak).
    En revanche, lors d’un test d’insertion de

    <doc42|left|hauteur=200>

    ça fonctionne bien (mais je préfère tout de même utiliser Modèles média).

    Auriez-vous des idées ? Je sèche complètement malgré les progrès que j’ai fait grâce à vous sur ces forums ^_^

    • Question toute bête, mais dans la configuration des fonctions avancées du site (ecrire/?exec=configurer_avancees) est-ce que l’option Générer les minitiatures des images est bien activée ?

    • Je viens d’aller vérifier par acquis de conscience, mais oui, bien activé.

    • Bon... solution (?) trouvée, si ça peut dépanner d’autres personnes :

      J’ai premièrement mis à jour SPIP (3.2.1 à 3.2.4),
      j’ai rétrogradé le PHP du serveur de 7.2 à 7.1,
      après avoir vidé le cache, j’ai constaté que ça fonctionnait,
      à tout hasard, j’ai remis PHP 7.2, et j’ai constaté que ça fonctionnait toujours...

      Je ne m’y connais pas suffisamment pour y trouver une raison rationnelle, mais ça marche =)

      Merci pour ce plugin ! (comme pour tant d’autres)

      Et bon week-end !

    Reply to this message

  • 2
    Liberté

    Bonjour,

    Sous Spip3.2.3 Le passage à la dernière version me donne une plage blanche:

    Fatal error: Cannot use isset() on the result of an expression (you can use “null !== expression” instead) in /home/users/1/main.jp-franc-parler/web/franc-parler.info/plugins/auto/media/v1.4.9/media_fonctions.php on line 203

    Que puis-je faire?

    • La version 1.4.10 qui sera disponible peu après midi devrait résoudre le problème. Merci du signalement.

    • Liberté

      Bonjour et merci pour la nouvelle version.

      À titre d’information, je suis passé par FTP et j’ai jeté le dossier média 1.4.9. J’ai pu ensuite retrouver l’accès par l’espace privé et j’ai installé automatiquement le nouveau fichier 1.4.10.
      Les noms des dossiers hors le numéro sont différents: Media 1.4.9et Modèles média1.4.10.
      C’est un peu étonnant.

    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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

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.

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