Rollenspezifische Profilfelder

Hast du Probleme Admidio einzurichten? Hier kannst du Fragen rund um die Einrichtung stellen.
Antworten
Jojo
Beiträge: 42
Registriert: 16. Aug 2012, 22:00

Rollenspezifische Profilfelder

Beitrag von Jojo »

Hallo!

Ich teste Admidio gerade für unseren Sportverein und bin auf folgende Frage gestoßen, worauf ich keine Antwort finden konnte: Gibt es die Möglichkeit, Profilfelder an Rollen zu binden? Also daß ein Mitglied der Sektion Fußball (Rolle Fußball) neben den Stammfeldern noch fußballspezifische Felder besitzt, welche in der Verwaltung eines Volleyballmitgliedes nicht aufscheinen.

Vielen Dank!
Jochen
Team
Beiträge: 1506
Registriert: 22. Feb 2006, 18:11

Re: Rollenspezifische Profilfelder

Beitrag von Jochen »

Hallo Jojo,
die Möglichkeit gibt es derzeit so nicht. Eine Möglichkeit wäre die Sektionen als verschiedene Organisationen zu betrachten.
Gruß Jochen
Jojo
Beiträge: 42
Registriert: 16. Aug 2012, 22:00

Re: Rollenspezifische Profilfelder

Beitrag von Jojo »

Können sich die Organisationen dann die DB teilen oder sind dies komplett zwei getrennte Installationen?

Ist ja möglich, daß eine Person Mitglied zweier Sektionen ist. Dann sollten die Felder dieser Person bis auf die sektionsspezifischen Felder von beiden Organisationen geteilt und nicht doppelt gehalten werden.

Danke und Grüße
Jojo
Beiträge: 42
Registriert: 16. Aug 2012, 22:00

Re: Rollenspezifische Profilfelder

Beitrag von Jojo »

Hi Jochen,

hab bei mir für eine weitere Vereinssektion eine zweite Organisation eingerichtet.

Wie ich nun sehe, ist meine Anforderung (rollenspezifische Felder und doch gleicher Mitgliederstamm) anscheinend auch nicht mit mehreren Organisationen zu lösen.

Bitte korrigier mich wenn meine Schlussfolgerung nicht korrekt ist:

Sektionsspezifische Felder sind nur mit getrennten Organisations-Installationen zu erreichen, jedoch mit getrenntem Mitgliederstamm. D.h. eine Person, welche Mitglied in der Sektion Volleyball und Fußball ist, muß doppelt verwaltet werden.

Seh ich das richtig?

Danke und Grüße!
Jojo
Beiträge: 42
Registriert: 16. Aug 2012, 22:00

Re: Rollenspezifische Profilfelder

Beitrag von Jojo »

Hallo,

hat sich in dieser Thematik irgendwas seit meiner letzten Fragestellung geändert, sprich, ist es mittlerweile möglich, daß ich bei Mitgliedern eine Kombination aus generellen und sektionsspezifischen Profilfelder haben kann und eine Pflege von doppelten Mitgliedern entfällt?

Danke und schöne Grüße!
Benutzeravatar
fasse
Administrator
Beiträge: 6228
Registriert: 12. Nov 2005, 16:06

Re: Rollenspezifische Profilfelder

Beitrag von fasse »

Hallo Jojo,

dies müsste über mehrere Organisationen lösbar sein. Du musst dann für jede Orga eine neue Kategorie hinzufügen und diese nicht für andere Organisationen sichtbar machen.
Dann die Felder immer jeweils der Kategorie zuordnen.

Innerhalb einer Organisation ist es weiterhin nicht möglich.

Viele Grüße
Fasse
Jojo
Beiträge: 42
Registriert: 16. Aug 2012, 22:00

Re: Rollenspezifische Profilfelder

Beitrag von Jojo »

Hi Fasse,

bin jetzt endlich dazugekommen, das zu testen, funktioniert soweit tadellos:
Hab eine Organisation "Hauptverein" und zwei untergeordnete Organisationen "Fussball" und "Volleyball". Die Unterorganisationen sehen in der Benutzerverwaltung nur ihre Mitglieder, die Hauptorganisation hingegen alle. Im Benutzer-Profil sehen die Unterorganisationen auch nur jene Felder, welche zu ihnen gehören.

