userGroupOption.xml

  • Durch die userGroupOption.xml ist es möglich verschiedene Benutzergruppenrechte zu definieren.

    Durch die userGroupOption.xml ist es möglich verschiedene Benutzergruppenrechte zu erstellen, um so bestimmte Funktionen nur einem entsprechenden Benutzerkreis zur Verfügung zu stellen.


    1 Die XSD auf GitHub


    https://github.com/WoltLab/WCF…r/XSD/userGroupOption.xsd


    2 package.xml


    Innerhalb der package.xml kann man der Installations- bzw. der Updateroutine durch folgenden instruction-Tag sagen, dass nun UserGroupOptions installiert bzw. geupdatet werden soll(en).

    XML
    <instructions type="install">
    <instruction type="userGroupOption" />
    </instructions>



    3 Mögliche Parameter


    Tag Parameter Definition
    <data> - Einleitendes Elternelement
    <import> - Element zum Importieren neuer UserGroupOptions
    <delete> - Element zum Entfernen von bestehenden UserGroupOptions.
    <categories> - Gibt an, dass nun neue UserGroupOptions-Kategorien definiert werden.
    <category> name="name.der.kategorie" Definiert eine einzelne Kategorie
    <parent> - Gibt den Namen der Elternkategorie an, unter der diese Kategorie angezeigt werden soll.
    <showorder> - Gibt die nummerische Position an, an der die Kategorie innerhalb von <parent> angezeigt werden soll.
    <options> - Gibt die Option an, die aktiviert sein muss, damit die Kategorie angezeigt wird.
    <options> - Gibt die Option an, die aktiviert sein muss, damit die Kategorie angezeigt wird.
    <options> - Gibt an, das nun neue UserGroupOptions definiert werden.
    <option> name="name_der_userGroupOption" Definiert eine einzelne UserGroupOption.
    <categoryname> - Gibt die Kategorie an, in der die UserGroupOption angezeigt werden soll.
    <optiontype> - Gibt die Art der UserGroupOption an (Details: optiontype)
    <defaultvalue> - Gibt den Standartwert für die UserGrouopOption an.
    <userdefaultvalue> - Gibt den Standartwert für einfache Benutzer an.
    <moddefaultvalue> - Gibt den Standartwert für Moderatoren an.
    <admindefaultvalue> - Gibt den Standartwert für Administratoren an.
    <validationpattern> - Gibt einen Pattern zum Validieren der UserGroupOption an.
    <enableoptions> - Gibt andere UserGroupOptions an, die beim de-/aktivieren dieser UserGroupOption ein- oder ausgeblendet werden.
    <showorder> - Gibt die nummerische Position an, an der die Kategorie innerhalb von <parent> angezeigt werden soll.
    <options> - Gibt die Option an, die aktiviert sein muss, damit dieses UserGroupOption angezeigt wird.
    <permissions> - Gibt die UserOptions an, die vorhanden sein müssen, damit dieses UserGroupOption ausgewählt werden kann.
    <usersonly> - Gibt an, ob das UserGroupOption nur für angemeldete Benutzer (1) oder auch für Gäste einstellbar sein soll (0).


    4 Beispiele


    4.1 Legt ein UserGroupOption vom optiontype boolean an



    5 Benötigte Sprachvarianeln


    Das WSC legt automatisch bei der Erstellung von UserGroupOption Sprachvariabeln an, die mit über das jeweilige Plugin installiert werden sollten. Aus dem zuvor genanntem Beispiel sollten folgende Sprachvariabeln mit installiert werden:



    XML
    <category name="wcf.acp.group">
    <item name="wcf.acp.group.option.category.user.profile.example"><![CDATA[Name der UserGroupOption-Kategorie]]></item>
    <item name="wcf.acp.group.option.user.profile.example.exampleOption"><![CDATA[Name der UserGroupOption]]></item>
    <item name="wcf.acp.group.option.user.profile.example.exampleOption.description"><![CDATA[Beschreibung zum UserGroupOption]]></item>
    </category>

    Wid die beschreibung nicht als Sprachvariabel mitgeliefert, wird im ACP einfach keine Beschreibung angezeigt.


    6 Abfrage von UserGroupOptions


    6.1 PHP


    PHP
    // Eine UserGroupOptions
    if (!WCF::getSession()->getPermission('user.profile.example.exampleOption')) {
    throw new UserInputException('example', 'empty');
    }
    // Mehrehre UserGroupOptions
    if(WCF::getSession()->checkPermissions(['user.profile.example.exampleOption', 'user.profile.example.exampleOption2']) == 1) {
    //do something
    }
    // Ist auch nur ein UsergroupOption nicht vorhanden, wird eine PermissionDeniedException geworfen


    6.2 Template


    Code
    {if $__wcf->session->getPermission('user.profile.example.exampleOption')}
    {* do something *}
    {/if}



    7 Gut zu wissen


    • Sprachvariabeln für Optionskategorien und Kategorien werden immer in der Kategorie "wcf.acp.group" definiert.
    • Sprachvariabelnamen für Kategorien beginnen immer mit "wcf.acp.group.category". Bei UserGroupOptions-Namen lässt man das "category" weg.
    • UserGroupOptionen-Namen müssen mindestens aus drei Teilen stehender i.d.R so aufgebaut ist "HauptKategorie.UnterKategorie.UserGroupOptionName"


    Ihr habt Fragen oder Anregungen? Lob oder Kritik? Lasst es mich doch durch einen Kommentar von euch wissen!

Share