全くIT系ではない製造業の社員がイントラ上でColdFusionと格闘。システム構築を外部委託するとき「できればColdFusionでお願いします」と頼むのだが・・・・
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
去年抽選で当たったDSLiteを売って、Wiiを買ってみた。
するとWi-Fiのルーターが欲しくなり、I/0データのWN-G54/R3を購入・・・・
散財。
さて、サーバーの特定フォルダ以下をツリー表示する方法。
ColdFusionAdministratorのデーターソース設定にあるようなイメージです。
いいコンポーネントが無いかなぁ・・・と探したのですが、英語圏の検索が下手なのか、なかなか使えそうなものが見つかりませんでした。
結局、<CFDIRECTORY>(→LiveDocs) と <CFTREE>(→LiveDocs)の組み合わせでゴリゴリ書いてみたわけです。
・・・・( ̄~ ̄;)ウーン・・・
美しくないな・・・・・と思う。
回帰的に書きたかった所ですが、<cftree>から<cftreeitem>の部分を抜き出して回帰的に書こうとすると、
「CFTREEが無い!」と怒られてコンパイルできないわけです。
仕方なくネストネスト・・・・
当然階層の上限が出てしまいます。
いい方法ないかなぁ・・・・
と思っていたら、うたらぼさんが助けてくれました。
するとWi-Fiのルーターが欲しくなり、I/0データのWN-G54/R3を購入・・・・
散財。
さて、サーバーの特定フォルダ以下をツリー表示する方法。
ColdFusionAdministratorのデーターソース設定にあるようなイメージです。
いいコンポーネントが無いかなぁ・・・と探したのですが、英語圏の検索が下手なのか、なかなか使えそうなものが見つかりませんでした。
結局、<CFDIRECTORY>(→LiveDocs) と <CFTREE>(→LiveDocs)の組み合わせでゴリゴリ書いてみたわけです。
--------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CFTREEテスト</title>
</head>
<cfset root = "D:\ColdFusion8\wwwroot\scorpio\root\351083045"><!---表示フォルダの絶対パス--->
<cfset URLroot = "./root/351083045"><!---表示フォルダのURLルートパス--->
<cfdirectory action="list" directory="#root#" name="dir" sort="directory" recurse="yes">
<cffunction name="dirquery" returntype="query">
<cfargument name="dirname" required="yes" hint="フルパス指定">
<cfquery dbtype="query" name="dirtemp">
select NAME,TYPE from dir where directory = '#dirname#' order by name,type
</cfquery>
<cfreturn dirtemp>
</cffunction>
<body>
<cfform>
<cftree name="dlist" width="300" height="650" vspace="5" hspace="5" format="applet">
<cftreeitem value="#root#" display="351083045GH">
<cfset d1 = dirquery(root)>
<cfloop query="d1">
<cftreeitem display="#d1.NAME#" value="#root#\#d1.NAME#" parent="#root#"
img="#IIF((d1.TYPE is 'Dir'),DE('folder'),DE('document'))#">
<cfif d1.TYPE is 'Dir'>
<cfset parent1="#root#\#d1.NAME#">
<cfset d2 = dirquery(parent1)>
<cfloop query="d2">
<cfset path="#parent1#\#d2.NAME#">
<cftreeitem value="#path#" display="#d2.NAME#" parent="#parent1#"
img="#IIF((d2.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d2.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#replace(path,root,'')#")#'),DE(''))#"
target="mainFrame">
<cfif d2.TYPE is 'Dir'>
<cfset parent2=#path#>
<cfset d3 = dirquery(parent2)>
<cfloop query="d3">
<cfset path="#parent2#\#d3.NAME#">
<cftreeitem value="#path#" display="#d3.NAME#" parent="#parent2#"
img="#IIF((d3.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d3.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#replace(path,root,'')#")#'),DE(''))#"
target="mainFrame">
<cfif d3.TYPE is 'Dir'>
<cfset parent3=path>
<cfset d4 = dirquery(parent3)>
<cfloop query="d4">
<cfset path="#parent3#\#d4.NAME#">
<cftreeitem value="#path#" display="#d4.NAME#" parent="#parent3#"
img="#IIF((d4.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d4.TYPE is 'File'), DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d4.TYPE is 'Dir'>
<cfset parent4=path>
<cfset d5 = dirquery(parent4)>
<cfloop query="d5">
<cfset path="#parent4#\#d5.NAME#">
<cftreeitem value="#path#" display="#d5.NAME#" parent="#parent4#"
img="#IIF((d5.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d5.TYPE is 'File'), DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d5.TYPE is 'Dir'>
<cfset parent5=path>
<cfset d6 = dirquery(parent5)>
<cfloop query="d6">
<cfset path="#parent5#\#d6.NAME#">
<cftreeitem value="#path#" display="#d6.NAME#" parent="#parent5#"
img="#IIF((d6.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d6.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d6.TYPE is 'Dir'>
<cfset parent6=path>
<cfset d7 = dirquery(parent6)>
<cfloop query="d7">
<cfset path="#parent6#\#d7.NAME#">
<cftreeitem value="#path#" display="#d7.NAME#" parent="#parent6#"
img="#IIF((d7.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d7.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfset d8 = dirquery(path)>
<cfif d8.recordcount gt 0>
<cftreeitem value="7階層以上表示できません" parent="#path#\#d7.NAME#" img="element">
</cfif>
</cfloop><!---d7--->
</cfif>
</cfloop><!---d6--->
</cfif>
</cfloop><!---d5--->
</cfif>
</cfloop><!---d4--->
</cfif>
</cfloop><!---d3--->
</cfif>
</cfloop><!---d2--->
</cfif>
</cfloop><!---d1 --->
</cftree>
</cfform>
</body>
</html>
--------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CFTREEテスト</title>
</head>
<cfset root = "D:\ColdFusion8\wwwroot\scorpio\root\351083045"><!---表示フォルダの絶対パス--->
<cfset URLroot = "./root/351083045"><!---表示フォルダのURLルートパス--->
<cfdirectory action="list" directory="#root#" name="dir" sort="directory" recurse="yes">
<cffunction name="dirquery" returntype="query">
<cfargument name="dirname" required="yes" hint="フルパス指定">
<cfquery dbtype="query" name="dirtemp">
select NAME,TYPE from dir where directory = '#dirname#' order by name,type
</cfquery>
<cfreturn dirtemp>
</cffunction>
<body>
<cfform>
<cftree name="dlist" width="300" height="650" vspace="5" hspace="5" format="applet">
<cftreeitem value="#root#" display="351083045GH">
<cfset d1 = dirquery(root)>
<cfloop query="d1">
<cftreeitem display="#d1.NAME#" value="#root#\#d1.NAME#" parent="#root#"
img="#IIF((d1.TYPE is 'Dir'),DE('folder'),DE('document'))#">
<cfif d1.TYPE is 'Dir'>
<cfset parent1="#root#\#d1.NAME#">
<cfset d2 = dirquery(parent1)>
<cfloop query="d2">
<cfset path="#parent1#\#d2.NAME#">
<cftreeitem value="#path#" display="#d2.NAME#" parent="#parent1#"
img="#IIF((d2.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d2.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#replace(path,root,'')#")#'),DE(''))#"
target="mainFrame">
<cfif d2.TYPE is 'Dir'>
<cfset parent2=#path#>
<cfset d3 = dirquery(parent2)>
<cfloop query="d3">
<cfset path="#parent2#\#d3.NAME#">
<cftreeitem value="#path#" display="#d3.NAME#" parent="#parent2#"
img="#IIF((d3.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d3.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#replace(path,root,'')#")#'),DE(''))#"
target="mainFrame">
<cfif d3.TYPE is 'Dir'>
<cfset parent3=path>
<cfset d4 = dirquery(parent3)>
<cfloop query="d4">
<cfset path="#parent3#\#d4.NAME#">
<cftreeitem value="#path#" display="#d4.NAME#" parent="#parent3#"
img="#IIF((d4.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d4.TYPE is 'File'), DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d4.TYPE is 'Dir'>
<cfset parent4=path>
<cfset d5 = dirquery(parent4)>
<cfloop query="d5">
<cfset path="#parent4#\#d5.NAME#">
<cftreeitem value="#path#" display="#d5.NAME#" parent="#parent4#"
img="#IIF((d5.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d5.TYPE is 'File'), DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d5.TYPE is 'Dir'>
<cfset parent5=path>
<cfset d6 = dirquery(parent5)>
<cfloop query="d6">
<cfset path="#parent5#\#d6.NAME#">
<cftreeitem value="#path#" display="#d6.NAME#" parent="#parent5#"
img="#IIF((d6.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d6.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfif d6.TYPE is 'Dir'>
<cfset parent6=path>
<cfset d7 = dirquery(parent6)>
<cfloop query="d7">
<cfset path="#parent6#\#d7.NAME#">
<cftreeitem value="#path#" display="#d7.NAME#" parent="#parent6#"
img="#IIF((d7.TYPE is 'Dir'),DE('folder'),DE('document'))#"
href="#IIF((d7.TYPE is 'File'),DE('#URLroot#/#URLEncodedFormat("#path#")#'),DE(''))#"
target="mainFrame">
<cfset d8 = dirquery(path)>
<cfif d8.recordcount gt 0>
<cftreeitem value="7階層以上表示できません" parent="#path#\#d7.NAME#" img="element">
</cfif>
</cfloop><!---d7--->
</cfif>
</cfloop><!---d6--->
</cfif>
</cfloop><!---d5--->
</cfif>
</cfloop><!---d4--->
</cfif>
</cfloop><!---d3--->
</cfif>
</cfloop><!---d2--->
</cfif>
</cfloop><!---d1 --->
</cftree>
</cfform>
</body>
</html>
--------------------------
・・・・( ̄~ ̄;)ウーン・・・
美しくないな・・・・・と思う。
回帰的に書きたかった所ですが、<cftree>から<cftreeitem>の部分を抜き出して回帰的に書こうとすると、
「CFTREEが無い!」と怒られてコンパイルできないわけです。
仕方なくネストネスト・・・・
当然階層の上限が出てしまいます。
いい方法ないかなぁ・・・・
と思っていたら、うたらぼさんが助けてくれました。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CFTREEテスト</title>
</head>
<cfset root = "D:\ColdFusion8\wwwroot\scorpio\root\351083045"><!---表示フォルダの絶対パス--->
<cfset URLroot = "/scorpio/root/351083045"><!---表示フォルダのURLルートパス--->
<cfdirectory action="list" directory="#root#" name="dir" recurse="yes" sort="directory">
<body>
<cfform>
<cftree name="dlist" width="300" height="650" vspace="5" hspace="5" format="applet">
<cftreeitem value="#root#" display="351083045GH">
<cfset item = structNew()>
<cfloop query="dir">
<cfset item.display= dir.name>
<cfset item.value = "#dir.directory#\#dir.name#">
<cfset item.img = IIF((dir.TYPE is 'Dir'),DE('folder'),DE('document'))>
<cfset item.href = IIF((dir.TYPE is 'File'),DE('#URLroot##URLEncodedFormat("#replace(item.value,root,'')#")#'),DE(''))>
<cftreeitem display="#item.display#" value="#item.value#" parent="#dir.directory#" img="#item.img#"
href="#item.href#" target="mainFrame">
</cfloop>
</cftree>
</cfform>
</body>
</html>
これでスッキリです。
うたらぼさん ありがとうございます。
PR
この記事にコメントする
ご案内
ブログランキングご参加〔相互リンク〕のお願い
サイト名:タイムブログランキング
URL:http://www.time-ranking.com/
はじめまして、「タイムブログランキング」管理人の水本と申します。
7月中旬を目処にBLOGランキングサイトをオープンいたします。
現在プレオープン中ですが、先行登録受付を開始いたしました。
ご参加いただけるブログ様を募集中です。
ランキング参加は、該当のカテゴリをお選びいただき登録していただきますと
投票用リンクタグが発行されます。
投票用リンクタグを貴ブログに貼り付けて頂くだけでOKです。
何卒ご検討のほどよろしくお願いいたします。
※検索サイト・ランキングサイト等より訪問しております為、
重複してのご案内になりましたらお許し下さい。
サイト名:タイムブログランキング
URL:http://www.time-ranking.com/
はじめまして、「タイムブログランキング」管理人の水本と申します。
7月中旬を目処にBLOGランキングサイトをオープンいたします。
現在プレオープン中ですが、先行登録受付を開始いたしました。
ご参加いただけるブログ様を募集中です。
ランキング参加は、該当のカテゴリをお選びいただき登録していただきますと
投票用リンクタグが発行されます。
投票用リンクタグを貴ブログに貼り付けて頂くだけでOKです。
何卒ご検討のほどよろしくお願いいたします。
※検索サイト・ランキングサイト等より訪問しております為、
重複してのご案内になりましたらお許し下さい。
Re:無題
http://d.hatena.ne.jp/utalab/20070712/1184166842
(」゜ロ゜)」 おぉなるほど。
treeitemは、parentを指定するから記述する順番は気にしなくていいので、cfdirectoryの結果を全部ループしちゃえばいいわけだ!
うたらぼさん、ありがとうございます。
すっきりしたソースになりました。
(」゜ロ゜)」 おぉなるほど。
treeitemは、parentを指定するから記述する順番は気にしなくていいので、cfdirectoryの結果を全部ループしちゃえばいいわけだ!
うたらぼさん、ありがとうございます。
すっきりしたソースになりました。
最新記事
(12/04)
(12/19)
(10/07)
(09/11)
(05/07)
(04/24)
(01/11)
(12/27)
(11/05)
(11/03)
ブログ内検索
カテゴリー
プロフィール
HN:
CFIF
性別:
男性
自己紹介:
もっと日本でもColdFusionが広まって欲しいです。
情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。
外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・
FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。
外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・
FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
最新コメント
(05/20)
(03/15)
(05/25)
(02/07)
(12/19)
最新トラックバック
カレンダー
01 | 2025/02 | 03 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
ColdFusionリンク
アーカイブ
最古記事
(06/23)
(06/26)
(06/27)
(06/28)
(06/29)
(06/30)
(07/03)
(07/04)
(07/05)
(07/06)
なかのひと