Lediglich bei den Listen der übergeordneten Organisation ("Hauptverein") hätt ich noch eine Frage/Änderungswunsch: Kann ich mir da die Mitglieder der untergeordneten Organisationen anzeigen lassen, z.B. in der vordefinierten Adressliste? In der Benutzerverwaltung hab ich ja über die Checkbox "Alle Benutzer anzeigen" die Möglichkeit, die Mitglieder der untergeordneten Organisationen anzeigen zu lassen, bei den Listen hab ich diese Möglichkeit nicht gefunden.

Danke und Grüße!
Jojo
Beiträge: 42
Registriert: 16. Aug 2012, 22:00

Re: Rollenspezifische Profilfelder

Beitrag von Jojo »

Alternative Lösung wäre auch, daß man Rollenabhängigkeiten organisationsübergreifend (wohlgemerkt nur unter Organisationen, welche in einer Beziehung stehen) definieren kann. Sprich, legt die Unterorganisation "Fussball" ein Mitglied an, sollte diese Person auch die Mitgliedsrolle in der übergeordneten Organisation zugeteilt bekommen.
Wenn ich mich nicht irre, müsste es dazu in der übergeordneten Organisation in der Rollenverwaltung bei einer Rolle (z.B. Mitglied) die Möglichkeit geben, Rollen der Unterorganisationen (z.B. Mitglied) in Abhängigkeit zu setzen.

Grüße!
Bullseye
Beiträge: 210
Registriert: 28. Apr 2015, 22:56

Re: Rollenspezifische Profilfelder

Beitrag von Bullseye »

Wie hast du das gemacht?
Muss man jedes Miglied in jeder Orga neu anlegen?


Frage an die Entwicklicker:
Wie schwer ist es das ganze in einer Orga umzusetzen? Wenn es eher schnell geht würde ich mich mal umhören wer da etwas machen kann.
Jojo
Beiträge: 42
Registriert: 16. Aug 2012, 22:00

Re: Rollenspezifische Profilfelder

Beitrag von Jojo »

Meine Anforderung war, daß ich einen einzigen Mitgliederstamm habe, also keine mehrfach angelegten Mitglieder in jeder Organisation. Somit war klar, daß die Organisationen bestehend aus einer übergeordneten Hauptorganisation(=Hauptverein) und Unterorganisationen für die Sektionen (Fussball, Volleyball, etc.) sich eine Datenbank teilen müssen.
In den Organisationseinstellungen der Hauptorganisation bleibt die Checkbox "Zeige alle Benutzer" aktiv, in den Unterorganisationen nicht, denn ich möchte nicht, daß z.B. die Organisation Fussball die Mitglieder der Organsiation Volleyball in der Benutzerverwaltung sieht. Leider ist es damit auch nicht mehr möglich, ehemalige Mitglieder der eignen Organisation zu sehen. Hier hätte man evtl. eine zweite Checkbox "ehem. Mitglieder anzeigen" vorsehen können, um das getrennt voneinander steuern zu können, naja.. ließe sich aber durchaus selbst ohne großen Aufwand hinzuprogrammieren.

Nachdem die Organsiationsstruktur steht, kann man sich an die sektions(=rollen)spezifischen Profilfelder machen. Funktioniert wie in Fasses Anleitung beschrieben. Die Hauptorganisation interessieren nur Stammdaten, die Sektionen u.U. eigene Felder, gruppiert über Kategorien, welche nur die jeweilige Sektion sehen kann.

