WCF2: Einstellungen für die eigene Seite

  • WCF 2

Achtung: Diese Seite ist nur noch Teil eines Archivs und wird in Zukunft entfernt.

Nachdem das Plugin immer weiter voranschreitet und an Möglichkeiten hinzugewinnt, ist nun mit den im ACP vornehmbaren Einstellungen etwas an der Reihe, das den Inhalt dynamischer macht, als er aktuell ist. Die Sinnlosigkeit von allgemeinen Einstellungen auf einer statischen Seite ist natürlich nicht von der Hand zu weisen, hier geht es jedoch um das Erlernen dieser Funktion.

Jede Einstellung, die über die option.xml hinzugefügt wird, kann als Konstante sowohl in PHP als auch im Template verarbeitet werden. Der Unterschied besteht lediglich darin, dass sie im Template innerhalb von { } steht.

Die option.xml, welche man benötigt, sieht folgendermaßen aus:

XML-Quellcode

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <data xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com http://www.woltlab.com/XSD/maelstrom/option.xsd">
  3. <import>
  4. <categories>
  5. <category name="example"></category>
  6. <category name="example.page">
  7. <parent>example</parent>
  8. </category>
  9. </categories>
  10. <options>
  11. <option name="example_page_option">
  12. <categoryname>example.page</categoryname>
  13. <optiontype>boolean</optiontype>
  14. <defaultvalue>1</defaultvalue>
  15. </option>
  16. </options>
  17. </import>
  18. </data>
Alles anzeigen
Hierbei wird eine neue Kategorie example unter System -> Optionen erstellt und darin die Unterkategorie page. Selbige beinhaltet die Option example_page_option mit einer boolschen Variable (true/false) und dem Standardwert 1 (true).
Auch hier gilt: Wer die gesamte Vielfalt der möglichen Einstellungen kennenlernen will, schaut sich die .xsd an.

Die option.xml muss natürlich nun noch in der package.xml referenziert werden. Das macht die folgende Zeile:

XML-Quellcode

  1. <instruction type="option">option.xml</instruction>
Wer Update-Anweisungen hinzufügen möchte, muss das natürlich dann auch wieder bei jedem Anweisungsblock wiederholen (in diesem Beispiel geschehen).

Nun wäre die Einstellung zwar implementiert und würde auch funktionieren, allerdings wird sie im Code nirgends genutzt. Daher sollte noch das Template bearbeitet werden. Ich füge hier folgende Zeilen hinzu:

Smarty-Template

  1. {if EXAMPLE_PAGE_OPTION == true}
  2. {lang}wcf.page.example.optionTrue{/lang}
  3. {else}
  4. {lang}wcf.page.example.optionFalse{/lang}
  5. {/if}
Das zeigt entweder die Sprachvariable wcf.page.example.optionTrue an, sofern die Einstellung aktiv ist, oder aber die Sprachvariable wcf.page.example.optionFalse. Diese müssen natürlich auch noch hinzugefügt werden.

Was nun außerdem noch fehlt - wo wir gerade bei Sprachvariablen sind - sind die Sprachvariablen für die Einstellung selbst und deren Kategorie im ACP. Diese sind in der eigenen Sprachkategorie wcf.acp.option und würden hier folgendermaßen aussehen:

XML-Quellcode

  1. <category name="wcf.acp.option">
  2. <item name="wcf.acp.option.category.example"><![CDATA[Beispielseite]]></item>
  3. <item name="wcf.acp.option.category.example.page"><![CDATA[Seite]]></item>
  4. <item name="wcf.acp.option.example_page_option"><![CDATA[Einstellung 1]]></item>
  5. </category>

Das Ergebnis sollte dann folgendermaßen aussehen:


Bei Fragen u.ä. stehe ich natürlich jederzeit gerne zur Verfügung.

Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

3.471 mal gelesen

Kommentare 9

  • Fighter456 -

    Nein, da das options.xml dafür gedacht ist, dass alle Optionen gesammelt unter einem Punkt vorhanden sind und nicht willkürlich im ACP verstreut werden können.

    Natürlich steht es dir frei, eine oder mehrere Einstellungsseiten im ACP anzulegen, allerdings erfordert dies schon sehr tiefreichende Kenntnisse des Community Frameworks.

  • Toller Typ -

    Wie ist es möglich, die Optionen außerhalb von System > Optionen zu platzieren?

  • Black Rider -

    Leider bisher nicht, zumindest keine vollständige. Am besten siehst du mal andere Pakete durch.

  • the_waiters -

    Gibt es eine Auflistung was ich alles dort bei den Optionen einbauen kann? Boolean sieht man hier im Beispiel

  • Fabii -

    Danke :)

  • Fabii -

    Ich bekomm beim Aufruf deines Links einen 404 Not Found Fehler

  • Black Rider -

    Die ist in Zeile 2 angegeben:
    woltlab.com/XSD/maelstrom/option.xsd

  • Fabii -

    Du hast ja geschrieben "Auch hier gilt: Wer die gesamte Vielfalt der möglichen Einstellungen kennenlernen will, schaut sich die .xsd an." Wo ist die zu finden?