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

[3.1.10] Extension Hello World mit Datenbank Integration

Beitragvon SqlMaster » 07.12.2016 16:44

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
Ehemaliger
Beiträge: 663
Registriert: 08.03.2013 21:50
Wohnort: Oberlausitz

Re: [3.1.10] Extension Hello World mit Datenbank Integration

Beitragvon waldkatze » 07.12.2016 20:18

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
Motorrad fahren, ist die schönste Sache die man angezogen machen kann...
Kein Support per PN oder Mail. Meine MODS / Extensions für phpBB

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 1024
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.1.10] Extension Hello World mit Datenbank Integration

Beitragvon canonknipser » 07.12.2016 22:47

Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC

Benutzeravatar
gn#36
Administrator
Administrator
Beiträge: 9175
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: [3.1.10] Extension Hello World mit Datenbank Integration

Beitragvon gn#36 » 07.12.2016 22:49

Oder eine Schritt-für-Schritt Anleitung in unserer KB: Eigene phpBB Erweiterungen 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

Beitragvon SqlMaster » 08.12.2016 16:18

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
Ehemaliger
Beiträge: 663
Registriert: 08.03.2013 21:50
Wohnort: Oberlausitz

Re: [3.1.10] Extension Hello World mit Datenbank Integration

Beitragvon waldkatze » 08.12.2016 18:58

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&amp;u=' . $user_id, true, ''),
Motorrad fahren, ist die schönste Sache die man angezogen machen kann...
Kein Support per PN oder Mail. Meine MODS / Extensions für phpBB


Zurück zu „Extension Bastelstube“