Für unseren Fall ist es wichtig, daß Mitglieder der Sektionen, also Unterorganisationen, von der übergeordneten Hauptorganisation in der Benutzerverwaltung einsehbar sind. Das ermöglicht die oben genannte Checkbox. Allerdings bin ich drauf gekommen, daß dies zu wenig ist. Die Hauptorganisation muß auch in der Lage sein, sich eine Liste der Mitglieder der Sektionen ausgeben zu lassen, aber hier hat man nur Zugriff auf Mitglieder der eigenen Organisation, also der Hauptorganisation. Damit war klar, daß ein Mitglied einer Sektion auch gleichzeitig Mitglied der Hauptorganisation werden muß, damit das mit den Listen funktioniert. Diese Rollenzuordnung sollte natürlich automatisch beim Anlegen eines Sektionsmitglieds passieren. Dies ist aber nicht möglich. Ich kann in der Rollenverwaltung der Hauptorganisation für die Rolle "Mitglied" nicht die Abhängigkeit zu den "Mitglied"-Rollen der Unterorganisationen festlegen; ich kann nur Abhängigkeiten unter den Rollen innerhalb derselben Organisation definieren. Somit hab ich das kurzerhand selbst ausprogrammiert, d.h. daß ich in der Hauptorganisation Abhängigkeiten zu den Rollen der Unterorganisation definieren kann, allerdings nur in diese Richtung, nicht von der Unterorganisation zur Hauptorganisation, denn ich möchte ja nicht, daß automatisch ein Mitglied der Hauptorgansiation (zwar sehr unwahrscheinlich, ein sektionsloses Sportvereinmitglied ;-) ) ein Fussballmitglied wird, umgekehrt aber sehrwohl. Mit dieser Anpassung werden nun alle Sektionsmitglieder auch Mitglieder der Hauptorganisation und sind in den Listen abrufbar. Wie das mit dem Austritt der Person aus der Sektion ist, muß ich noch testen, denn sollte eine Person aus einer Sektion austreten und ist diese in keiner anderen Sektion mehr aktiv, dann sollte sie auch nicht mehr Mitglied in der Hauptorganisation sein.. das wird sicher schwierig.

In den Profileinstellungen der Unterorganisationen hab ich noch die Checkbox "Rollen anderer Organisationen anzeigen" deaktiviert, denn die Sektionen müssen nicht unbedingt sehen, in welchen anderen Sektionen die Person noch Mitglied ist.

Was mir noch fehlt, ist die Möglichkeit, daß ich in den Listen auf die Unterorganisation filtern kann. Sprich, ich möchte mir z.B. nur die Adressen der Fussballmitglieder ausgeben lassen. Soviel ich gesehen hab, ist das noch nicht möglich. Aber ich schätz mal, daß sich das auch noch hinbiegen läßt.

> Wie schwer ist es das ganze in einer Orga umzusetzen?

Ich denke, daß das innerhalb einer einzigen Organisation schwierig wird. Da würden dann die Sektionen Rollen entsprechen. Und die Mannschaften (z.B. Fussball U16 Buben) müßten diesen untergeordnet sein.. keine Ahnung, ob das geht und wenn ja wie durchgängig Rollenhierarchien unterstützt wären in der Anwendung!? Aber nachdem ich die Anforderung hatte, daß es sektionsspezifische Profilfelder geben muß, welche nur die jeweilige Sektion sieht und pflegt, fiel diese Ein-Organisation-Variante für mich weg, denn Sichtbarkeit von Profilfeldern nach Rollenzugehörigkeit gibt es nicht.

Grüße
Bullseye
Beiträge: 210
Registriert: 28. Apr 2015, 22:56

Re: Rollenspezifische Profilfelder

Beitrag von Bullseye »

Vielen vielen Dank für die ausführliche Beschreibung. :D Werde das ganze mal die nächsten Wochen veruschen umzusetzen.
Wäre glatt ein Eintrag für das Wiki :!:
Du hast das ganze für v2 gemacht oder?
Könntest du mir den Codeschnippsel schicken und sagen wo genau ich es einfügen muss? Meine Programmierkenntnise tendieren gegen 0.
Ich muss mich mal an der Uni umhören, vielleicht macht das einer für ein, zwei Kästen gutes Bier. :mrgreen:

