[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
AddOn-interne Suchfunktion - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
dpf_dd
Beiträge: 151
Registriert: 20. Dez 2007, 14:07

AddOn-interne Suchfunktion

26. Nov 2015, 10:48

Hallo Leute,

ich möchte gern die Ausgabe meiner AddOn-Daten ein wenig pimpen und habe vor eine Such-/Filterfunktion einzubauen. Der User soll über der Ausgabe der Daten im Frontend ein Formular serviert bekommen, das er die Anzeige der Datensätze filtern bzw. die Ausgabe der Datensätze durchsuchen kann.

Ich benötige aber noch etwas Hilfe, einen geeigneten theoretischen Ansatz zu finden.
Folgende 2 Wege schweben mir vor:

1) Die SQL-Abfrage im Ausgabe-Modul meiner AddOn-Daten auf ALLE Datensätze => dann per jQuery die Daten filtern (Nachteil: Es werden immer alle Daten geladen und nur die Ausgabe gesteuert)

2) Die SQL-Abfrage im Ausgabe-Modul meines AddOn-Daten auf GEFILTERTE Datensätze => also quasi vorher per Formular die Filterkriterien übergeben und an PHP_SELF schicken

Ich finde letzteren Ansatz eigentlich besser, allein mir fehlt die Vorstellung, wie ich da am besten anfange. Gibt es da schon vorgefertigtes, was ich nur noch nicht kenne? Sowas wie RexSearch nur für AddOns und eben nicht global für die komplette Seite - das wäre IDEAL...

Es ist doch eigentlich ein häufiger Usecase für Leute, die AddOns entwickeln... Kann mir da jemand einen Schubs in die richtige Richtung geben? Würde mich über paar Ideen freuen, vielen Dank schonmal :D

MfG
Stefan / dpf_dd

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: AddOn-interne Suchfunktion

26. Nov 2015, 14:02

Hängt von der Menge der Daten ab. Ist die überschaubar, spricht nichts gegen Ansatz 1, zb so: https://select2.github.io/examples.html#data-array.

Für Ansatz 2 bietet sich Ajax an, zb so: https://select2.github.io/examples.html#data-ajax

dpf_dd
Beiträge: 151
Registriert: 20. Dez 2007, 14:07

Re: AddOn-interne Suchfunktion

26. Nov 2015, 15:07

Ingo hat geschrieben:Hängt von der Menge der Daten ab. Ist die überschaubar, spricht nichts gegen Ansatz 1, zb so: https://select2.github.io/examples.html#data-array.

Für Ansatz 2 bietet sich Ajax an, zb so: https://select2.github.io/examples.html#data-ajax
Ajax ist schön und gut, aber ich hab da so schon immer mit zu kämpfen und das Ganze dann noch mit nem Redaxo dazwischen.... Mir graut es jetzt schon. So auf den ersten würde ich fragen, wie das gehen soll, denn die SQL-Abfrage findet ja beim Erstaufruf des Ausgabe-Moduls statt. Ich muss also per AJAX dann auch einen Seitenreload triggern, damit der mir die gefilterten Daten holt. Aber da kann ich ja AJAX auch gleich weglassen und es eben über ein Formular machen, dass an PHP_SELF geschickt wird. Dann bekommt das Modul bei jedem Seitaufbau die POST-Informationen, wie der Query aussehen muss um zu filtern. Also wozu AJAX an der Stelle?

Benutzeravatar
rkemmere
Beiträge: 486
Registriert: 6. Feb 2007, 17:47
Kontaktdaten: Website

Re: AddOn-interne Suchfunktion

26. Nov 2015, 15:19

Vielleicht ist das hier, das was du suchst.

http://www.redaxo.org/de/forum/post104783.html#p104783

Viele Grüße
Ronny

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: AddOn-interne Suchfunktion

26. Nov 2015, 15:46

dpf_dd hat geschrieben:Also wozu AJAX an der Stelle?
Das Ausgabemodul stellt erstmal nur ein Suchfeld dar. Wenn der Nutzer nun einen Suchbegriff eingibt, setzt du ab einer sinnvollen Anzahl von Zeichen Ajax Requests ab (zb /redaxo/index.php?page=deinaddon&task=ajaxsearch) und kriegst die Suchergebnisse zurück, die du dann als Vorschläge ausgibst. Gib bei dem von mir verlinkten Beispiel "redaxo" ein, dann siehst du was ich meine. Oder gib was bei Google ins Suchfeld ein - gleiches Muster. Das hat den Vorteil, dass der Nutzer schon beim Tippen ein Feedback bekommt und wesentlich schneller/ gezielter etwas findet. Ob du die kompletten Ergebnisse auch per Ajax holst oder das Formular mit dem Suchbegriff ganz normal abschickst und beim Reload die kompletten Ergebnisse lädst, hängt vom konkreten Anwendungsfall ab. Wieviel Datensätze gibt es, wie soll die Ergebnisliste aussehen usw.

dpf_dd
Beiträge: 151
Registriert: 20. Dez 2007, 14:07

Re: AddOn-interne Suchfunktion

27. Nov 2015, 13:31

Danke Ingo für deinen Denkanstoß.
Ich habe es jetzt mit Redaxo-intenen AJAX gelöst: Ich habe im Ausgabe-Modul ein onChange-Trigger eingebaut

Code: Alles auswählen

<script type="text/javascript">
$(function() {
    $('.test').change(function(){
        var test = $('.test').val();
        $.ajax({
            url:'<?= rex_getURL(100) ; ?>?test=' + test,
            success:function(data){
                var result = eval(data);
                $('#test_out').html(result);
            }
        })
    })
});
</script>

Code: Alles auswählen

<select class="test" name="test" class="text">
<option value="0">Test 1</option>
<option value="1">Test 2</option>
<option value="2">Test 3</option>
<option value="3">Test 4</option>
<option value="4">Test 5</option>
</select>


Die Ajax-URL verweist auf einen Redaxo-Artikel (im Beispiel ID 100). Im Redaxo habe ich diesem Artikel ein Leertemplate nur mit der Ausgabe "REX_ARTICLE[]" verpasst und ein neues Modul angelegt, was mir die angefragten Daten aus der Redaxo-DB holt. Dann wird dieses Ajax-Modul im Backend dem Ajax-Artikel hinzugefügt und schon funktioniert das Ganze :D

Vielleicht brauchts mal jemand :D

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

Re: AddOn-interne Suchfunktion

27. Nov 2015, 15:08

Hej,

du willst die Daten deines AddOns im Backend durchsuchen?

Dann könntest als Basis den Watson (im Installer) verwenden. Der macht das u.a. für alle Artikel, Medien, Module, Templates. Du müsstest nur eine Class schreiben, die dein AddOn durchsucht und am Watson registrieren.

vg Thomas.

dpf_dd
Beiträge: 151
Registriert: 20. Dez 2007, 14:07

Re: AddOn-interne Suchfunktion

29. Nov 2015, 18:47

Thomas.Blum hat geschrieben:Hej,

du willst die Daten deines AddOns im Backend durchsuchen?

Dann könntest als Basis den Watson (im Installer) verwenden. Der macht das u.a. für alle Artikel, Medien, Module, Templates. Du müsstest nur eine Class schreiben, die dein AddOn durchsucht und am Watson registrieren.

vg Thomas.
Watson ist coooool, nutze ich gerne. Danke dafür Thomas :)
Aber im aktuellen Fall geht es um das Frontend...

Zurück zu „Allgemeines [R4]“