Sortierung der Benutzergruppen beim Bearbeiten von Benutzern ändern

  • Affected Version
    WoltLab Suite 3.1

    Servus zusammen!

    Ich möchte bitte die Benutzerrollen in der Benutzeransicht nach ID und nicht nach Name sortieren. Sprich ich öffne einen Benutzer und bin dann da bei den allgemeinen Daten wo ich auch einen Haken setzen kann welche Benutzerrolle er erhält. Diese würde ich gerne nach ID sortieren da wir viele Ränge haben (um die 100) und diese sind ID zugehörig in unserer Externen Datenbank sortiert.

    ID 1 = xyz

    ID 2 = zxy

    ID 44 = vcxy

    usw.

    und wenn dann die Benutzerrollen in der Benutzeransicht nicht nach diesen IDs sortiert sind sucht man sich wieder dumm und dämlich, vor allem weil wir auch Benutzerrollen haben die gleich heißen.

  • Kurze Frage: Redest du von Benutzerrängen oder von Benutzergruppen?

    Benutzerränge kann man mit der dazugehörigen Punkt-Zahl auf eine Position entsprechend festlegen. Das ist quasi auch dann die Sortierung.

  • Kurze Frage: Redest du von Benutzerrängen oder von Benutzergruppen?

    Benutzerränge kann man mit der dazugehörigen Punkt-Zahl auf eine Position entsprechend festlegen. Das ist quasi auch dann die Sortierung.

    Benutzerrollen. Diese sollen halt in der Benutzerverwaltung - siehe Anhang - nach IDund nicht nach Name sortiert werden.

  • Dafür müsste man in den PHP Dateien die Sortierung anpassen. Ich kann gerade nicht selbst nachschauen. Schau einfach mal in lib/acp/form und da wahrscheinlich irgendwas mit User im Namen. UserEdit.class.php oder ähnliches. Vielleicht findest du da ja was zum ändern der Sortierung. kann aber natürlich auch sein, dass das in anderen Klassen geregelt wird.

    Die Änderung könnte dann bei Updates aber wieder überschrieben werden, weil Änderungen in PHP Dateien vom System nicht vorgesehen sind. Deshalb wäre das zumindest nicht optimal.

    Benutzerrollen

    Auf dem Screenshot steht übrigens deutlich Benutzergruppen und nicht Benutzerrollen ;) Es ist immer hilfreich, wenn man die richtigen Begriffe nutzt. Das führt dann zu weniger Verwirrung und hilft auch den Usern, die deinen Thread über die Suche finden wollen.

    Edited once, last by ReeN (June 18, 2019 at 12:35 PM).

  • Kurze Frage: Redest du von Benutzerrängen oder von Benutzergruppen?

    Das nennt sich aber Benutzergruppen und nicht Benutzerrollen.

    Wie ich schon gefragt hatte... Also die Benutzergruppen. Ja... das geht nur über die PHP-Datei... vielleicht bekommt man es noch im Template hin... Wenn ich mich nicht irre, gibt es eine List-Klasse unter dem Ordner /group/ irgendwo im system... dort wird die Sortierung und das Zusammenstellen der Liste vorbereitet... Da könnte man dann eingreifen, frühestens...

  • Also sortiert werden die Gruppen in der Datei: lib/acp/form/UserOptionListForm.class.php. Ich weiß jetzt aber spontan nicht, ob die Sortierung dadurch auch an anderen Stellen geändert werden würde, wenn man es in dieser Klasse anpasst.

    Aber wenn du willst kannst du es ja einfach mal testen, indem du in der genannten Datei Zeile 39 - 41 entfernst oder auskommentierst:

    PHP
            /*
            uasort($userGroups, function(UserGroup $groupA, UserGroup $groupB) {
                return strcmp($groupA->getName(), $groupB->getName());
            });
            */

    Dadurch werden die Gruppen nicht mehr nach Namen sortiert und sind nach ID sortiert. Ich weiß aber wie gesagt nicht, ob dann auch woanders die Gruppen anders sortiert angezeigt werden. Hab ich jetzt nicht nachgeschaut.

    Alternativ könnte man auch in der lib/acp/form/UserAdd.class.php die Gruppen via ksort() wieder nach ID sortieren lassen. Dann wäre die Änderung definitiv nur an der von dir gewünschten Stelle.

    Wenn es im Template gehen würde, wäre es natürlich schöner, aber da wüsste ich spontan nicht wie. Aber vielleicht stehe ich auch nur auf dem Schlauch.

    Wichtig:

    Vor Änderungen an Dateien natürlich immer ein Backup machen und am besten in einer Testumgebung testen.

  • Und eins wird auch passieren: beim nächsten Update der Foren-Version könnte die Änderung wieder verschwunden sein.

    Eventuell baut ja ein Entwickler einen kleinen EL der dann die Sortierung vor dem Ausgeben noch mal manipuliert und dann nach der gewünschten ID dann die Daten ausgibt... ;)

  • Das heißt, ich muss jetzt das hier (originaldatei)

    Code
    uasort($userGroups, function(UserGroup $groupA, UserGroup $groupB) {
                return strcmp($groupA->getName(), $groupB->getName());

    Einfach gegen das hier austauschen?

    Code
            uasort($userGroups, function(UserGroup $groupA, UserGroup $groupB) {
                return strcmp($groupA->getName(), $groupB->getName());
            });

    Ne das ist ja der gleiche code uffff

  • Entweder den Code entfernen oder auskommentieren.

    Auskommentieren sähe so aus:

    PHP
            /*
            uasort($userGroups, function(UserGroup $groupA, UserGroup $groupB) {
                return strcmp($groupA->getName(), $groupB->getName());
            });
            */ 

    Also das /* und */

  • *hust*

    Benutzergruppen und nicht Benutzerrollen

    Das nennt sich aber Benutzergruppen und nicht Benutzerrollen.

    Aber ja:

    Benutzergruppen Liste

    core/lib/acp/page/UserGroupListPage.class.php

    Zeile 31 wie folgt anpassen:

    PHP
        public $defaultSortField = 'groupID';


    Benutzerränge Liste

    core/lib/acp/page/UserRankListPage.class.php

    Zeile 40 wie folgt anpassen:

    PHP
        public $defaultSortField = 'rankID';

    Aber auch hier gilt:

    Das kann bei Updates alles wieder überschrieben werden, weil Änderungen an Dateien vom System nicht vorgesehen sind.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!