app.php/test direkt im Index anzeigen.

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
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

app.php/test direkt im Index anzeigen.

Beitrag von Walter91 »

Ich hab mir eine kleine Extension gemacht.Im ACP kann ich Text eingeben der in eine Tabelle gespeichert wird.
Mit walter91/test/controller/main.php hole ich die Daten aus der Tabelle und lasse die in der Datei /template/test.html so anzeigen{TEST_AUSGABE}
Rufe ich /phpbb3/app.php/test im Browser auf werden die Daten auf einer neuen Seite mit weißen Hintergrund angezeigt.Also nicht im Index des Forums.
Ich habe mir zusätzlich in /template/event/ eine Seite index_body_markforums_before.html erstellt und dort das eingefügt{TEST_AUSGABE}
Die Seite index_body_markforums_before.html wird im Index des Forums angezeigt aber nicht die Daten aus {TEST_AUSGABE}

Mein Problem ist,wie bekomm ich das hin das die Daten in der Datei index_body_markforums_before.html angezeigt werden.

Mein Code in /controller/main.php

Code: Alles auswählen

// hier Code zum Daten aus Tabelle holen. Das geht auch alles.
 
 $template->assign_vars(array(
                'TEST_AUSGABE' => $message,
            ));
            $db->sql_freeresult($result);
            
            display_custom_bbcodes();    
        
        return $this->helper->render('test.html', $this->user->lang('TESTSEITE')); 
 
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: app.php/test direkt im Index anzeigen.

Beitrag von gn#36 »

Es gibt mehrere mögliche Interpretationen, was du genau tun wollen könntest...

Wenn du die seite lediglich im stil des forums darstellen willst musst du nur ein <!-- include overall_header.html --> Oben über deinen html code in der templatedatei platzieren und unten drunter entsprechend overall_footer.

Wenn du die Ausgabe in einer bestehenden Seite zeigen willst, dann gibt es so genannte Events, die du verwenden musst. Einmal für das Template, einmal für den PHP Teil.

Schau mal hier rein. Es gibt eine Erweiterung, die einem alle Template Events direkt im Forum anzeigt. Damit kannst du dir sehr schnell das für dich passende aussuchen. Dann kannst du anhand des Namens dieses Event schauen, welches PHP Event sich am besten eignet, die Daten bereitzustellen.

Um das Template-Event zu nutzen muss die Datei nur an der richtigen Stelle liegen und den passenden Namen haben. Der PHP Teil muss korrekt in der service.yml eingetragen werden, schau dir am besten die Tutorials mal an, da steht das eigentlich recht ausführlich drin.
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.
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: app.php/test direkt im Index anzeigen.

Beitrag von Walter91 »

Erst mal dank für deine Antwort.
Die Extension Template Events https://github.com/marttiphpbb/phpbb-ext-templateevents kenne ich.
Das Problem ist ja das die Seite index_body_markforums_before.html im Index beim Forenaufruf wie gewünscht sofort angezeigt wird aber meine Daten aus der Tabelle nicht,obwohl ich {TEST_AUSGABE} in der index_body_markforums_before.html drin habe.

Der Fehler liegt also sehr warscheinlich im php-Teil. Jetz ist mir blos nicht klar was ich da falsch mache.
Es geht also nur darum wie gebe ich eigene Daten aus einer Tabelle in der index_body_markforums_before.html aus.

Die Daten sind ja in der Tabelle drin und werden mit /phpbb3/app.php/test auch richtig angezeigt. Nur eben nicht in der index_body_markforums_before.html
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: app.php/test direkt im Index anzeigen.

Beitrag von gn#36 »

Was du erstellt hast - zumindest, wenn ich dich richtig verstehe - ist ein Controller, der eine eigenständige Seite ausgibt. Was du aber brauchst ist ein Controller, der sich bei einer anderen Seite "einklinkt" und dort dafür sorgt, dass deine Daten ausgegeben werden.

Schau mal hier rein: https://area51.phpbb.com/docs/dev/31x/e ... e-listener
Dort wird der PHP Teil für so ein Event beschrieben. Du musst allerdings noch selbst auswählen, welches Event du nutzen willst. Im phpBB Wiki gibt es eine Liste. Da kannst du einfach mal schauen, welches am besten passt. Normalerweise ist es am besten, nach dem Dateinamen der PHP Datei zu suchen, an der du effektiv was ändern willst. Wenn du also im Index was drin haben willst, dann vermutlich nach index. Ich vermute mal da wäre das Event core.index_modify_page_title was für dich. Du willst zwar nicht den Seitentitel anpassen, aber beliebigen Code bei jedem Seitenaufruf der index.php ausführen. Das Event wird bei jedem Aufruf getriggert, daher dürfte es für deine Zwecke geeignet sein.
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.
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: app.php/test direkt im Index anzeigen.

Beitrag von Walter91 »

gn#36 hat geschrieben:Du willst zwar nicht den Seitentitel anpassen, aber beliebigen Code bei jedem Seitenaufruf der index.php ausführen.
Ja genau das soll rauskomen. Danke für deine Tips. Ich setze mich da morgen dran und versuche das.
Wenn ich nicht klarkomme meld ich mich wieder.
Benutzeravatar
waldkatze
Ehemaliges Teammitglied
Beiträge: 792
Registriert: 08.03.2013 21:50

Re: app.php/test direkt im Index anzeigen.

Beitrag von waldkatze »

Du kannst auch mal hier nachschauen falls du nicht klar kommst: Demo
Schau auf NEWSBLOCK. Wenn ich dich richtig verstanden habe, soll so etwas ähnliches rauskommen.

Ich habe diese Extension noch nicht für den Download veröffentlicht.
Ich muss jetzt leider auf Arbeit. Bin aber Montag abend wieder da. Da setze ich den Download rein.
Das dürfte auch als Codebeispiel für deine Zwecke gehen.
Das Bremsen eines Motorrades ist die Verschwendung hochwertiger Geschwindigkeit in sinnlose Wärmeenergie.
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: app.php/test direkt im Index anzeigen.

Beitrag von Walter91 »

Danke an gn#36 und waldkatze. Mit den Tip von gn#36 und der Demo Extension von waldkatze habe ich das jetz hinbekommen :grin:
die Demo Extension ist sehr gut erklärt.Mehr davon bitte.Sehr gute Anleitung.
Antworten

Zurück zu „Extension Bastelstube“