[3.3] [Fork] Recent Topics NG

In diesem Forum können Extension-Autoren ihre Extensions vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Benutzeravatar
IMC
Mitglied
Beiträge: 548
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von IMC »

LukeWCS hat geschrieben: 02.02.2023 21:38 aber so wie ich das sehe, sollte der default Zweig doch eigentlich auf die Startseite von phpBB leiten, wenn man nach app.php/rt/ etwas angibt, dass der Controller nicht kennt, oder?
Das ist der Plan.
LukeWCS hat geschrieben: 02.02.2023 21:38 Wenn ja, dann klappt das momentan noch nicht, das führt zu einem No route found for "GET /forum33/index.php".
Meine Foren sind alle im Stammverzeichnis. Da geht es. Habe eben ein Subdomain so Umgeleitet das ein Form über ein Unterverzeichnis gestartet wird, da geht es nicht. :evil:

Edit: Geht doch! Ich hatte den Pfad im ACP nicht eingetragen. Aber wieso bekommst du die Fehlermeldung?
LukeWCS hat geschrieben: 02.02.2023 21:38 Aber wenn ja, dann könnte man das anders lösen und ebenfalls auf die Startseite weiterleiten, ohne dazu exit() direkt notieren zu müssen. Das können wir phpBB selber überlassen und dann hat EPV auch nichts mehr zu meckern. Das hängt aber davon ab, ob ich deine Absicht richtig verstanden hatte.
Das wollte ich ursprünglich. Hatte aber keine Lösung gefunden. Deshalb habe ich den Location-Header gesendet.
Wenn du eine gute Lösung hast würde ich die gern nutzen.
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2178
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von LukeWCS »

IMC hat geschrieben: 02.02.2023 22:12 Edit: Geht doch! Ich hatte den Pfad im ACP nicht eingetragen. Aber wieso bekommst du die Fehlermeldung?
Hmm in dem Fall vermute ich mal, hängts mit meinen TBs zusammen. Ich nutze Wampserver und da habe ich meine TBs als virtuelle Hosts eingerichtet. So kann ich parallel 3.3, 3.2 und 3.1 fahren, ohne irgendwas umkonfigurieren oder umschalten zu müssen bezüglich PHP Version.
Wenn du eine gute Lösung hast würde ich die gern nutzen.
Obs eine gute Lösung ist, wird sich zeigen. Ich benutze das zum Beispiel bei EMP. Teste mal das Folgende bei dir und wenn bei dir auch alles passt, würde ich sagen wir nehmen das.

Statt:

Code: Alles auswählen

			default:
				$location = $this->config['script_path'] . '/index.' . $this->phpEx;
				$location = str_replace('//', '/', $location);
				header('location: ' . $location);
				exit();
			break;
Das hier:

Code: Alles auswählen

			default:
				redirect($this->phpbb_root_path . 'index.' . $this->phpEx);
			break;
Dadurch haben wir 1) eine Umleitung auf den Index und 2) kümmert sich phpBB dann direkt selbst um exit und 3) hat EPV nix mehr zu meckern. Drei auf einen Schlag.

Oder aber du guckst dir chris1278's Vorschlag an, dazu kann ich nichts sagen, da ich wie gesagt mit Controller noch nicht zugange war. Du wirst damit aber sicher was anfangen können: viewtopic.php?p=1421434#p1421434
chris1278 hat geschrieben: 02.02.2023 22:09 Wenn ihr für phpbb eine alternative für exit sucht geht auch das hier:

Code: Alles auswählen

exit_handler();
Danke für die Erinnerung. :) Das kam mir bekannt vor, ich wusste aber nicht woher. Hab dann grad unsere Diskussion im WWH Forum entdeckt, da hatten wir im November 2021 schon drüber geplauscht. Völlig vergessen.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
chris1278
Mitglied
Beiträge: 3559
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von chris1278 »

Das kein Problem. Ich denke das könnte man auch in Kombination mit einer Meldung nutzen. Hab das aber noch nicht getestet.

Ich denke das würde auch mit ner meldung gehen:

Code: Alles auswählen

exit_handler('Hier die Meldung');