Theorie zur Umsetzung:
Würde es nicht reichen, neben Kategorie und Rolle auch noch eine Sektion einzubauen? Diese steht über den Rollen. In der Sektion kann man dann zuweisen welche Rollen in der Sektion angezeigt werden sollen.
Zweitens müsste man Rollen zuweisen können, welche Profilfelder/kategorien für sie sichtbar sind.

Hört sich ganz leicht an^^
Jojo
Beiträge: 42
Registriert: 16. Aug 2012, 22:00

Re: Rollenspezifische Profilfelder

Beitrag von Jojo »

Hallo!

Ich hab eine 2.4.13-Installation.

Vorweg: Jene Änderung, welche mir in der Hauptorganisation ermöglichen sollte, in den Listen nach Unterorganisation zu filtern (z.B. alle Mitglieder, welche auch in der Fußball-Organisation Mitglied sind), hat sich als doch nicht so trivial herausgestellt; das hab ich mal aufgeschoben. ;-)

Für die Rollenabhängigkeit zwischen Haupt- und Unterorganisation/en, kannst du die Datei ..\adm_program\administration\roles\roles_new.php wie folgt bearbeiten:

(Bitte Sicherung der Datei vorher erstellen, Angaben ohne Gewähr ;-) )

Ersetze in Zeile 764

Code: Alles auswählen

echo '<option value="'.$childRoleObject->rol_id.'">'.$childRoleObject->rol_name.'</option>';
mit

Code: Alles auswählen

if ($childRoleObject->child_org_id != null) {
                                            echo '<option value="'.$childRoleObject->rol_id.'">'.$childRoleObject->child_org_shortname.' - '.$childRoleObject->rol_name.'</option>';
                                        } else {
                                            echo '<option value="'.$childRoleObject->rol_id.'">'.$childRoleObject->rol_name.'</option>';
                                        }
Ersetze in Zeile 740

Code: Alles auswählen

echo '<option value="'.$row->rol_id.'">'.$row->rol_name.'</option>';
mit

Code: Alles auswählen

if ($row->child_org_id != null) {
                                                echo '<option value="'.$row->rol_id.'">'.$row->child_org_shortname.' - '.$row->rol_name.'</option>';
                                            } else {
                                                echo '<option value="'.$row->rol_id.'">'.$row->rol_name.'</option>';
                                            }
Ersetze den SQL-Code in Zeile 75 mit diesem:

Code: Alles auswählen

$sql = 'SELECT '. TBL_ROLES. '.*, '. TBL_CATEGORIES.'.*, NULL AS child_org_id, NULL AS child_org_shortname
          FROM '. TBL_ROLES. '
          INNER JOIN '. TBL_CATEGORIES. ' ON '. TBL_CATEGORIES.'.cat_id = '. TBL_ROLES.'.rol_cat_id
         WHERE rol_valid   = 1
           AND rol_visible = 1
           AND (  cat_org_id  = '. $gCurrentOrganization->getValue('org_id'). '
               OR cat_org_id IS NULL )
        UNION
        SELECT '. TBL_ROLES. '.*, '. TBL_CATEGORIES.'.*, '. TBL_ORGANIZATIONS.'.org_id AS child_org_id, '. TBL_ORGANIZATIONS.'.org_shortname AS child_org_shortname
        FROM '. TBL_ROLES. '
          INNER JOIN '. TBL_CATEGORIES. ' ON '. TBL_CATEGORIES.'.cat_id = '. TBL_ROLES.'.rol_cat_id
          INNER JOIN '. TBL_ORGANIZATIONS. ' ON '. TBL_ORGANIZATIONS.'.org_id = '. TBL_CATEGORIES.'.cat_org_id
        WHERE rol_valid   = 1
           AND rol_visible = 1
           AND org_org_id_parent  = '. $gCurrentOrganization->getValue('org_id'). '
         ORDER BY child_org_id, rol_name ';
Good Luck! :D
Bullseye
Beiträge: 210
Registriert: 28. Apr 2015, 22:56

Re: Rollenspezifische Profilfelder

Beitrag von Bullseye »

Danke dir :)
Werde ich aber erst die nächsten Wochen dazu kommen. Melde mich ob danach noch alles steht :mrgreen:
Antworten