Plugin Modèles media

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

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

Dernière modification de cette page le 13 février 2019

Discussion

46 discussions

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

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

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

    Répondre à ce message

  • 2

    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.

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

    Répondre à ce message

  • 4

    Bonjour,
    Lorsque je suis passé de PHPp 7.0 à 7.1 des « warning php » ont fait leur apparition... en revenant à PHP7.0 tout est revenu à la normale.
    Config du site : SPIP 3.2.1 [23954] est un logiciel libre distribué sous licence GPL. + écran de sécurité 1.3.6
    Version du plugin :
    Modèles media 1.4.7 - stable - SVN [111182]
    Bonne soirée.
    Michel

    • Petite précision... les plugins intégrés à la version SPIP 3.2.1 [23954] (dont Media) ne peuvent être mis à jour (même s’il en existe une) car ils sont verrouillés (dans « Gestion des plugins »).

    • quels sont les messages exacts ?

    • « Impossible de désactiver ou de désinstaller ce plugin. » mais les mises à jour sont également impossible en dehors de celles effectuées automatiquement, lorsque l’on effectue une mise à jour vers une version nouvelle de SPIP.
      Actuellement avec la version de SPIP 3.2.3 [24211] installée, il y aurait à mettre à jour :
      -  Compresseur 1.12.7
      -  Forum 1.11.5
      -  Statistiques 1.1.10

    • maisc’est pas des warnings php ca.

    Répondre à ce message

  • 3

    Probleme mediabox : N’y aurait-il pas eu des petits cafouillages dans les derniers commits 110003/005/006 ?
    Avec un

    1. <mediaxx|vignette>

    le type mime n’est plus généré et du coup la mediabox ne se met plus en route...
    En revenant en arrière, on récupère la mediabox...
    Un avis ?

    • Du coup ce n’est toujours pas réglé, on dirait...

    • Même souci avec la révision 110006 (alors que tout était ok avec la révision 106406).
      En attendant une éventuelle correction du plugin, j’ai ajouté « .spip_in » dans les classes qui déclenchent la boite multimédia (Squelettes/ Boîte Multimédia).
      Si cela peut aider quelqu’un...
      Amicalement spip !

    • Merci Jmarc :)

    Répondre à ce message

  • Bonjour,

    Sur mon site les mentions crédits poids et type ne s’affichent pas lorsque le media est un PDF. Seul le titre est ajouté en dessous du media.

    Mon insertion :
    <doc177|insert|center|legende=complete|type|poids>

    Les mentions s’affichent bien lorsque le media est une image avec un lien manuel vers le PDF :
    [<media176|insert|center|legende=complete|type|poids>->doc177]

    Site sous SPIP 3.2.1 [23954] avec SPIPr

    dd

    Répondre à ce message

  • 1

    Bonjour,

    Je me remets un peu à Modèle Média et je suis surpris de constater que la largeur ou la hauteur passées en paramètres ne semblent plus du tout prises en compte !

    Voici mon squelette de test :

    <BOUCLE_d(DOCUMENTS){0,1}>
    [(#MODELE{media}{id=#ID_DOCUMENT,largeur=178})]
    #MEDIA_IMAGE_RETAILLEE{#URL_DOCUMENT}
    </BOUCLE_d>

    L’image s’affiche bien deux fois, mais la largeur n’est pas prise en compte. Même si je mets &largeur=178 dans l’URL (pris en compte dans aucune des deux images).

    Ça ne marche pas non plus avec hauteur et taille !

    J’ai essayé d’explorer et il me semble que dans le cas des vignettes, dans la fonction balise_MEDIA_IMAGE_RETAILLEE_dist le tableau $Pile[0] est vide (et ne contient ni ne transmets les tailles)... Pourtant, largeur est bien défini dans l’environnement du squelette media_vignette.html qui utilise la balise #MEDIA_IMAGE_RETAILLEE.

    Bref, je ne comprends pas trop, j’avais beaucoup utilisé Modèles média par le passé. J’essaie de mettre à jour un site qui était en SPIP 2.x et 3.2 et le seul truc qui cloche c’est ça : les largeur et hauteur de Modèles média (v 1.4.7) qui ne sont pas prises en compte.

    Est-ce que quelqu’un a ce problème ou en connaît la solution ?

    • ça ne fonctionne pas non plus avec :

      1. <INCLURE{fond=modeles/media,id=#ID_DOCUMENT,largeur=178}>

      ou

      1. <INCLURE{fond=modeles/media_vignette,id=#ID_DOCUMENT,largeur=178}>

    Répondre à ce message

  • 1

    Bonjour,

    Je viens d’installer ce plugin. Bravo !

    Deux petits soucis

    1) A l’intérieur d’un onglet (couteau-suisse), le code <mediaxxx|center|largeur=640> fonctionne dans la partie privée mais reste à gauche dans la partie publique.

    2) En cliquant sur l’image, mediabox l’ouvre mais je n’ai plus la navigation d’image à image et apparaît en bas de l’image l’adresse du fichier sources

    Qu’est-ce que je n’ai pas bien fait ?

    Merci

    Robert

    • Bonjour Robert,

      J’ai le même soucis concernant la mediabox. As-tu trouvé une solution ?
      Merci.

    Répondre à ce message

  • 6

    Salut à tous,

    Pour ceux qui utilisent le plugin oembed et qui sont frustrés de ne pas voir s’intégrer des videos distantes de la Médiathèque, j’ai créé un petit modèle dans squelettes/modeles/media_text_html.html avec ça :

    <BOUCLE_doc (DOCUMENTS) {id_document=#ENV{id}} {tout}>
     [(#PLUGIN{oembed}|?{
       #INCLURE{fond=modeles/text_oembed, id=#ID_DOCUMENT, env, connect}
       ,
       Plugin oembed manquant pour <a href="#URL_DOCUMENT">#TITRE</a>
     })]
    </BOUCLE_doc>

    Ca évite d’avoir ce genre de résultat avec l’appel du modèle média : <media1|insert> ou <media1|emb> ou <media1|embed> (spip 3.2)

    1. <pre><iframe…></pre>

    Voilà c’est sûrement pas top mais ca a le mérite de rien casser ;)

    • L’idée est bonne mais il serait peut-être plus pertinent d’ajouter ce modèle media dans le plugin oembed plutôt que dans le plugin medias. Ainsi, il ne serait activé qu’en cas de présence de oembed.

      C’est ce que fait par exemple le plugin Google Viewer qui embarque ces propres modèles media.

    • Tu peux aussi t’inspirer du code de https://zone.spip.org/trac/spip-zone/browser/_plugins_/google-viewer/modeles/media_google.html?rev=109504
      pour adapter le modèle text_oembed.html afin de prendre en compte l’affichage de la légende (ou non), les paramètres de larguer/hauteur etc.

    • Merci pour ces précisions, je ne suis pas sûr de réussir à faire aussi bien (légendes par exemple) :) Je me défausse « lâchement » sur oembed ;)

      Cela étant je garde ça hors plugin, et si je vois que je dois aller plus loin je me pencherai sur cette question…

    • Bonjour Joseph
      le modèle
      <media219|insert|left>
      n’affiche pas le média
      dans la page
      http://amidesk.com/pdea/spip.php?article97

      Une idée ? Merci !
      Spip 321

    • Euh c’est gentil de donner la page, mais c’est censé s’afficher où dans cette page ?

      Pour essayer de débugger un peu, tu peux essayer ?var_mode=inclure pour voir qu’est-ce qui est appelé

      Par ailleurs, c’est quoi comme objet le document 219 ?

    • le modèle est inséré en début du champ texte, juste avant le mot synopsis.
      C’est une image.

    Répondre à ce message

  • 1

    Bonsoir,

    Alors d’abord merci pour cet excellent plugin. J’ai un petit bug néanmoins sur SPIP 3.2.0 : si j’appelle <media41|vignette|left|lien=doc43> tout marche impeccable, mais si j’y ajoute le filtre taille, hauteur ou largeur, le chemin d’accès à l’image change et je me retrouve avec un appel du type : /home/repertoire/public_html/dev/IMG/jpg/image.jpg ?1516377161 au lieu de /dev/IMG/jpg/image.jpg ?1516377161

    Je développe dans le sous-répertoire dev, mais le rewrite base est configuré et le site marche nickel. Suggestion bienvenue...

    Merci ! Luc

    • Rebonjour, petit up et solution temporaire. N’ayant pas la compétence de tout éplucher, j’ai commenté 2 lignes de la fonction calculer_balise_MEDIA_IMAGE_RETAILLEE(), ce qui règle le pb :

      if(!preg_match(’`^https? ://`i’,$src,$matches))
      $src = realpath($src) ;

      Mais à l’occasion, j’aimerais bien avoir le fin mot de l’histoire.

      Encore merci pour tout ce boulot,
      Luc

    Répondre à ce message

  • Cela ne vaudra-t-il pas la peine d’ajouter une option pour passer une classe clear ?

    Répondre à ce message

Ajouter un commentaire

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom