Zusätzliche Mitgliederinformationen

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
befubo
Mitglied
Beiträge: 22
Registriert: 31.07.2014 11:02

Zusätzliche Mitgliederinformationen

Beitrag von befubo »

Guten Tag, liebe phpBBler :)

Schon seit vielen Jahren nutze ich schon phpBB als Forensoftware und bin sehr zufrieden.
Für meine Gaming-Community habe vor ca. 2 Jahren unser Forum etwas angepasst, um es etwas mehr zu personalisieren.
Damals habe ich alle Änderungen am eigentlichen Forencode vorgenommen, was ja nicht besonders Update-freundlich ist.
Mit der der neuen phpBB Software will ich nun unser komplettes Forum überarbeiten und neu erstellen. Nun frage ich mich, ob das was ich vorhabe, mittels einer Extension überhaupt möglich ist (Habe noch nie damit gearbeitet...).

Das Ziel
In der mySQL Datenbank habe ich die Tabelle phpbb_users um einige Felder erweitert. Darin wurden Informationen wie der Rang des Mitglieds im Spiel, seine Ausbildungen, seine Auszeichnungen oder Befähigungen gespeichert. Diese Tabellen verwalte ich über ein Formular in einer Forensoftware-externen Datei.
Neu möchte ich für diese Infos eine eigene Datenbank anlegen, damit diese unabhängig von der phpBB Datenbank laufen kann. Dies ist soweit ja kein Problem.

Nun aber folgendes: Die Auszeichnungen / Ausbildungen / Anzahl Missionen ect. werden z.B. im Userprofil des jeweiligen Spielers angezeigt. Hier ein Beispiel:
[ externes Bild ]

Dies stellt aber einen Eingriff in einer Forenbezogene Datei dar. Da ich gerne vermeiden möchte, wieder an den originalen Dateien (hier z.B. memberlist.php) herumzubasteln frage ich mich, ob so etwas mit einer Extension realisiert werden kann?

Das gleiche wäre dann z.B. auch bei dem "postprofile" der Fall, hier das Beispiel:
[ externes Bild ]

Frage Nummer 1:
Sind Extensions nun das Mittel der Wahl, um sowas zu realisieren?

Frage Nummer 2:
Ich habe schon das Eine oder Andere über das Entwickeln von Erweiterungen gelesen, blicke aber nicht wirklich durch. Für das oben genannte Projekt, welche Herangehensweise wäre die einfachste / beste?

Vielen Dank für eure Zeit und liebe Grüsse
befubo
Die deutsche Community für Arma 3
Kampfverband-13
Taktik ¦ Teamplay ¦ Immersion
Benutzeravatar
tas2580
Ehemaliges Teammitglied
Beiträge: 3029
Registriert: 01.07.2004 05:42
Wohnort: /home/tas2580
Kontaktdaten:

Re: Zusätzliche Mitgliederinformationen

Beitrag von tas2580 »

befubo hat geschrieben:Sind Extensions nun das Mittel der Wahl, um sowas zu realisieren?
Ja
befubo hat geschrieben:Ich habe schon das Eine oder Andere über das Entwickeln von Erweiterungen gelesen, blicke aber nicht wirklich durch. Für das oben genannte Projekt, welche Herangehensweise wäre die einfachste / beste?
Am besten du liest dir erst mal KB:223 durch damit du lernst wie du grundsätzlich eine Extension erstellst.

Um konkret an den Stellen etwas auszugeben an denen du das möchtest schau dir mal meine Usermap Extension an. Hier wird das Profil des Benutzers erweitert, das passende Template dazu findest du hier.
Um im Profil neben den Beiträgen etwas auszugeben musst du die Daten erst mal in den Cache laden und dann ausgeben. Auch hier brauchst du wieder ein Template.

Interessant dürfte für dich dann noch sein wie man eigene Tabellen in Extensions verwendet. Die musst du erst mal in der services.yml definieren und sie dann an die entsprechende Klasse übergeben, dort kannst du dann einfach darauf zugreifen.

Grundsätzlich läuft das jetzt so das du statt deine Änderungen direkt am Code zu machen die von phpBB bereitgestellten Events benutzt. Dazu gibt es hier eine Liste aller Events. Ich finde es aber einfacher direkt in den Code zu schauen, die Events erkennt man dort recht leicht da sie alle einen recht großen Kommentarblock haben.

Gruß Tobi
Heute ist ein guter Tag um dein Forum zu testen.
Ehemaliger Benutzername: [BTK] Tobi
befubo
Mitglied
Beiträge: 22
Registriert: 31.07.2014 11:02

Re: Zusätzliche Mitgliederinformationen

Beitrag von befubo »

Hi Tobi
Vielen Dank für deine Antwort!
Dann werde ich wohl mal Kopfüber da hineinwerfen, mal schauen ob ich das auf die Reihe kriege :)
Danke!
Die deutsche Community für Arma 3
Kampfverband-13
Taktik ¦ Teamplay ¦ Immersion
Benutzeravatar
tas2580
Ehemaliges Teammitglied
Beiträge: 3029
Registriert: 01.07.2004 05:42
Wohnort: /home/tas2580
Kontaktdaten:

Re: Zusätzliche Mitgliederinformationen

Beitrag von tas2580 »

Viel Spaß, wenn du Fragen hast gibt es ja hier das Forum oder den Chat.

Gruß Tobi
Heute ist ein guter Tag um dein Forum zu testen.
Ehemaliger Benutzername: [BTK] Tobi
befubo
Mitglied
Beiträge: 22
Registriert: 31.07.2014 11:02

Re: Zusätzliche Mitgliederinformationen

Beitrag von befubo »

Hey :)

Schon taucht meine erste Frage auf xD
Ich versuche gerade die Beispielserweiterung zu erstellen, welche diesen Balkon oben einfügt. Hier die Anweisung:
Als nächstes wollen wir nun unseren Infobalken anlegen. Hierzu genügt es eine Datei mit dem Namen overall_header_content_before.html in den Ordner ext/gn36/infobar/styles/prosilver/event/ zu legen und folgenden HTML Code in die Datei einzufügen:

Code: Alles auswählen

<div class="rules">
    <div class="inner">
        <strong>Warnung:</strong> Dieses Board ist noch in der Entwicklung. Dabei können Fehler auftreten.
    </div>
</div>
Aktivierst du nun die Erweiterung (oder löscht den Cache sofern sie bereits aktiviert ist), dann sollte der Info Balken oberhalb des Seiteninhalts auf jeder Seite des Forums angezeigt werden.
Hab alles so gemacht, allerdings erscheint bei mir kein Balken... Hier die Fenster zum Nachvollziehen:
[ externes Bild ]

Extension ist aktiviert, cache habe ich gelöscht...
Eine Idee, warum mir nichts angezeigt wird?

Vielen Dank!
Die deutsche Community für Arma 3
Kampfverband-13
Taktik ¦ Teamplay ¦ Immersion
Benutzeravatar
tas2580
Ehemaliges Teammitglied
Beiträge: 3029
Registriert: 01.07.2004 05:42
Wohnort: /home/tas2580
Kontaktdaten:

Re: Zusätzliche Mitgliederinformationen

Beitrag von tas2580 »

In deinem Editor heißt die Datei "overall_header_content_before 2.html"
Die Datei muss nach /ext/kv13/kv13/styles/prosilver/template/event/

Gruß Tobi
Heute ist ein guter Tag um dein Forum zu testen.
Ehemaliger Benutzername: [BTK] Tobi
befubo
Mitglied
Beiträge: 22
Registriert: 31.07.2014 11:02

Re: Zusätzliche Mitgliederinformationen

Beitrag von befubo »

Das mit dem 2 im Namen kommt vom Notepad++, aber das mit dem "Template" war der Killer...
Nur weil im Tutorial nichts von dem Templateordner steht.
Aber wenn man sich die originale Struktur von den Styles ansieht, macht es eigentlich noch Sinn.

Vielen Dank!
Die deutsche Community für Arma 3
Kampfverband-13
Taktik ¦ Teamplay ¦ Immersion
Benutzeravatar
tas2580
Ehemaliges Teammitglied
Beiträge: 3029
Registriert: 01.07.2004 05:42
Wohnort: /home/tas2580
Kontaktdaten:

Re: Zusätzliche Mitgliederinformationen

Beitrag von tas2580 »

befubo hat geschrieben:Nur weil im Tutorial nichts von dem Templateordner steht.
Oh, das war dann wohl ein Fehler im Tutorial, ich habe das dort mal geändert.

Gruß Tobi
Heute ist ein guter Tag um dein Forum zu testen.
Ehemaliger Benutzername: [BTK] Tobi
befubo
Mitglied
Beiträge: 22
Registriert: 31.07.2014 11:02

Re: Zusätzliche Mitgliederinformationen

Beitrag von befubo »

Guten Tag :)

Es ist schon eine Weile her, allerdings bin ich (wieder/immer noch) am erklärten Projekt dran.
Ich fühle mich im Moment extrem dumm, denn auch mit deiner Anleitung krieg ich das nicht gebacken.

Den ersten Teil mit der reinen Style-Templateänderung habe ich hinbekommen. Jetzt möchte ich aber das mit der PHP Seite machen und scheitere Gnadenlos. Mir erschließt sich die Logik leider noch nicht ganz.
Wie ist der genaue Ablauf von Routing, Service und routinghandler?!

Kann mir jemand kurz erklären was passiert, wenn ich ich als User zum Beispiel ein Forenthema öffne. Welchen Weg macht das Forum, um an meine Extensioninhalte zu kommen?
(Also z.B. Forum -> routing.yml -> service.yml -> routenhandler.php -> Forenbeitrag mit meinen Änderungen)

Mittels der "viewtopic_body_contact_fields_before.html" schaff ich es ja schon, mit meiner Extension zwei Symbole einzufügen. Inhalt:

Code: Alles auswählen

<dd><img src="http://www.kampfverband-13.de/board/symbols3/6.png"><img src="http://www.kampfverband-13.de/board/symbols3/aga.png"> </dd>
Aber wie krieg ich jetzt das hin, dass die Symbole per PHP dynamisch gesetzt werden je nachdem, was in meiner mysql-Tabelle steht?
Ich steh extremst aufm Schlauch ^^

Danke für die Geduld :)
Die deutsche Community für Arma 3
Kampfverband-13
Taktik ¦ Teamplay ¦ Immersion
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Zusätzliche Mitgliederinformationen

Beitrag von gn#36 »

Das was automatisch abläuft ist in diesem Abschnitt beschrieben.

Wie du eine Änderung an einer bestehenden Seite machst steht im Grunde in diesem Abschnitt des Artikels.

Wenn man zunächst mal beiseite lässt, wie phpBB die Dateien findet, die es zusätzlich ausführen soll, dann ist der Ablauf eigentlich ganz einfach: Die betreffende phpBB Datei (z.B. posting.php oder viewtopic.php) wird ausgeführt, bis phpBB auf einen Event Trigger trifft. Hier springt es dann in die Erweiterungen, die auf dieses Event lauschen. Anschließend setzt phpBB die normale Ausführung fort, wobei Änderungen an einigen Variablen von den Erweiterungen vorgenommen werden können und auch z.B. Variablen ins Template geschrieben werden können.

Event Trigger in bestehenden Dateien findest du, indem du nach @event suchst. Wenn du weißt, wo du was manipulieren willst, dann musst du im Grunde nur das richtige Event im phpBB Quellcode dafür suchen. An das Event hängst du dich mit deiner Erweiterung dran und führst dann deine Manipulationen aus. Wie das dann geht steht im Artikel.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Extension Bastelstube“