SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 119 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

  • Sauvegarder le répertoire IMG/ avec wget

    20 février 2007 – 10 commentaires

    Voici un système client serveur en deux lignes pour sauvegarder le répertoire des documents.

  • Rôles de documents

    21 février – commentaires

    Ce plugin permet d’attribuer un rôle aux documents liés aux contenus, et cerise sur le gâteau, rend possible la gestion des logos par le biais des documents-joints. Principe Les documents liés aux contenus n’ont pas forcément tous la même (...)

  • COLT : Extension de Firefox utile pour SPIP

    21 septembre 2008 – commentaires

    Une petite extension de Firefox qui permet de copier des liens sous format SPIP

  • Moulinette

    17 juillet 2015 – 46 commentaires

    Un squelette qui monte et qui descend ! Moulinette est un squelette basé sur le thème Grayscale (documentation) pour Bootstrap 3. Le type de site attendu est un site en une seule page : une rubrique avec quelques articles, des titres courts, des (...)

  • Plugin Duplicator

    3 janvier 2010 – 88 commentaires

    Duplication de rubrique et de ses contenus, et duplication d’articles pour SPIP Fonctionnement Ce plugin permet de dupliquer une rubrique et son contenu depuis l’espace privé en ajoutant un bouton dans la navigation de gauche dans l’espace privé (...)