WCF2: Einstellungen für die eigene Seite

  • WCF 2

Warning: This page is a part of an archive now and will be removed in the future.

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 Source Code

  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>
Display All
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 Source Code

  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 Source Code

  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.

About the Author
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,263 times read

Comments 9

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.