Ob das geht und wenn wie die Meldung ausgegeben wird kann ich aber nicht sagen. Das müsstet ihr dann mal testen. Immer vorausgesetzt das man eine Meldung dann braucht.

@edit

Hab mal probiert und so kann man keine Meldung erzeugen.
Benutzeravatar
IMC
Mitglied
Beiträge: 548
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von IMC »

Ich habe mich für die Funktion redirect() entschieden. Diese wir im phpBB Code fast 100mal genutzt.

@chris1278
Danke für deinen Vorschlag zum Routing. Da ich zu Zeit auf zwei Seiten Route muss ich unsere routing.yml so belassen. Würde ich auch so lösen wenn ich auf nur eine Seite route. Dann gibt eine klare Struktur zum Routen. /ExtensionName/SeitenName

Edit: Sehe gerade das du für den defaults: eine andere Syntax hast. Die unterschiedlichen Schreibweisen waren mir schon aufgefallen, ich hatte mich für die meinige entschieden da diese mit der in der /config/default/routing/routing.yml bei 3.3.x und 4.0 identisch ist.

Bei der Funktion exit_handler() ist die Ausgabe eines Statustext nicht vorgesehen.
https://github.com/phpbb/phpbb/blob/3.3 ... 4336-L4358
Diese Funktion wäre jedoch eine gute alternative gewesen da sie den gewünschten Exit durchführt. Der Exit wird benötigt damit während des Redirects kein php Code ausgeführt wird und es dadurch zu unerwünschten Effekten kommt.
Gruß, Thorsten
Benutzeravatar
IMC
Mitglied
Beiträge: 548
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von IMC »

Ich habe etwas in den Symfony Docs gestöbert. Der Vorschlag von Chris1278 ist schon seit Symfony Version 4.0 die aktuelle Schreibweise und wird vereinzelt auch im phpBB angewendet.
Ich habe diese jetzt übernommen.
Gruß, Thorsten
Benutzeravatar
IMC
Mitglied
Beiträge: 548
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von IMC »

@Patrick
2.2.15-pl7 ist jetzt online.

Ich wäre jetzt mit meinen gewünschten Änderungen und Ergänzungen durch. Ich würde noch ein paar Tests wiederholen wollen, und wenn von deiner Seite auch alles wie gewünscht arbeitet, könnten wir in der nächsten Woche ein Release erstellen.
Gruß, Thorsten
Benutzeravatar
chris1278
Mitglied
Beiträge: 3559
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von chris1278 »

Hab das aktuelle mal installiert und so wie es ausschaut funktioniert alles einwandfrei. Mein Testforum läuft in Unterverzeichnis und da wird auch alles so geladen wie es soll.

Allerdings würde ich vorschlagen den PayPal Button im ACP zu deaktivieren.

@edit
Mal eine andere Frage. Wenn ich mir diese Case Switchs anschaue frage ich mich bei welcher Konstellation wird der simple oder Default Case geladen.

Wenn ich das Manuel in die Adresszeile eingebe kann ich die Ergebnisse sehen aber bei simple erschließt sich mir nicht wo man das benötigt.

Rein theoretisch könnte man das ganze als Einzelzeite anlegen ohne Case Modus. den Rest ließe sich doch mit Sicherheit auch mit if abfragen regeln.

Beim Ladung des Schalters simple erscheint folgendes Ergebnis:

https://prnt.sc/P1YQhfSJy1J1

Dies würde sich eigentlich nur erklären wenn man diese Ausgabe speziell in einer andere Ausgabe unterbringen wollte oder z.B. auf einer externen seite anzeigen lassen würde.

Der Default setzt direkt zum Index über.


@Ergänzung

Aber ich verstehe jetzt warum das {page} in der routing.yml steht. Ihr steuert die Ausgabe über einen switch.

Switch wäre simple separate und Default

Ich kann zwar nicht ganz nachvollziehen warum die ext mit der Methode arbeitet aber so muss das dann in der Routing angegeben werden.

Ihr solltet aber noch bedenken noch folgende Methode zu berücksichtigen.

Ohne Url umschreiben sieht das so aus:

http://localhost/339/app.php/rt/separate

mit sieht das so aus:

http://localhost/339/separate

