2010-04-28 3 views
2

jsTree www.jstree.com이라는 새로운 jQuery 플러그인을 사용하고 있으며 HTML 데이터 소스를 사용하고 있습니다.
또한 cfdirectory와 함께 ColdFusion 7을 사용하고 있으므로 파일 만 필터링하므로 디렉토리가됩니다. 이미지의 디렉토리 구조를 다시 만들 필요가 있습니다. 실제로 그 디렉토리 구조를 실제로 제공해야합니다. 나는 논리와 함께 시간의 지옥을 가지고있다. variables.imageDirectoriesLen = 8이 시나리오에서는 시작이 아닌 실제 파일 경로의 중간에서 출력됩니다.ColdFusion 및 jsTree를 사용하여 디렉토리 구조를 복제하는 데 도움이 필요합니다.

도움 주셔서 감사합니다.
데릭

alt text http://i41.tinypic.com/2yjsirl.png

이 지금까지

<cfoutput query="clientImageDirsFilter"> 
<cfset nextLen = 0 /> 
<cfset nextDir = "" /> 
<cfset nextRowCnt = currentRow+1 /> 

<cfset nextDir = clientImageDirsFilter.directory[nextRowCnt] & "\" & clientImageDirsFilter.name[nextRowCnt] /> 
<cfset nextLen = listLen(nextDir, "\") /> 
<cfset currLen = listLen(clientImageDirsFilter.directory & "\" & clientImageDirsFilter.name,"\") /> 

<cfif currLen eq nextLen> 
<li rel="folder" id="node_#randRange(1,99999)#"><a href="##"><ins>&nbsp;</ins>#clientImageDirsFilter.name#</a></li> 
<cfelseif nextLen lt currLen> 

    <cfif nextLen eq 0> 
     #repeatString("</li></ul>",(currLen-nextLen-variables.imageDirectoriesLen))# 
    </cfif> 

<cfelse>           
<ul> 
    <li rel="folder" id="node_#randRange(1,99999)#"><a href="##"><ins>&nbsp;</ins>#clientImageDirsFilter.name#</a> 
     <ul> 
</cfif> 

+0

아마도 조금 더 복잡한 접근 방식 (dir 쿼리> 구조체> JSON)을 사용하지만 결국 HTML 대신 JSON을 보냅니다. 이것이 맞는다면 코드를 게시 할 수 있습니다. –

답변

3

나는 recursive function Camden wrote를 약간 수정 한 버전을 사용 내가 가진 것입니다. 그것은 당신이 원하는 것을해야합니다.

<cfset initialDir = "C:\myrootdir"> 
<cfdirectory directory="#initialDir#" recurse="yes" name="files" sort="type asc"> 

<cfquery name="test" dbtype="query"> 
    select * from files where name <> 'Thumbs.db' 
</cfquery> 


<div id="basic_html"> 
     <cfset display(test,initialDir)> 
</div> 

<cffunction name="display" returnType="void" output="true"> 
    <cfargument name="files" type="query" required="true"> 
    <cfargument name="parent" type="string" required="true"> 
    <cfset var justMyKids = ""> 

    <cfquery name="justMyKids" dbtype="query"> 
    select * 
    from arguments.files 
    where directory = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.parent#"> 
    </cfquery> 
    <ul> 
    <cfoutput query="justMyKids"> 
     <cfif type is "Dir"> 
      <ul><li><a href="##"><ins> </ins>#Replace(name, "_", " ", "All")#</a> #display(arguments.files, directory & "\" & name)#</li></ul> 
     <cfelse> 
      <cfset fileURL = Replace(Replace(directory, initialDir, "", "All"), "\", "", "All") & "/" & name> 
      <li class="close"><a href="#fileURL#"><img src="http://localhost/globalincludes/interface/includes/js/jquery_plugins/jsTree/file.png" border="0"> #Replace(name, "_", " ", "All")#</a></li> 
     </cfif> 
     </li> 
    </cfoutput> 
    </ul> 
</cffunction> 
+0

굉장한! 감사. 검색하는 동안 찾은 것 같지 않은데. 실제로 작동합니다. 나는 너무 열심히 생각하고 있었다고 생각한다. – dbinott

관련 문제