Sortierreihenfolge für Foren und Kategorien

captainslater

Bekanntes Mitglied
Registriert
11. Dez. 2010
Beiträge
295
Punkte
93
Für viele BenutzerInnen ist dies sicherlich bekannt, dennoch möchten wir euch kurz erklären wie man Foren und Kategorien sortieren kann. Normalerweise werden Zahlen in Zehnerschritten für die Sortierreihenfolge verwendet.

Wenn ihr also fünf Foren anlegt und dafür die Zahlen 1 bis 5 verwendet:

Forum A
Forum B
Forum C
Forum D
Forum E

Falls ihr jetzt zwischen Forum A und B noch ein weiteres Forum hinzufügen wollt, müsst ihr alle weiteren Foren nochmals neu nummerieren damit die Reihenfolge korrekt bleibt.

Vergebt ihr die Nummern in Zehnerschritten wie 10, 20, 30, 40 und 50 könnt ihr zwischen den Foren noch neun weitere Foren hinzufügen.

Falls ihr wirklich auf der sicheren Seite sein wollt, könnt ihr die Zahlen in Hunderterschritten vergeben, wie 100, 200, 300 ...


Das selbe Prinzip ist für weitere Bereiche im Administrator-Kontrollzentrum anwendbar.


Quelle: Display Order Numbering for Categories and Forums von Brogan
 
PHU
also mit 1400 subforen wird selbst mein addon dafür schwierigkeiten haben (es müsste in 1,2 wochen veröffentlicht werden, je nachdem wie schnell die Tester ihr OK geben:D )
 

Anhänge

  • acp.png
    acp.png
    71,9 KB · Aufrufe: 21
Eine Drag and Drop Lösung wäre gut. Das sollte mit jQuery auch kein soo großer Aufwand sein.
 
Das seh ich auch so, aber da warte ich lieber auf ein XenForo Core Feature, dass D&D global erlaubt.

Wenn nun jeder mit ner eigener Lösung daherkommt und Eigenimplementierungen oder jquery plugins einbindet, ist es ein Käse, womöglich sind sich die Addons dann auch noch im Weg.. und vorallem wegen der jquery updates wird es schwer..:/
 
PHU
also mit 1400 subforen wird selbst mein addon dafür schwierigkeiten haben (es müsste in 1,2 wochen veröffentlicht werden, je nachdem wie schnell die Tester ihr OK geben:D )


Wie weit ist es denn dein Plugin?
 
Und bevor es auch hier heißt, dass die Sortierung nicht funktioniert=>

Du kannst die Foren immer nur "in der Ebene in der sie sich befinden" sortieren:confused:
Das heißt,

Forum 1
Forum 20
Forum 2
-Forum 3
-Forum 4
--Forum 5
--Forum 12
--Forum 14

Falls du nun Forum 14 über Forum 20 legen willst, wird es NICHT mit dem Addon gehen(zumindest nicht mit der aktuellen Version), da das nicht über die Sortierreihenfolge sondern über das Elternelement geregelt wird! Das ist ein kleines Missverständniss seitens XF...

Mit dem Addon kannst du nur sagen, dass zB Forum14 über Forum 5 gehört ...
 
Also ich brauche es zb für

Samsung
1 - S3
- Subforen sind immer gleich
2 - S4
- Subforen sind immer gleich
3 - S5
- Subforen sind immer gleich

kommt nu zb as S4 Mini soll das dann die 3 haben. Ist eigentlich gut gelöst leider bei meiner Menge an Foren auch mit dem Addon unübersichtlich aber dafür kannst du nix. Ich bräuchte nur bestimmte ebenen wenn ich zb die subforen in den Kategorien ausblenden könnte wäre das einfacher.

Noch besser wäre es wenn man eine Kategorie auswählen könnte und in der sortieren könnte.
 
Hallo, Maestro2k5 -


mit einem direkten MySQL-Befehl (oder zwei) sollte es gehen.

Entscheidend sind - aus meiner Sicht - die Felder

  • parent_node_id <= das ist das übergeordnete Element
  • display_order <= das ist die Sortierfolge

Code:
SET @c := 0;
UPDATE xf_node SET display_order = (SELECT @c := @c + 10) WHERE parent_node_id = 77 ORDER BY parent_node_id, display_order;

Ich habe dieses Beispiel gerade mal an einem kleinen Bereich in meinem Board getestet, vom Grundsatz her funktioniert es. Ich würde trotzdem ein Backup machen und es mit dem Backup zuerst ausprobieren. Operationen am lebenden Herzen sind nicht unproblematisch!

Voraussetzungen: Die Tabelle heisst bei Dir xf_node; die parent_node_id ist tatsächlich 77 (sonst setze den korrekten Wert ein). Wenn Du statt der Zehnerschritte lieber Hunderterschritte haben willst, musst Du halt eben "@c + 100" schreiben.

Ich gehe erst einmal davon aus, dass MySQL erst einmal das result set erstellt (mit der aktuellen Sortierung), und die Sätze entsprechend bereitstellt und nicht zwischendurch die Sortierung aktualisiert. Damit würde der erste Satz aus der Gruppe die display_order 10 bekommen, der nächste die 20 etc.

Stellt sich vielleicht noch die Frage, wie Du an die parent_node_id kommst?

Code:
SELECT node_id, title, node_name, display_order, parent_node_id FROM xf_node ORDER BY parent_node_id;

listet Dir Deine Elemente auf. Gut, 1.400 sind eine Menge Holz, sagen wir, Du suchst nach S4, dann wäre folgende Variante hilfreich:

Code:
SELECT node_id, title, node_name, display_order, parent_node_id FROM xf_node where title LIKE '%s4%' ORDER BY parent_node_id;

Im Ergebnis siehst Du dann, welche parent_node_id betroffen ist (oder sind).

Ich mache das per ssh (putty), d.h. greife direkt auf den MySQL-Server zu und gehe nicht über phpmyadmin oder ähnliches.
 
Zuletzt bearbeitet:
Zurück
Oben