Separate Seite bei Aufruf einer Funktion öffnen?

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
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Separate Seite bei Aufruf einer Funktion öffnen?

Beitrag von chris1278 »

Hi also ich bin an einer Extension am arbeiten die eine Informationsdatenbank für Funkrufzeichen ist.

Anzuschauen hier auf dieser Seite:

Testseite für die Extension

Dort kann man auf den Begriff "Rufzeichendatenbank" klicken und es öffnet sich eine Sucheingabe wo man das gesuchte Funkrufzeichen eingeben kann.

Im Moment auf der Testseite aber nur von zwei Account. Einmal kann man nach Bombe suchen oder 1a.

Jeder Benutzer kann 5 Rufzeichen eintragen und dazu angaben machen in seinen Benutzereinstellungen.

Das Grundgerüst und die Funktionen stehen wie gewünscht.

Aber der Seitenbetreiber möchte zusätzlich ein Eingabe Feld in der Navigationsleiste haben wo man den Suchbegriff direkt eingeben kann.

Also ich kann dort ein Input Feld reinsetzen mit einem Icon und wenn man den Suchbegriff eingibt kann ich den auch in die listener.php reinhohlen.

Das Problem ist ich hab keine Idee wie ich die Ergebnis Seite aufrufen soll. Also im Prinzip soll bei dem Input Feld dasselbe Am ende zu sehen sein wie wenn man auf den Begriff "Rufzeichendatenbank" klickt und dann dort das Rufzeichen sucht.

Ich hoffe ich konnte mein anliegen gut genug ausdrücken. Da die Extension an sich nicht für die Öffentlichkeit ist kann man diese auch nirgend herunterladen kann aber gern gewünschte Dateien sofern benötigt hier per Pastebin zur Verfügung stellen.

Ich hab hier erst mal die listner.php ins pastebin geladen weil sich da alles abspielt.

listener.php

und zusätzlich die Datei für den Seitenaufruf:

main.php
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1076
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: Separate Seite bei Aufruf einer Funktion öffnen?

Beitrag von Mike-on-Tour »

Ich habe jetzt nicht verstanden, wieso du dafür den Event-Listener benötigst. Das zusätzliche Suchfeld ist doch in ein <form ...> Konstrukt eingebunden, und dort kannst du doch als action="" das Skript aufrufen, das auch in der von dir bereits implemntierten Suche die Anfrage abarbeitet und ausgibt.
Das entsprechende Skript (Controller) muss natürlich in der routing.yml entsprechend definiert sein.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Separate Seite bei Aufruf einer Funktion öffnen?

Beitrag von chris1278 »

Ok. das skript welches die Suche und ausgabe verabeitet ist ja die listener.php ´. Wie gesagt wenn ich ein input feld in die navbar satze z.b. so:

das hier jetzt in der Navbar.html platziert:

Code: Alles auswählen

<form method="post" action="{{ S_ACTION }}"{{ S_FORM_ENCTYPE }}>
	<input name="test" size="20" value="{{ TEST }}">
	<button class="button button-search" type="submit" >
		<i class="icon fa-search fa-fw" aria-hidden="true"></i><span class="sr-only"> Test </span>
	</button>
</form>
und das in der listener:

Code: Alles auswählen

echo $this->request->variable('test', '');
Damit könnte ich das ausgeben was ich in das input feld eingebe.

Das Problem ist nicht das ich den wert in der listener ausgebe sondern das der begriff als suchbegriff genau so zu dem ergebnis führt als wenn man ihn in dem anderen Suchfeld eingeben würde.

Die search result seite habe ich in der routing.yml ja auch eingetragen.

pastebin/?mode=view&s=13
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1076
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: Separate Seite bei Aufruf einer Funktion öffnen?

Beitrag von Mike-on-Tour »

chris1278 hat geschrieben: 24.04.2023 17:39 Das Problem ist nicht das ich den wert in der listener ausgebe sondern das der begriff als suchbegriff genau so zu dem ergebnis führt als wenn man ihn in dem anderen Suchfeld eingeben würde.
Dazu brauchst den per "request" eingelesenen Text doch nur als Eingabe für deine Suchfunktion zu nehmen, dann passiert damit genau dasselbe wie mit einer Eingabe in dem anderen Suchfeld.
Und damit nicht beide Sucheingaben denselben "name"-Eintrag im input-Tag haben, definierst du eben zwei Funktionen (inkl. routing-Eintrag), die jeweils eine der beiden Eingaben abfragen und die Eingabe an die eigentlich verarbeitende Funktion weitergeben. Dann hast du eine Arbeits-Funktion und zwei Such-Eingaben.
Antworten

Zurück zu „Extension Bastelstube“