begin process at 2008 08 07 21:57:22
1 223 132 membres
473 nouveaux aujourd'hui
14 227 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ARBORESCENCE DE FICHIERS


Information sur la source

Catégorie :Application Classé sous : explorateur, parcourir, fichiers Niveau : Expert Date de création : 19/04/2002 Date de mise à jour : 19/04/2002 20:15:33 Vu / téléchargé: 8 990 / 175

Note :
Aucune note

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

Description

<!-- L'explorateur comprend 3 pages cfm -->
<!-- 1. Page listing.cfm : feuille qui comprendra l'arborecence-->
<!-- 2. Custom Tag arbot.cfm : C'est lui qui va permettre d'alimenter l'arborescence -->
<!-- 3. Page traitement.cfm : feuille qui sera appelée lors du clic sur un fichier-->        

Source

  • <!-- ************ PAGE listing.cfm ************ -->
  • <!-- Ici le répertoire à explorer -->
  • <cfset ExploreRep = "VOTRE REPERTOIRE">
  • <!-- Accès à la page qui sera appelée lors du clic sur un fichier de l'arborescence -->
  • <cfset TraitePage = "traitement.cfm">
  • <cfset DirComplet = "">
  • <!--- Custom Tag qui renvoie l'arborescence complète à partir du répertoire maître --->
  • <cf_arbot dir="#ExploreRep#">
  • <cfform action="#TraitePage#" method="POST">
  • <cftree name="Tree"
  • width="50%"
  • bold="No"
  • italic="No"
  • border="yes"
  • hscroll="yes"
  • vscroll="yes"
  • required="Yes"
  • completepath="no"
  • appendkey="Yes"
  • highlighthref="no"
  • >
  • <!--- Répertoire maître --->
  • <cftreeitem
  • value="#ExploreRep#"
  • display="#ExploreRep#"
  • img="dossier_ouv.gif"
  • imgopen="dossier_ferm.gif"
  • queryasroot="yes"
  • expand="Yes"
  • >
  • <!--- Le contenu du répertoire maître --->
  • <cfloop list="#DirComplet#" index="curdir" delimiters=";">
  • <cftreeitem value="#GetToken('#curdir#',1,',')#"
  • display="#GetToken('#curdir#',2,',')#"
  • parent="#GetToken('#curdir#',3,',')#"
  • img="#GetToken('#curdir#',4,',')#"
  • imgopen="dossier_ferm.gif"
  • queryasroot="yes"
  • expand="no"
  • HREF="#TraitePage#"
  • target=""
  • >
  • </cfloop>
  • </cftree>
  • </cfform>
  • <!-- ************ CUSTOM TAG Arbot.cfm ************ -->
  • <!--- Récupération du chemin à explorer --->
  • <cfparam name="attributes.dir">
  • <cfdirectory action="LIST" directory="#attributes.dir#" name="curdir" sort="Name">
  • <!--- Directory = nom du répertoire --->
  • <!--- Sort = liste optionnelle de colonnes séparées par une virgule IMPORTANT --->
  • <!--- Name = Requête si ACTION="list" --->
  • <cfset DirComplet = ""> <!--- Elément qui sera renvoyé --->
  • <cfloop query="curdir"> <!--- Contient l'arboresence à partir du dossier maître --->
  • <cfif Name is not "." and name is not "..">
  • <!--- Si ACTION = "LIST"...Name = "nom du fichier ou du répertoire "
  • ...Type = "FILE" pour fichier, "DIR" pour répertoire --->
  • <cfif Type IS "dir">
  • <cfset img = "dossier_ouv.gif">
  • <cfelse>
  • <cfset img = "file.gif">
  • </cfif>
  • <cfset DirComplet = DirComplet & "#attributes.dir#/#name#,#name#,#attributes.dir#,#img#;">
  • <!--- S'il y a encore un dossier, on affiche son arborescence --->
  • <!-- Appel du custom tag de manière récursive -->
  • <cf_arbot dir="#attributes.dir#/#name#">
  • </cfif>
  • </cfloop>
  • <cfset caller.DirComplet = caller.DirComplet & DirComplet>
  • <!-- ************ PAGE traitement.cfm ************ -->
  • <!-- Récupération du nom du fichier sur lequel l'utilisateur a cliqué -->
  • <cfparam name="url.cftreeitemkey" default = "">
  • <!-- On met au bon format le chemin complet du fichier -->
  • <cfset url.cftreeitemkey = replace(trim(#url.cftreeitemkey#),"/","\","ALL")>
  • <!-- On affiche l'élement selectionné -->
  • <cfoutput>
  • #url.cftreeitemkey#
  • </cfoutput>
<!-- ************ PAGE listing.cfm ************ -->

<!-- Ici le répertoire à explorer -->
<cfset ExploreRep = "VOTRE REPERTOIRE">

<!-- Accès à la page qui sera appelée lors du clic sur un fichier de l'arborescence -->
<cfset TraitePage = "traitement.cfm">

<cfset DirComplet = "">

<!--- Custom Tag qui renvoie l'arborescence complète à partir du répertoire maître ---> 
<cf_arbot dir="#ExploreRep#">

<cfform action="#TraitePage#" method="POST">
	<cftree name="Tree"
			width="50%"
			bold="No"
			italic="No"
			border="yes"
			hscroll="yes"
			vscroll="yes"
			required="Yes"
			completepath="no"
			appendkey="Yes"
			highlighthref="no"
		>
					
		<!--- Répertoire maître --->
		<cftreeitem 
			value="#ExploreRep#" 
			display="#ExploreRep#" 
			img="dossier_ouv.gif"
			imgopen="dossier_ferm.gif"
			queryasroot="yes" 
			expand="Yes"
		>
					
		<!--- Le contenu du répertoire maître --->
		<cfloop list="#DirComplet#" index="curdir" delimiters=";">
			<cftreeitem value="#GetToken('#curdir#',1,',')#" 
						display="#GetToken('#curdir#',2,',')#" 
						parent="#GetToken('#curdir#',3,',')#" 
						img="#GetToken('#curdir#',4,',')#" 
						imgopen="dossier_ferm.gif"
						queryasroot="yes" 
						expand="no" 
						HREF="#TraitePage#" 
						target=""
			>
		</cfloop>
	</cftree>
</cfform>


<!-- ************ CUSTOM TAG Arbot.cfm ************ -->

<!--- Récupération du chemin à explorer --->
<cfparam name="attributes.dir">

<cfdirectory action="LIST" directory="#attributes.dir#" name="curdir" sort="Name">
	<!--- Directory = nom du répertoire --->
	<!--- Sort = liste optionnelle de colonnes séparées par une virgule IMPORTANT ---> 
	<!--- Name = Requête  si ACTION="list" --->
	
	<cfset DirComplet = "">		<!--- Elément qui sera renvoyé  --->
	
	<cfloop query="curdir">		<!--- Contient l'arboresence à partir du dossier maître --->

		<cfif  Name is not "." and name is not "..">
			<!--- Si ACTION = "LIST"...Name = "nom du fichier ou du répertoire " 
									...Type = "FILE" pour fichier, "DIR" pour répertoire --->
			<cfif Type IS "dir">
				<cfset img = "dossier_ouv.gif">
			<cfelse>
				<cfset img = "file.gif">
			</cfif>
			
			<cfset DirComplet = DirComplet & "#attributes.dir#/#name#,#name#,#attributes.dir#,#img#;">
			
			<!--- S'il y a encore un dossier, on affiche son arborescence --->
			<!-- Appel du custom tag de manière récursive -->
			<cf_arbot dir="#attributes.dir#/#name#">
		</cfif>
	</cfloop>

<cfset caller.DirComplet = caller.DirComplet & DirComplet>


<!-- ************ PAGE traitement.cfm ************ -->

<!-- Récupération du nom du fichier sur lequel l'utilisateur a cliqué -->
<cfparam name="url.cftreeitemkey" default = "">

<!-- On met au bon format le chemin complet du fichier -->
<cfset url.cftreeitemkey = replace(trim(#url.cftreeitemkey#),"/","\","ALL")>

<!-- On affiche l'élement selectionné -->
<cfoutput>
	#url.cftreeitemkey#
</cfoutput>
         

Conclusion

Je l'ai testé plusieurs fois et il marche correctement, cependant il a une petite faille et je ne sais pas comment le résoudre.

Si l'on rafraichit la page listing.cfm, le CFTREE ne s'affiche plus et il est nécessaire de vider le cache afin de pouvoir reconsulter l'arborescence.

Si vous avez des corrections, je serai trés attentif...        
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de gusdesb le 27/04/2004 10:44:01

    j'ai essayé le code dans une de mes pages et moi je peux rafraichir la page sans aucun problème. En revanche, le fait de cliquer une première fois sur un dossier déjà ouvert entraine une erreur et la fermeture du navigateur.
    L'erreur est la suivante :

    runtime error!
    program: ........iexplore.exe
    this application has requested the Runtime to terminate it in an unusual way.

    Puis quand je relance la page et que je refais la même manip, ca marche. Quelqu'un aurait-il une solution à mon problème?
    Merci d'avance.

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS