[3.1.10] Extension Hello World mit Datenbank Integration

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.
Antworten
SqlMaster
Mitglied
Beiträge: 60
Registriert: 09.05.2013 13:10

[3.1.10] Extension Hello World mit Datenbank Integration

Beitrag von SqlMaster »

Hallo,
ich bin dabei mein Forum auf 3.1.10 umzustellen und habe für die Version ein kleines MOD geschrieben welches eine Seite erstellt um Daten aus einer Tabelle anzuzeigen.

Nun wollte ich die den MOD in eine Extension umschreiben und habe mir die Thematik angesehen.
Der Alte code stand in einem php File im Basisverzeichnis

Code: Alles auswählen


 
 $sql = "SELECT a.username, a.user_email, DATE_FORMAT( DATE_ADD( '1970-01-01 01:00:00', INTERVAL user_regdate SECOND ) , '%d.%m.%Y' )  AS Registrierdatum, a.user_email, b.* 
     FROM phpbb_users a, phpbb_profile_fields_data b 
     WHERE a. user_id = b.user_id 
    order by a.user_regdate desc ";
 
 $result = $db->sql_query_limit($sql,50,0);
 
 while($row = $db->sql_fetchrow($result)) {  
  $template->assign_block_vars('block_name', array(
        'USERNAME'        => $row['username'],
        'USER_EMAIL'      => $row['user_email'],
        'REGDATE'      => $row['Registrierdatum'],
        'NAME'      => $row['pf_name'],
        'VORNAME'      => $row['pf_vorname'],
        'STRASSE'      => $row['pf_strasse'],
        'PLZ'      => $row['pf_postleitzahl'],
        'ORT'      => $row['pf_ort'],
        'TELE'      => $row['pf_telefon'],
    ));
 
Grundlage für meinen Test war das Hello World Beispiel.
laut meinem Verständnis dachte ich, das der Code in die main.php müsste. Aber wohin damit? und in welche methode?


Wer kann meinen Knoten lösen


Grüße
Jan
Benutzeravatar
waldkatze
Ehemaliges Teammitglied
Beiträge: 792
Registriert: 08.03.2013 21:50

Re: [3.1.10] Extension Hello World mit Datenbank Integration

Beitrag von waldkatze »

Das Schreiben von Extensionen ist leider viel aufwendiger als unter phpBB 3.0.x
Der große Vorteil ist, die Installation ist für den Anwender viel leichter geworden.

Am besten nimmst du dazu eine vorhandene Extension um die Zusammenhänge zu verstehen.
Lade dir als Beispiel mal eine relativ einfache Extension mit Datenbankzugriff: Download
Schau dir bitte ausgiebig den Quellcode an. Dann versteht man die Zusammenhänge.

Bitte auch sehr aufmerksam lesen: https://www.phpbb.com/extensions/writing/

Erläuterung:
composer.json hier gibst den Pfad zur Extension an

config legt die Pfade in deiner Extension fest

controller hier fügst du deine Programmdaten ein

event hier fügst Daten in das System von phpBB ein

language hier liegen die Sprachdateien

migrations entspricht der install.php mit phpBB 3.0.x

styles hier fügst du alles zu Templates ein
Das Bremsen eines Motorrades ist die Verschwendung hochwertiger Geschwindigkeit in sinnlose Wärmeenergie.
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.1.10] Extension Hello World mit Datenbank Integration

Beitrag von canonknipser »

Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: [3.1.10] Extension Hello World mit Datenbank Integration

Beitrag von gn#36 »

Oder eine Schritt-für-Schritt Anleitung in unserer KB: KB:ext_erstellen

Da ist auch ein Teil dabei, der eine eigene Seite in phpBB einbindet. Die DB Klasse wird in der Anleitung nicht benutzt. Du kannst sie aber einbinden, hierfür ist in der Konfiguration '@dbal.conn' zu verwenden, im Konstruktor kommt dann ein Objekt des Typs \phpbb\db\driver\driver_interface an (versteht man erst nach lesen des Artikels).
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.
SqlMaster
Mitglied
Beiträge: 60
Registriert: 09.05.2013 13:10

Re: [3.1.10] Extension Hello World mit Datenbank Integration

Beitrag von SqlMaster »

Vielen Dank für die Beispiele.

Ich habe das hinbekommen.
Nun kommt die Kür.

In meiner alten Mod hatte ich einen Link, mit welchem ich direkt zur Administration eines Users gesprungen bin

Code: Alles auswählen

  <td><a href="{U_EDIT_SELF}">{block_name.USERNAME}</a>    </td>   
Das funktioniert jetzt nicht mehr.
Kann mir da jemand einen Tipp geben, wie ich das anstellen muss.
Grüße
Jan
Benutzeravatar
waldkatze
Ehemaliges Teammitglied
Beiträge: 792
Registriert: 08.03.2013 21:50

Re: [3.1.10] Extension Hello World mit Datenbank Integration

Beitrag von waldkatze »

Ich habe das jetzt nicht getestet. Aber die folgende Zeile in der memberlist.php könnte dir weiterhelfen:

Code: Alles auswählen

'U_CANONICAL'	=> generate_board_url() . '/' . append_sid("memberlist.$phpEx", 'mode=viewprofile&u=' . $user_id, true, ''),
Das Bremsen eines Motorrades ist die Verschwendung hochwertiger Geschwindigkeit in sinnlose Wärmeenergie.
Antworten

Zurück zu „Extension Bastelstube“