2008-09-06 16 views
2

Ich habe eine Baumdarstellung von Seiten in einer CMS-Anwendung. Ich verstehe, wie man den Baum in der Datenbank hält. Allerdings habe ich keinen guten Weg zu:So legen Sie die Reihenfolge in Unterknoten einer Baumstruktur fest

A) Unterseiten unter einer bestimmten übergeordneten Seite neu anordnen.
B) Bereitstellung einer UI-Implementierung, die es dem Benutzer ermöglicht, die Bestellung zu ändern.

Irgendwelche Vorschläge?

Antwort

0

Wenn Sie die Bestellung selbst ändern, müssen Sie eine bestimmte Reihenfolge für jede Seite in der Datenbank speichern. Gerade der aktuelle höchste/niedrigste Wert +/- 1 wäre wahrscheinlich ein guter Ausgangspunkt. Sobald Sie diese Reihenfolge eingegeben haben, wird das Umsortieren zu einem Fall, in dem zwei Werte ausgetauscht werden oder der Wert für eine Seite zwischen zwei anderen geändert wird (Sie könnten Floats verwenden, denke ich, aber Sie müssen möglicherweise neu nummerieren, wenn Sie es zu viele teilen) mal).

Wie auch immer, sobald Sie das haben, benötigen Sie eine Benutzeroberfläche. Ich habe einen sehr einfachen 'swap this with the one über/unter'-Ansatz gesehen, der ein einfacher Weblink oder ein AJAX-Anruf sein kann. Sie könnten dem Benutzer auch alle Seitenwerte präsentieren und sie auffordern, sie neu zu nummerieren, wie sie es für richtig halten. Wenn Sie Spaß haben möchten, ist JavaScript Drag & Drop ein guter Ansatz. Ich habe ExtJS und Mootools als Frameworks in dieser Art von Bereich verwendet. Wenn Sie nicht alle Extjs-Widgets brauchen, würde ich in Zukunft weit weg davon sagen, und schauen Sie sich etwas an wie die Mootools Dynamic Sortables demo.

0

A) Ich habe eine ähnliche CMS App und ich speichere einen Ordinalwert mit der Seite für einen bestimmten Baum und sortiere diesen Wert - da viele meiner Seiten an völlig verschiedenen Seiten erscheinen, muss ich die Ordnungszahl beibehalten eine Seite/Baum-Kombination.

B) Ich möchte auch einen besseren Weg, dies zu tun. Momentan klicken sie auf den Knoten in der Baumansicht und auf dem Hauptseitenbildschirm können sie die Seite verschieben. Ich habe Drag and Drop mit Java Script und anderen Lösungen versucht, aber meine Benutzer konnten nie damit arbeiten, ohne viel Hand zu halten. Ich werde an den Antworten auf dieses Thema interessiert sein.

Verwandte Themen