私は、CMSアプリケーションでページのツリー表現を持っています。私はデータベースにツリーを永続化する方法を理解しています。しかし、私は良い方法がありません:ツリー構造のサブノードで順序を設定する方法
A)特定の親ページの下でサブページの順序を変更してください。
B)ユーザーが注文を変更できるようにするUI実装を提供します。
提案がありますか?
私は、CMSアプリケーションでページのツリー表現を持っています。私はデータベースにツリーを永続化する方法を理解しています。しかし、私は良い方法がありません:ツリー構造のサブノードで順序を設定する方法
A)特定の親ページの下でサブページの順序を変更してください。
B)ユーザーが注文を変更できるようにするUI実装を提供します。
提案がありますか?
オーダー自体を変更するには、データベース内の各ページとともに並べ替える必要があります。ちょうど現在の最高値/最低値+/- 1はおそらく良い出発点になります。その中でその順序を取ってしまえば、並べ替えは2つの値を入れ替えたり、1つのページの値を2つの値に変更する場合になります(フロートを使うこともできますが、回)。
とにかく、それを得たら、UIが必要です。私は、シンプルなWebリンクやAJAX呼び出しが可能な非常に単純な「これを上/下のアプローチと交換する」アプローチを見てきました。あなたはまた、すべてのページの値をユーザーに提示し、それらが合っていると見なして番号を付け直すように指示することもできます。あなたが気楽にしたい場合は、JavaScriptのドラッグアンドドロップが良いアプローチかもしれません。私はこの種の分野でフレームワークとしてExtJSとMootoolsを使用しました。 Extjsウィジェットをすべて必要としない場合は、将来的にはうまくいっていると思いますが、Mootools Dynamic Sortables demoのようなものを見てください。
A)私は同様のCMSアプリケーションを持っており、特定のツリーのページに序数を保存し、この値をソートします。多くのページが完全に異なるサイトに表示されるため、序数を維持する必要がありますページ/ツリーの組み合わせ。
B)これももっと良い方法が欲しいです。現在、ツリービューのノードをクリックし、メインページ画面でページを移動することができます。私は、Javaスクリプトや他のソリューションでドラッグアンドドロップしようとしましたが、私のユーザは手を握ることなくそれを使用することはできませんでした。私はこれに対する反応に興味があるでしょう。