Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Module d'affichage de fichiers
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.2.1
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11.2.1
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ CMSPrinting: 1.0.3
#~ FileManager: 1.4.1
#~ MenuManager: 1.8.4
#~ MicroTiny: 1.2.3
#~ ModuleManager: 1.5.5
#~ News: 2.12.9
#~ Search: 1.7.7
#~ ThemeManager: 1.1.7
#~ CGFavs: 1.0.4
#~ CGExtensions: 1.31.1
#~ ExtendedTools: 1.3.3
#~ Gallery: 1.6
#~ Guestbook: 1.3.3.2
#~ EventsListing: 1.5
#~ TinyMCE: 2.9.11
#~ CGCalendar: 1.10.0.1
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ output_compression:
#~ max_upload_size: 64000000
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale: fr_FR.utf8
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.2.17
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 128M
#~ max_execution_time: 120
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 64M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: cgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.0.51a
#~ Server Db Grants: Impossible de trouver un privilège "GRANT ALL". Cela peut signifier que vous pourriez avoir des problèmes pour installer ou retirer des modules, ou encore l 'ajout et la suppression d'éléments, y compris les pages.
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour
Je mets à disposition sur le site de mon village des fichiers pdf tous les 2 mois, aujourd'hui il y a en 28 et la page commence à s'allonger et l'ajout est un peu idiomatique vu que je change juste le numéro du fichier dans un copier coller.
J'aimerai savoir s'il existe un module qui permette d'afficher le contenu d'un répertoire sous la forme d'un listing plutôt sympa.
Une idée?
Pas besoin de stats de téléchargement etc. Mais par exemple un affichage en bloc ou liste déroulante

D'avance merci
Guillaume
Répondre
#2

Une simple code smarty te permettrait ce genre de chose sans devoir ajouter de module.


Dans un bloc de contenu global :

Code :
{assign var='files' value='uploads/fichiers/*.pdf'|glob}
{if count($files)}
  {foreach from=$files item='file'}
    <p>Télécharger le <a href='{$file}' >fichier</a></p>
  {/foreach}
{/if}

Ensuite pour plus de lisibilité tu peux faire du parsing de nom de fichier afin de remplacer " >fichier</a>" par un truc plus explicite : son nom.

Pour cela la fonction php basename devrait faire son office avec un truc du genre


Code :
{assign var='files' value='uploads/fichiers/*.pdf'|glob}
{if count($files)}
  {foreach from=$files item='file'}
    <p>Télécharger <a href='{$file}' >{$file|basename}</a></p>
  {/foreach}
{/if}

à tester évidement
Répondre
#3

Excellent
J'abuserai pour avoir les fichiers dans l'ordre inverse?
basename ne fonctionne pas par contre, j'ai encore le .pdf qui apparait.

Sinon j'ai fouillé la forge, et il y a un plugin "file_listing" (en fait je cherchais via le gestionnaire de module qui ne trouvait pas le plugin forcément) qui fait bien son boulot, par contre la forme n'est pas facilement customizable mais ta solution a l'air plus flexible, à voir.
Répondre
#4

Bonjour,
Tu peux voir du côté du module UPLOADS, je pense qu'il t'aidera dans ce que tu veux faire.
Je l'ai utilisé pour faire à peu près la même chose que toi et, il marche parfaitement.
Répondre
#5

pour trier en ordre inverse :

Citation :{assign var='files' value='uploads/fichiers/*.pdf'|glob}
{if count($files)}
{$files|rsort}
{foreach from=$files item='file'}
<p>Télécharger <a href='{$file}' >{$file|basename}</a></p>
{/foreach}
{/if}

un tri inverse sur tableau PHP, rien de mortel

http://fr2.php.net/manual/en/function.rsort.php

si basename ne correspond pas tout a fait, il suffit de chercher un peu dans la doc php

http://php.net/manual/en/function.basename.php


Citation :{assign var='files' value='uploads/fichiers/*.pdf'|glob}
{if count($files)}
{$files|rsort}
{foreach from=$files item='file'}
<p>Télécharger <a href='{$file}' >{$file|basename:'.pdf'}</a></p>
{/foreach}
{/if}


Si tu as autre chose que du pdf dans la liste il faudra jongler autrement.
Répondre
#6

Great Smile
Beaux petits exemples de l'utilisation des modificateurs smarty.
Si maintenant tu as différentes extensions à gérer, je te proposerais ce plugin :
Code :
<?php
/**
* Smarty plugin
*/

/**
* Type:     modifier
* Name:     extension_out
* Purpose:  Returns trailing name component of path
* @link
* @author   Jean le Chauve
* @param file
* @return string
*/

function smarty_cms_modifier_extension_out($file)
{
$info = pathinfo($file);
return basename($file,'.'.$info['extension']);
}

?>
Nomme-le modifier.extension_out.php et place-le dans le répertoire plugins

CGB
Code :
[== Indéfini ==]
{assign var='files' value='uploads/files/formations/*'|glob}
{if count($files)}{$files|rsort}
  {foreach from=$files item='file'}
    <p>Télécharger <a href='{$file}' >{$file|extension_out}</a></p>
  {/foreach}
{/if}
Répondre
#7

Citation :Great
Beaux petits exemples de l'utilisation des modificateurs smarty.

merci Smile

pas mal non plus ton plugin (j'avais la flemme de l'écrire celui là ...)
Répondre
#8

Tu rigoles, c'est un simple copié-collé de http://www.php.net/manual/en/function.ba....php#94026
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)