SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [vi] [zh] Espace de traduction

Télécharger
Accueil > Documentation en français > Webmestres > Guide des fonctions avancées > Multimedia et traitements graphiques > Les modèles d’incrustation de documents et leurs filtres

Les modèles d’incrustation de documents et leurs filtres

Décembre 2008 — mis à jour le : Juin 2013

Toutes les versions de cet article :

Les documents joints à un article sont généralement présentés en dehors de son texte, dans une espèce de portfolio séparé. SPIP permet de mentionner chacun de ces documents en un endroit arbitraire du texte. Cette mention peut se faire soit par un lien soit par une incrustation. Jusqu’à SPIP 1.9.2 inclus, le lien était fourni par le modèle doc et l’incrustation par le modèle emb. Depuis, l’incrustation est également disponible par autant de modèles que de groupes de type simple dans la Multipurpose Internet Mail Extension (soit 5 en MIME 1.0, seule version qu’a jamais connu cette nomenclature). Chacun de ces modèles gère différemment l’incrustation, souvent en appliquant au contenu d’un document un filtre spécifique redéfinissable déduit de son type.


Rappelons (Utiliser les modèles) qu’un modèle est un squelette appelable directement à partir du texte présent dans la base de données, afin d’obtenir un placement précis du fragment HTML décrit par le squelette. Pour le placement des pièces jointes, il en existe essentiellement deux, doc (pour référencer le document) et emb (pour l’incruster). L’incrustation offre le plus de possibilités.

Le modèle emb délègue à présent le travail à cinq modèles nommés par le nom du groupe MIME du document concerné : text, image, audio, video, application. Ces modèles sont utilisables directement (par exemple <audio44|center> est équivalent à <emb44|center> si le document relève du groupe audio) et il est d’ailleurs plus efficace de le faire, le modèle emb n’étant plus là qu’en cas de doute sur le groupe du document. L’utilisation directe a aussi l’avantage de forcer l’incrustation selon le modèle choisi, même si le document est officiellement d’un autre groupe. Cela permet de contourner certaines incongruités de la classification MIME : beaucoup de documents purement textuels y sont officiellement une application, par exemple le XHTML qui est pourtant un sous-ensemble du HTML, qui appartient au groupe text.

Le modèle text

Le modèle text incruste le contenu d’un document textuel dans un article, en appliquant au préalable si elle existe une fonction filtre_TT est un nom déduit du type MIME du document. Cette déduction consiste à remplacer dans le nom du type tous les caractères non alphanumériques par un souligné. Ainsi, pour le type text/txt le modèle cherchera s’il existe la fonction filtre_text_txt.

La fonction filtre_text_txt est fournie d’avance par SPIP, et elle est utilisée par défaut pour les documents du groupe text. Elle remplace les chevrons dans le corps du document par les entités HTML correspondantes, et l’entoure par une balise pre, ce qui permet de présenter le contenu du document directement.

Est fournie également la fonction filtre_text_csv, destinée aux documents text/csv. Le RFC4180 étant très diversement suivi par les tableurs, cette fonction compte le nombre de tabulation, de virgule et de points-virgule dans le document et considère que le plus fréquent des trois est le séparateur utilisé. Elle le remplace par les raccourcis SPIP appropriés, ce qui fournit une table HTML correspondant à celle fournie par le tableur. L’usage des guillemets pour introduire le séparateur lui-même ou un saut de ligne est traité correctement (par une entité HTML et une balise br respectivement). Le saut de ligne final optionnel est également bien géré. Si la première ligne n’a que sa première colonne de remplie, elle fournira la balise caption de la table. La seconde ligne (ou la première sinon) sera vue comme le nom des colonnes, et sera donc typographiée avec des balises th. Le format CSV n’ayant pas prévu d’indication d’encodage, il faut s’assurer que celui du document est le même que celui du site avant d’utiliser ce filtre, SPIP ne pouvant savoir si un ré-encodage est nécessaire.

Enfin, il existe filtre_text_html, destinée aux documents text/html. Elle incruste le corps du document (donc ce qui est délimité par la balise body). Ce corps sera toutefois expurgé de ses scripts, par mesure de sécurité. Les balises style éventuellement présentes dans l’en-tête, seront regroupées en une seule au début de l’incrustation. Les feuilles de styles référencées dans l’en-tête par des balises link de type text/css seront recherchées sur le WEB et leur contenu s’ajoutera à la balise style mentionnée ci-dessus. Toutefois cela ne sera possible que pour les feuilles dont l’URL est absolue (autrement dit complète). A cette condition seulement SPIP pourra présenter le document de manière équivalente à l’originale, et sous réserve que les balises img présentes dans le document possèdent elles aussi des URLs absolues.

Le modèle audio

Le modèle audio permet d’incruster le contenu d’un document audio dans un article, sous la forme d’une balise object. Comme le précédent, ce modèle cherche s’il existe une fonction filtre_TT est le nom du type après substitution des caractères non alpha-numériques par des soulignés. Mais il l’applique alors sur l’ID du document. Le résultat de cette fonction est inséré dans la balise object, ce qui permet en particulier de préciser les balises param souvent spécifiques au type audio concerné. De plus, les couples passés comme argument du modèle (syntaxe nom=val) sont eux aussi convertis en balise param.

Le modèle image

Le modèle image est une petite extension du raccourci img, présent de longue date dans SPIP. Il en diffère seulement en produisant une balise object plutôt qu’une balise img lorsque cette balise ne gère pas le type MIME du document concerné. Pour de tels types, il se comporte donc comme le modèle audio, à cette différence que les couples passés en arguments seront traités comme attributs de la balise object. Il est donc à choisir en particulier pour l’incrustation de documents de type SVG, lequel relève officiellement du groupe application.

Le modèle video

Le modèle video incruste le document en l’entourant d’un panneau de contrôle permettant de la faire défiler.

Le modèle application

Ce modèle correspondant au groupe fourre-tout de la spécification MIME, il n’a pas de description synthétique bien claire. Il évoluera certainement beaucoup avec le temps.

Utilisation

Comme pour les autres modèles, on écrit par exemple <text67> pour appliquer le modèle text au document numéro 67, et donc voir son contenu directement dans la page.

Ces modèles sont également implicitement utilisés par le squelette article standard de SPIP lorsque l’article a un corps vide et possède un seul document joint. Ce squelette se comporte alors comme si le texte de l’article était réduit à <embN>, où N est le numéro du document, ce qui a pour effet de présenter le corps du document comme contenu de l’article.

Pour afficher sur un site la mise en page opérée par un tableur, il suffit donc de créer un article et d’y joindre la version csv de ce type de document, sans aucune manipulation supplémentaire. De même si l’on veut mettre en ligne une vidéo ou un fichier audio.

On peut aussi facilement passer sous SPIP un site HTML statique en associant chacune de ses pages à un article vide : si les URLs de leurs feuilles de style et de leurs images sont complètes, SPIP les laissera conduire la mise en page.


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé