[WBB] - Profilfeld Plugin erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [WBB] - Profilfeld Plugin erstellen

    Moin,
    ich dachte mal,
    da einige das Woltlab Burning Board lite benutzen,
    wo man nicht einfach neue Profilfelder hinzufügen kann,
    mache ich mal ein kurzes Tutorial, wie man ein Plugin für Profilfelder schreibt.
    Ich versuche es hier nun so einfach und kurz wie möglich zu erklären^^
    Gleich am Anfang: Ich werde nicht auf jeden Tag eingehen, manche werde ich einfach überspringen,
    da dies sonst zu viel wird und diese sowieso so bleiben würden, wie im Beispiel, was ich nicht erkläre bitte einfach genauso bei euch belassen.
    (ggf. schreibe ich Erklärungen zu den Tags nach). Des weiteren sollten aufgrund umlaute alle Dateien auf UTF-8 gestellt sein.

    Was wir brauchen:
    • Einen einfachen Editor (Ich empfehle Notepad++, es geht aber auch jeder andere, man sollte die Datei aber auf UTF-8 einstellen können)
    • Ein Programm um .tar Archive zu erstellen (Hier empfehle ich 7-Zip)

    Wie wir das Plugin erstellen:

    • Wir erstellen 3 XML Dateien: de.xml, package.xml und useroptions.xml
    • Diese 3 Dateien packen wir in ein .tar Archiv. Dies können wir dann als Plugin installieren.

    nun kommen wir zum eigentilchem Pluginschreiben,
    wie oben schon angesprochen brauchen wir 3 xml Dateien.

    package.xml:
    Diese Datei beinhaltet die Grundinformationen des Plugins sowie installationsanweisungen/ Benötigte Packete (Abfrage).

    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <package name="de.dennis321.beispielprofilfeld" xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com/XSD/package.xsd">
    3. <packageinformation>
    4. <packagename><![CDATA[Beispielprofilfeld]]></packagename>
    5. <packagedescription><![CDATA[Dieses Packet fügt ein Beispielprofilfeld ins WBB ein.]]></packagedescription>
    6. <isunique>1</isunique>
    7. <standalone>0</standalone>
    8. <plugin>com.woltlab.wcf</plugin>
    9. <version>1.1.1</version>
    10. <date>2011-10-23</date>
    11. </packageinformation>
    12. <authorinformation>
    13. <author><![CDATA[Dennis321]]></author>
    14. <authorURL><![CDATA[[url]www.firecity.de[/url]]]></authorURL>
    15. </authorinformation>
    16. <requiredpackages>
    17. <requiredpackage minversion="1.1.3">com.woltlab.wcf.page.user.profile</requiredpackage>
    18. <requiredpackage minversion="1.1.3">com.woltlab.wcf</requiredpackage>
    19. </requiredpackages>
    20. <instructions type="install" fromversion="1.1.0">
    21. <useroptions>useroptions.xml</useroptions>
    22. <languages languagecode="de">de.xml</languages>
    23. </instructions>
    24. </package>
    Alles anzeigen


    Als erstes kommt oben in der 2. zeile die Bezeichnung des Packetes (Im Beispiel "de.dennis321.beispielprofilfeld")
    Nun kommen die ganzen Packetinformationen.
    Das die Informationen übrigens in <![CDATA[...]]> stehen brauchen wir vor allem zum Updaten des Packetes.
    Kommen wir zu den einzelnen Informations Tags:

    packageinformation:
    Hier sind alle Informationen zum Plugin.

    XML-Quellcode

    1. <packagename></packagename>

    Hier kommt der Name des Packetes rein (In unserem Beispiel "Beispielprofilfeld")

    XML-Quellcode

    1. <packagedescription></packagedescription>

    Hier kommt eine kurze Beschreibung des Packetes rein, die bei der Installation angezeigt wird (In unserem Beispiel: "Dieses Packet fügt ein Beispielprofilfeld ins WBB ein")

    XML-Quellcode

    1. <version></version>

    Hier steht die Version eures Plugins (Im WBB/WCF standartmäßig 3 Teilig, z.B. 1.0.0)

    XML-Quellcode

    1. <date></date>

    Hier kommt das Datum rein, an dem das Plugin erstellt wurde.

    authorinformation:
    Hier sind alle Informationen zum Autor.

    XML-Quellcode

    1. <author></author>

    Hier kommt der Name des Entwicklers rein.

    XML-Quellcode

    1. <authorURL></authorURL>

    Hier kommt die Website des Entwicklers rein.

    instructions typ="install":
    Hier wird angegeben, was aus dem Plugin installiert werden soll.

    XML-Quellcode

    1. <instructions type="install" fromversion="1.1.0">
    2. <useroptions>useroptions.xml</useroptions>
    3. <languages languagecode="de">de.xml</languages>
    4. </instructions>

    Dies kann man bis auf der Version (fromversion="...") so belassen.
    useroptions sagt aus, das die Datei useroptions.xml installiert werden soll,
    das de.xml, das dieses Sprachpacket installiert werden soll,
    dabei gibt man in dem Tag (languagecode="...") an, welche Sprache diese .xml beinhaltet, mehrere Sprachen einfach untereinander auflisten.

    requiredpackages:
    Hier kommen die Vorraussetzungen rein, um das Plugin installieren zu können.

    XML-Quellcode

    1. <requiredpackage minversion="1.1.3">com.woltlab.wcf.page.user.profile</requiredpackage>
    2. <requiredpackage minversion="1.1.3">com.woltlab.wcf</requiredpackage>

    Dies sollte man so belassen, ggf. die benötigte Mindestversion Versionen (minversion="...") ändern.
    Das Obere ist das Plugin, das standartmäßig im WBB ist für die Benutzerprofile, das 2. ist das WCF (Community Framework)

    Dies war nun die komplette package.xml.
    Wenn man ein Updatepacket für dieses Plugin macht, bzw. eine neuere Version, von der man updaten kann, braucht man noch instructions type="update",
    dies kann ich auf Wunsch noch erläutern.

    de.xml:

    Diese Datei beinhaltet das Sprachpacket des Plugins.
    wie de schon sagt, ist es deutsch. (Man kann natürlich weitere Sprachen ergänzen, diese müssen dann ebenfalls in der package.xml angegeben werden)
    In der de.xml kommt also alles an Text rein, was nachher für den User sichtbar ist.

    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <language xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com/XSD/language.xsd" languagecode="de">
    3. <category name="wcf.user.option">
    4. <item name="wcf.user.option.category.profil.beispiel"><![CDATA[Beispielprofilfelder]]></item>
    5. <item name="wcf.user.option.beispiel.f1"><![CDATA[Beispielfeld 1]]></item>
    6. <item name="wcf.user.option.beispiel.f1.description"><![CDATA[Dies ist das Beispielfeld 1 in der Kathegorie Beispielfelder, trage hier etwas ein.]]></item>
    7. </category>
    8. </language>


    In unserem Beispiel haben wir eine neue Kathegorie namens "Beispielprofilfelder", in der wir erstmal ein Profilfeld haben , namens "Beispielfeld 1".

    category name="wcf.user.option":

    XML-Quellcode

    1. <item name="wcf.user.option.category.profil.beispiel"></item>

    Hier haben wir den Name der Kathegorie.
    die Bezeichnung der Kathegorie ist hier beispiel, diese kann geändert werden, je nachdem, wie die Kathegorie heißen soll.
    wcf.user.option.category.profil.beispiel in unserem Fall ist die Bezeichnung also "beispiel".
    Den für den User sichtbaren Kathegoriename steht dann in den Tags und ist in unserem Fall "Beispielprofilfelder".

    XML-Quellcode

    1. <item name="wcf.user.option.beispiel.f1"></item>

    Hier haben wir den Namen des ersten Profilfeldes, das in der Kathegorie "Beispielprofilfelder" (Bezeichnung: beispiel) ist.
    hier ist das letzte im name="" die Bezeichnung des Profilfeldes.
    das davor (in unserem Fall "beispiel"), das ja die Bezeichnung für die Kathegorie ist, muss natürlich auch angepasst werden.
    wcf.user.option.beispiel.f1 beispiel= Kathegoriebezeichnung; f1= Profilfeldbezeichnung.

    XML-Quellcode

    1. <item name="wcf.user.option.beispiel.f1.description"></item>

    und hier haben wir nun eine Kurze Beschreibung des Feldes drinnen, die dann im WBB unter dem Feld angezeigt wird.
    In unserem Beispiel "Dies ist das Beispielfeld 1 in der Kathegorie Beispielfelder, trage hier etwas ein."
    wcf.user.option.beispiel.f1.description beispiel und f1 ist wieder Kathegoriename und Feldname, das angepasst werden muss.
    Weitere Profilfelder können und der Kathegorie ergänzt weden.

    useroptions.xml:
    Nun kommen wir zur useroptions.xml.

    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/XSD/user-options.xsd">
    3. <import>
    4. <categories>
    5. <category name="profil.beispiel">
    6. <parent>profile</parent>
    7. <showorder>30</showorder>
    8. </category>
    9. </categories>
    10. <options>
    11. <option name="beispiel.f1">
    12. <categoryname>profil.beispiel</categoryname>
    13. <optiontype>text</optiontype>
    14. <showorder>1</showorder>
    15. <visible>0</visible>
    16. </option>
    17. </options>
    18. </import>
    19. </data>
    Alles anzeigen


    categories:
    Erstmal müssen wir unsere Kathegorie nun angeben.

    XML-Quellcode

    1. <category name="profil.beispiel">

    Hier muss wieder die Bezeichnung unserer Kathegorie rein.
    In unserem Fall ist dies immer noch "beispiel".

    XML-Quellcode

    1. <showorder></showorder>

    Hier wird angegeben, an welcher Stelle die Kathegorie nachher im Profil steht. unser steht nun an 30. stelle,
    also solange an letzter Stelle, bis eine Kathegorie mit 31 kommt, die dann eiens unter unser stehen würde.

    options:
    Nun zu unsere Profilfeld.

    XML-Quellcode

    1. <option name="beispiel.f1">

    hier steht im name="" die Bezeichnung unserer Kathegorie, wo das Feld sein soll und dannach die Bezeichnung des eigentlichem Profilfeldes drinnen.

    XML-Quellcode

    1. <categoryname>profil.beispiel</categoryname>

    Hier haben wir die Bezeichnung der Kathegorie nochmal angegeben.

    XML-Quellcode

    1. <showorder></showorder>

    Hier steht drinnen, an welcher Stelle das Profilfeld in der Kathegorie stehen soll.
    Da wir nur eines haben, steht das auf 1. Weitere Felder würden dann einfach hochgezählt werden (1, 2, 3, 4, etc.)

    XML-Quellcode

    1. <visible>0</visible>

    Und zum schluss soll unser Feld ja sichtbar sein, daher hier eine 0.



    Nun haben wir 3 fertige .xml Dateien,
    die möglichst in UTF-8 sein sollten.
    Diese 3 Dateien müssen wir nun nur noch (z.B. mit 7-Zip) in einem .tar Archiv packen.
    Nun können wir dieses Plugin einfach im ACP des WBBs installieren und haben das Profilfeld in der angegebenen Kathegorie.


    Ich hoffe ich konnte einigen hier helfen.
    Ich werde mit der Zeit vielleicht mal weitere Tutorials schreiben.
    Bei Fragen könnt ihr gerne hier Posten oder ggf. eine pn an mich schreiben.
    Kommentare, Verbesserungen, Lobe, etc. sind auch gerne hier gesehen ;)

    Gruß,
    Dennis

    //EDIT(9.12.2011): Hab die verschwundenen Codes nun wieder erneuert^^
    Dateien

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Dennis321 ()

  • Das da ist weder PHP noch Java.

    Das ist einfach XML^^
    [tabmenu]
    [tab='Werbung in eigener Sache']
    Du suchst einen Instant Messenger dessen Verbindung voll verschlüsselt ist? Weiterhin soll er mit anderen Instant Massenging Protokollen verknüpfbar sein? Außerdem möchtest du weltweit erreichbar sein (ähnlich icq und msn)? - Dann schick mir Post und erhalte ein unverbindliches, auf alle Fälle kostenloses, Angebot:
    [Blockierte Grafik: http://easy-scripting.net/icon/vCollection/pmEmptyS.png]
    [tab='Vorstellung']
    NurPech
    [tab='meine Tutorials']
    [subtab='C#']

    [subtab='PHP']

    [/tabmenu]

    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von [Blockierte Grafik: http://i.creativecommons.org/l/by-nc-nd/3.0/80x15.png] verwendet werden
  • ja, das ist möglich.

    du kannst mit Hilfe dem Attribut permissions die Useroption an Groupoptions binden.

    lg
    [tabmenu]
    [tab='Werbung in eigener Sache']
    Du suchst einen Instant Messenger dessen Verbindung voll verschlüsselt ist? Weiterhin soll er mit anderen Instant Massenging Protokollen verknüpfbar sein? Außerdem möchtest du weltweit erreichbar sein (ähnlich icq und msn)? - Dann schick mir Post und erhalte ein unverbindliches, auf alle Fälle kostenloses, Angebot:
    [Blockierte Grafik: http://easy-scripting.net/icon/vCollection/pmEmptyS.png]
    [tab='Vorstellung']
    NurPech
    [tab='meine Tutorials']
    [subtab='C#']

    [subtab='PHP']

    [/tabmenu]

    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von [Blockierte Grafik: http://i.creativecommons.org/l/by-nc-nd/3.0/80x15.png] verwendet werden
  • Plugin ist kein gültiges Paket

    Hallo,

    bei mir kommt immer "Das angegebene Archiv ist kein gültiges Paket".

    Bei meinem des ich gemacht hab und ich hab mal probiert und die Codes vom Tutorial genommen und is das selbe Problem.

    Ich hab die Pakete in ein zip Archiv gepackt da ich die sonst nicht hochladen kann.

    Einmal das vom Dennis und von mir des andere.
  • wcf1_user_option
    [tabmenu]
    [tab='Werbung in eigener Sache']
    Du suchst einen Instant Messenger dessen Verbindung voll verschlüsselt ist? Weiterhin soll er mit anderen Instant Massenging Protokollen verknüpfbar sein? Außerdem möchtest du weltweit erreichbar sein (ähnlich icq und msn)? - Dann schick mir Post und erhalte ein unverbindliches, auf alle Fälle kostenloses, Angebot:
    [Blockierte Grafik: http://easy-scripting.net/icon/vCollection/pmEmptyS.png]
    [tab='Vorstellung']
    NurPech
    [tab='meine Tutorials']
    [subtab='C#']

    [subtab='PHP']

    [/tabmenu]

    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von [Blockierte Grafik: http://i.creativecommons.org/l/by-nc-nd/3.0/80x15.png] verwendet werden