SPIP-Contrib

SPIP-Contrib

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

288 Plugins, 197 contribs sur SPIP-Zone, 156 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

  • Plugin Modèles media

    25 avril 2011 – 169 commentaires

    Les modèles , et 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 (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2230 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • Einsteiniumist (Squelette)

    23 avril 2013 – 81 commentaires

    Un squelette principalement conçu pour les sites de type blog et portfolio. Présentation : Adaptation pour Zpip du thème Wordpress Einsteiniumist conçu par Padd Solutions. Voir une démo du thème et du squelette Einsteiniumist. Ce squelette (...)

  • Plugin séances

    10 octobre 2010 – 85 commentaires

    Dans la gestion d’événements, il arrive d’avoir à mettre en rapport un spectacle (film, concert ou autre), un lieu et une date. Il est alors possible d’envisager plusieurs modes de présentation : pour un spectacle donné, les dates et lieux de celui-ci, (...)

  • Champs Extras 3

    16 janvier 2012 – 588 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

Ça spipe par là