Jetzt könnte man auch versucht sein wenn die Methode url Umschreiben aktiviert ist das so zu schreiben:

http://localhost/339/separate.php

Dafür müsste man einen zweiten Routing Eintrag generieren der dann auf den ersten umleitet.

Ich nutze das ja in meiner paypalme Extension (noch nicht veröffentlicht steht aber aktuell bei com zur validierung).

Bei mir sieht das so aus:

in der routing.yml

Code: Alles auswählen

chris1278_paypalme:
    path: /paypalme
    defaults:
        _controller: 'chris1278.paypalme.controller:base'
chris1278_paypalme2:
    path: /paypalme.php
    defaults:
        _controller: 'chris1278.paypalme.controller:redirect'


entsprechende Einträge in der entsprechenden controller datei:

Code: Alles auswählen

public function base()
	{
		$this->template->assign_block_vars('navlinks', [
			'FORUM_NAME'		=> $this->language->lang('PAYPALME'),
			'U_VIEW_FORUM'		=> $this->helper->route('chris1278_paypalme'),
		]);

		return $this->helper->render('paypalme_body.html', $this->language->lang('PAYPALME'));
	}

	public function redirect()
	{
		redirect($this->helper->route('chris1278_paypalme'));
	}


Ich kann euch auch gerne die paypalme Extension zum vergleich zukommen lassen.
Benutzeravatar
IMC
Mitglied
Beiträge: 548
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von IMC »

chris1278 hat geschrieben: 04.02.2023 09:43 Jetzt könnte man auch versucht sein wenn die Methode url Umschreiben aktiviert ist das so zu schreiben:

http://localhost/339/separate.php
Danke für den Hinweis. Man kann bei den Usern ja mit allem rechnen.
Wenn der Benutzer dem Route in der aktuellen RT Version eine Extension hinzufügt landet er auf der Startseite.

Dies kann ich mit dem Routing, so wie ich es angelegt habe, noch etwas einfacher bereinigen indem ich die Extension aus dem übergebenden Parameter herraus filtere. Damit ist dann alles gedeckelt (*.php, *.html usw.)

Im Code sieht das dann so aus.

Code: Alles auswählen

	public function display($page)
	{
		$this->language->add_lang('info_acp_recenttopics', 'paybas/recenttopics');
		$title = $this->language->lang('RECENT_TOPICS');
		
		$page_name = explode('.', $page);

		switch ($page_name[0])
		{
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2178
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von LukeWCS »

chris1278 hat geschrieben: 04.02.2023 09:43 Switch wäre simple separate und Default
Nope. Der default Zweig wird immer dann getriggert, wenn versucht wird eine RT Seite aufzurufen, die im Controller gar nicht existiert. Das ist quasi wie else. Zur Auswahl stehen effektiv nur simple und separate.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
chris1278
Mitglied
Beiträge: 3559
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3][Fork] Recent Topics

Beitrag von chris1278 »

IMC hat geschrieben: 04.02.2023 14:19 Dies kann ich mit dem Routing, so wie ich es angelegt habe, noch etwas einfacher bereinigen indem ich die Extension aus dem übergebenden Parameter herraus filtere. Damit ist dann alles gedeckelt (*.php, *.html usw.)

Im Code sieht das dann so aus.

Code: Alles auswählen

	public function display($page)
	{
		$this->language->add_lang('info_acp_recenttopics', 'paybas/recenttopics');
		$title = $this->language->lang('RECENT_TOPICS');
		
		$page_name = explode('.', $page);

		switch ($page_name[0])
		{
Ok Ihr arbeitet bei eurer Version mit einer Struktur mit Case switches um die Seiten zu definieren. Ich hab das vereinfachte Modell (welches ich aus der Ext Skeletor Extension kopiert habe). Aber wenns passt ist es ok.
LukeWCS hat geschrieben: 04.02.2023 14:31 Nope. Der default Zweig wird immer dann getriggert, wenn versucht wird eine RT Seite aufzurufen, die im Controller gar nicht existiert. Das ist quasi wie else. Zur Auswahl stehen effektiv nur simple und separate.
Ja ok. Aber dennoch bleibt die Frage welche Konstellation erfordert den switch simple.
Antworten

Zurück zu „Extensions in Entwicklung“