WSC 5.2 WSC 5.3 option.xml

  • Durch die option.xml ist es möglich verschiedene Optionen (Einstellungsmöglichkeiten) für das ACP zu definieren.

    Durch die option.xml ist es möglich verschiedene Optionen (Einstellungsmöglichkeiten) für das ACP zu definieren, um so ein Plugin für den jeweiligen Einsatzort individualisieren zu können.


    1 Die XSD auf GitHub


    https://github.com/WoltLab/WCF/blob/master/XSD/option.xsd


    2 package.xml


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

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




    3 Mögliche Parameter

    Tag Parameter Definition
    <data> - Einleitendes Elternelement
    <import> - Element zum importieren neuer Optionen
    <delete> - Element zum entfernen von bestehenden Optionen.
    <categories> - Gibt an, dass nun neue Optionskategorien 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.
    <options> - Gibt an, das nun neue Optionen definiert werden.
    <option> name="name_der_option" Definiert eine einzelne Option.
    <categoryname> - Gibt den Namen der Kategorie an, unter der diese Option dargestellt werden soll.
    <optiontype> - Gibt die Art der Option an (Details: optiontype)
    <defaultvalue> - Gibt den Standartwert einer Option an.
    <validationpattern> - Gibt einen Pattern zum validieren der Option an.
    <enableoptions> - Gibt andere Optionen an, die beim de-/aktivieren dieser Option ein- oder ausgeblendet werden.
    <showorder> - Gibt die Reihenfolge an, in der Optionen dargestellt werden soll.
    <hidden> - 1 = Option wird im ACP nicht dargestellt / 0 = Option wird im ACP dargestellt.
    <selectoptions> - Gibt verschiedene Selectfelder an, die bei einem select optiontype benötigt werden. (Syntax:: value:name.der.sprachvariabel)
    <permissions> - Gibt die Namen von Benutzergruppenrechten an, die vorhanden sein müssen, um diese Option bearbeiten zu können.
    <options> - Gibt Optionen an, die aktiviert sein müssen, um diese Option bearbeiten zu können.
    <supporti18n> - 1 = Es handelt sich um multilingualen Inhalt / 0 = Es handelt sich um einsprachigen Inhalt
    <requirei18n> - Gibt bei multilingualen Inhalten an, ob in jeder installierten Sprache ein Inhalt vergeben sein muss.


    4 Beispiele


    4.1 Legt eine Option vom optiontype boolean an




    4.2 Legt eine Option vom optiontype select an



    4.3 Legt eine Option vom optiontype textareaI18n an



    5 Abfrage von Optionen


    Optionen werden im gesamten WSC als Konstanten behandelt, das bedeutet, dass man diese im Gegensatz zur option.xml in der jeweiligen PHP-Datei oder im Template komplett großschreiben muss.


    5.1 PHP

    PHP
    if(NAME_DER_OPTION == 1) {
      //do something
    }



    5.2 Template

    HTML
    {* Abfrage einer Option *}
    
    {if NAME_DER_OPTION == 1}
      {* do something *}
    {/if}
    
    
    {* Ausgabe einer Option mit i18n Support *}
    {PAGE_TITLE|language}




    6 Gut zu wissen

    • Die Schreibweise eines Optionsnamen wird nicht im camel case definiert, sondern als Trennzeichen fungiert das Underlined (_) z.B. name_der_option
    • Optionsnamen werden immer komplett kleingeschrieben
    • Sprachvariabeln für Optionskategorien und Kategorien werden immer in der Kategorie wcf.acp.option definiert.
    • Sprachvariabelnamen für Kategorien beginnen immer mit wcf.acp.option.category.. Bei Optionsnamen lässt man das "category" weg.


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

Share

Comments 2

  • Was noch interessant wäre beim Template das wenn ein optiontype mit i18n Support angelegt wird. Das man dann im Template dahinter ein |language setzen muss, sonst wird die Mehrsprachigkeit nicht übernommen und falsch angezeigt.

    Like 1
    • Hey Saphire-Dev,


      Danke für den Hinweis. Ich hab es mal mit als Beispiel aufgenommen. :)

      Like 1