D&Dを実現するためのスクリプトにDHTML Goodiesのdrag'n drop folder treeというものがあります。
http://www.dhtmlgoodies.com/index.html?whichScript=drag-drop-folder-tree
というわけで、中身をいじくるまえに、説明を読んでおく。
- setMaximumDepth = ツリーのネストの最大値。どの深さまでD&Dできるかを制御する。デフォルトで6まで。
- setMessageMaximumDepthReached = ドロップ先が、制限値を超過していたとき、のメッセージを設定する。
- setImageFolder = 画像へのパスを指定する。デフォルトはimages/
- setFolderImage = フォルダの画像ファイル名を指定する。
- setPlusImage = ツリーを閉じたときの画像を指定する
- setMinusImage = ツリーを開いたときの画像を指定する。
- setTreeId = ツリーのIDを指定する。
- expandAll = すべてのツリーを開く。initTree()のあとに呼ばないと駄目。
- collapseAll = すべてのツリーを閉じる。これもinitTree()のあとでないと駄目。
- getNodeOrders = ノードのIDを親から順に返す。
- setFileNameRename = ノードがリネームされたら呼び出すファイルを指定する。"renameId" と "newName"が渡される。デフォルトは"folderTree_updateItem.php"を呼び出します。
- setFileNameDelete = ノードが削除されたときの呼び出すファイルをしていする。"deleteIds"がカンマで区切られたリストとして渡される。デフォルトでは"folderTree_updateItem.php"を呼び出す。
- setRenameAllowed = リネームの有効無効を制御する。デフォルトではtrue. どのノードもリネームできないようにするにはfalseを設定する。
- setDeleteAllowed = setRenameAllowedの削除版。
- additionalRenameRequestParameters = リネーム時に追加で送信したいパラメータを連想配列で指定する。
tree.setAdditionalRenameRequestParameters({
name: "treeAction",
command: "renameNode"
});
- setAdditionalDeleteRequestParameters = 削除リクエスト版。
Example:
tree.setAdditionalRenameRequestParameters({
name: "treeAction",
command: "deleteNode"
});
which will add the variables name and command to the request sent to the server when an item is being deleted.