SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 650 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 ?
  • [Se connecter]

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

  • Coche Mots

    12 mars 2013 – 26 commentaires

    Ajoute une icône au formulaire d’ajout de mots-clés affichant une liste de cases à cocher de tous les mots-clés d’un groupe. D’après une idée originale de Sébastien, voir Choix des mots clés dans une fenêtre. Objectif Lorsque l’on doit associer (...)

  • GIS 4

    11 août 2012 – 1182 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Pages uniques

    11 décembre 2008 – 248 commentaires

    Allez, avouez... il ne vous est jamais arrivé d’avoir besoin d’articles qui ne sont rattachés à aucun rubriquage particulier ? Des articles uniques, n’ayant ni de thème, ni de rapport avec aucun autre ? Ou encore des articles pour lesquels vous avez (...)

  • ScolaSPIP 4

    19 janvier – 39 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 4 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • spiPDF : générer des contenus sur mesure en PDF

    16 février 2011 – 200 commentaires

    Le plugin spiPDF génère des fichiers au format PDF d’article ou de tout autre élément SPIP, simplement à partir d’un squelette construit au format HTML 4 et facile à modifier. Présentation Le plugin génère des fichiers PDF à partir d’un squelette (...)