SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

278 Plugins, 195 contribs sur SPIP-Zone, 121 visiteurs en ce moment

Accueil > Administration et BDD > Gestion des documents > |extension du #FICHIER

|extension du #FICHIER

21 octobre 2007 – par James, tetue – commentaires

1 vote

Un nouveau filtre pour connaitre l’extension d’un fichier

Il semble que SPIP 1.9.2 ne fournisse pas d’outil donnant l’extension d’un fichier. Oui, avec une boucle sur le type de document, on trouve l’#EXTENSION, mais avec un filtre, on économise une requête SQL pour une information qu’on connait déjà, ou presque :

Filtre |extension

Voici un filtre qui, appliqué à la balise #FICHIER dans une boucle (DOCUMENTS), donnera l’information nécessaire et suffisante :

<?php

function extension($fichier){
    
//Si je trouve un point vers la fin du nom de fichier, je renvoie ce qui suit
    
if (preg_match(',\.([^\.]+)$,'$fichier$regs))
        return 
$regs[1];
    
//Sinon, je ne renvoie rien, il n'y a pas d'extension.
    
return '';
}

?>

En effet, la balise #FICHIER contient l’extension, on peut donc l’en extraire.

Comme tous les filtres, il sera à copier/coller dans un fichier mes_fonctions.php. Vous pourrez ensuite employer cette notation dans vos squelettes : [(#FICHIER|extension)], pour afficher l’extension de fichier.

Par exemple, pour afficher, non pas la miniature de prévisualisation des documents visuels, mais leur icône de fichier, dont SPIP fournit une belle collection dans le répertoire dist/vignettes/, on utilisera ce filtre de la manière suivante :

[<img src="(#CHEMIN{[vignettes/(#FICHIER|extension).png]})" class="spip_logos" />]

Balise #EXTENSION

Comme nous ne sommes pas pingre, on vous offre maintenant la balise #EXTENSION :

<?php

function balise_EXTENSION($p){
    
//recuperer le champ fichier dans la table de la base de donnees
    
$_fichier champ_sql('fichier'$p);
    
//calculer l'extension du fichier en question
    
$p->code "extension($_fichier)";
    return 
$p;
}

?>

Ainsi, le code suivant produira le même effet :

[<img src="(#CHEMIN{[vignettes/(#EXTENSION).png]})" class="spip_logos" />]

L’avantage, c’est que quand vous passerez à SPIP 1.9.3, vous n’aurez pas à modifier vos squelettes et vous pourrez, si vous le souhaiter, supprimer les deux fonctions, pour un résultat identique.

Exemple de boucle

  1. <B_documents_joints>
  2. <div id="documents_joints">
  3. <h2><:titre_documents_joints:></h2>
  4. <ul>
  5. <BOUCLE_documents_joints(DOCUMENTS) {mode=document}{id_article} {!par date}{par titre, type_document, taille}>
  6. <li>
  7. [<a href="#URL_DOCUMENT"><img src="(#CHEMIN{vignettes/[(#FICHIER|extension)].png})"[ alt="(#FICHIER|extension)"] class="spip_logos" /></a>]
  8. [<p class="titre">(#TITRE|sinon{[(#FICHIER)]})</p>]
  9. [<p class="descriptif">(#DESCRIPTIF|PtoBR)</p>]
  10. <p class="info_document"><:info_document:> #TYPE_DOCUMENT [(<strong>.(#FICHIER|extension)</strong>)][(#LARGEUR|?{[ - (#LARGEUR)[ x (#HAUTEUR) pixels]],''})][ - <strong>(#TAILLE|taille_en_octets)</strong>][ - (#DATE|affdate{d/m/y}).] <a href="#URL_DOCUMENT"><:bouton_telecharger:></a></p>
  11. </li>
  12. </BOUCLE_documents_joints>
  13. </ul>
  14. </div>
  15. </B_documents_joints>

Télécharger

Le filtre |extension était nécessaire dans cette boucle qui a servi à réaliser l’« Espace Presse » du site de la Fédération Française d’Orthodontie, qui met des fichiers haute définition à disposition, pour les journaleux de la presse papier.

Détail de l'«<small class="fine"> </small>Espace presse<small class="fine"> </small>» du site de la FFO, octobre 2007.

Retour en haut de la page

Tout afficher

Vos commentaires

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Newsletters

    16 janvier 2013 – 224 commentaires

    Ce plugin permet de composer des Info-lettres. Par info-lettre, on désigne ici le contenu éditorial qui va être composé et envoyé par courriel à une liste d’inscrits. Le plugin permet de composer une info-lettre à partir d’un modèle pré-composé, d’un (...)

  • Plugin « Langue préférée par l’internaute »

    25 août 2009 – 28 commentaires

    Cet article explique comment fonctionne le plugin « Langue préférée par l’internaute » (langue_preferee) et comment le mettre dans un site multilingue existant.

  • Les crayons

    23 avril 2008 – 734 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • Menu déroulant 2

    17 juin 2011 – 36 commentaires

    Menu déroulant dynamique full CSS, qui plonge en profondeur et descend dans tous les niveaux de la hiérarchie, sans limitation. Ce menu déroulant, valide W3C, fonctionne dans tous les navigateurs : en CSS dans les navigateurs modernes, avec une (...)

  • Différence entre Zcore et Zpip v1.x

    23 janvier – 17 commentaires

    ... Ou « Le squelette Zpip vs le framework Z-Core » La présentation de Zpip ne se fait plus car on en a tous entendu parler ou pratiqué ce jeu de squelettes SPIP. De cette mécanique de construction des squelettes, Cédric (et quelques autres membres de (...)