SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 252 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.

Dernière modification de cette page le 30 octobre 2007

Retour en haut de la page

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

  • Plugin « Agrandir la largeur de page »

    3 août 2015 – 21 commentaires

    Ce plugin permet d’agrandir la largeur de la page dans l’espace privé de SPIP. Vous pourrez personnaliser cette largeur si besoin. Préambule Dans l’espace privé de SPIP, lorsque nous sommes connectés, nous pouvons choisir dans nos préférences (...)

  • Levenshtein

    9 mai 2016 – commentaires

    Proposition de mots lors de la recherche. La principale vocation du plugin Levenshtein est de proposer des corrections de mots lors de la recherche. Dépendance Pour fonctionner le plugin a besoin d’un lexique dans lequel faire les (...)

  • Vidéo Accessible

    6 avril 2011 – 161 commentaires

    Un plugin pour faciliter la diffusion de vidéos accessibles. Accessibilité des vidéos Accessibilité de la vidéo Afin d’être pleinement accessible, une vidéo (composée d’images et de sons) doit répondre à plusieurs critères. Le critère de base (...)

  • Formulaire d’upload en html5

    27 avril 2015 – 75 commentaires

    Un formulaire d’upload en html5 pour l’interface admin de SPIP. Ce plugin ajoute un système d’upload moderne à SPIP. Il peut être utilisé pour l’upload de masse. Ce système est basé sur dropzonejs. Utilisation Espace privé de SPIP Dans (...)

  • Mailshot

    16 janvier 2013 – 253 commentaires

    Ce plugin prend en charge l’envoi en nombre d’info-lettres par email. Mailshot permet l’envoi en nombre d’emails au moyen d’un SMTP (ou d’un service externe) dédié à cet effet. Il permet de limiter la cadence d’envoi. Enfin, ce plugin implémente la (...)

Ça spipe par là