Ankündigung

Einklappen
Keine Ankündigung bisher.

Suchergebnisse == alle, wenn kein Suchergebnis gefunden wird

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suchergebnisse == alle, wenn kein Suchergebnis gefunden wird

    Ich habe einen Suchfilter: Typ "Textsuche".
    Den Filter habe ich auf 2 Tag-Tabellen (Ausbildungsstellen & Firma) gerichtet.

    Wenn ich nun in die Suche etwas eingebe, das nicht vorhanden ist... z.B. "zzzzz", gibt er mir jedoch alle Ergebnisse in der Datenbank aus, anstatt z.B. die Info zu zeigen, das keine Suchergebnisse gefunden wurden.

    Wenn ich allerdings ganz unten "ist strikt" aktiviere, UND in der suche einen weiteren Filter wähle, zeigt er mir an, dass er keine Ergebnisse gefunden hat.
    ABER wenn ich "Ist strikt" wähle, und nur einen nicht existierenden Suchtext eingebe (also ohne weitere Filter), dann zeigt er wieder alles an.

    BTW: "ist Strikt" kann ich leider nicht verwenden, da er dann bei der Volltextsuche keine Firmen-Namen mehr findet.

    Wie kann ich das lösen?

  • #2
    Im Liste-Modul die Option "Zeige alle Einträge bei leeren Filter" deaktivieren.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Ah, danke, gefunden.
      Wenn ich nun aber die Checkbox deaktiviere, findet er gar keine Einträge mehr, selbst nicht dann, wenn ich in das Suchfeld einen Wert eingebe, der zuvor funktioniert hat.

      Ich würde gerne bei betreten der Liste "also wenn keine Filter und Suchanfragen gesetzt wurden" alles anzeigen, und wenn dann was eingegeben wird, bei nicht finden der Werte die Info ausgeben, das dazu kein Ergebnis vorliegt.
      Geht das?

      Kommentar


      • #4
        Das geht nicht mit einfach "Zusammen"-Klicken mit dem Freitext-Filter nicht. Im Text-Filter wird die Suche nach dem Wert über die Felder strikt (wie du schon bemerkt hast). Unterschied quasi: Feld AND bzw. OR (nicht strikt)

        Bei anderen Filtern dient der "Ist strikt" Modus für genau dein Vorhaben. Er lässt das Gesamtergebnis "negativ" laufen. (keine Treffer)

        Den Text-Filter musst du austricken und einen "unmöglichen" Wert übergeben, wenn der Filter inaktiv ist, quasi nicht real benutzt wurde (Parameter in der Url gesetzt).
        Stichwort: Filter vorbelegen (hier im Forum)

        "meinTextFilter" mit deinem Filter-Namen / Paramter ersetzen

        initconfig.php

        // falls Text-Filter leer, setze unmöglichen Wert
        Code:
        if( Input::get('meinTextFilter') == '')
        {
        Input::setGet('meinTextFilter','michGibtEsGarantiertNicht');
        }
        Zuletzt geändert von Tim; 10.06.2021, 13:10.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Ich habe keine initconfig.php gefunden, muss ich die in system/config/ anlegen? Ich habe da derzeit die auf dem Bild abgebildete Struktur:

          Oder kann ich das ggf. auch in die localconfig.php rein packen?

          Das mit dem Parameter habe ich dann so wie auf dem 2. Bild gemacht. ist das korrekt?
          Angehängte Dateien

          Kommentar


          • #6
            Also ich habe das nun noch einmal analysiert.
            Wenn ich auf die Listenseite komme, habe ich niemals ein "?suche=" als prameter an der URL.
            Somit würde die Abfrage in initconfig.php - beim ersten Aufruf der Liste auch dort niemals greifen.

            Wenn ich dann etwas in die Suche eingebe, erscheint in der url "?suche=meinSuchwort".

            Was ich "gefühlt" bräuchte, wäre eine Möglichkeit herauszufinden, ob das Suchwort ein valides Ergebnis liefert oder nicht. Wenn nicht, und wenn "suche=" nicht gesetzt ist, dann soll er alles ausgeben.

            Wenn suche= gesetzt ist, aber kein valides ergebnis kommt, soll er ne Meldung ausgeben, das nichts gefunden wurde.


            Wenn ich nun in meinem Suchfilter "Zeige alle einträge bei leerem Filter" DEAKTIVERE, passiert folgendes:

            1) Ich komme auf die Seite ( also kein "?suche=" in der url), und es wird mir angezeigt, das nichts gefunden wurde
            2) Ich kann in die Suche eingeben was ich möchte, er schreibt, das nichts gefunden wird.
            3) Wähle ich eines der weiteren beiden Filterkriterien, erst dann sucht er wirklich und gibt mir entweder ein ergebnis, oder die meldung, das dazu keine einträge vorhanden sind).

            Was also demnach momentan fehlt ist :
            1) Ein Suchergebnis, wenn nur das Suchefeld bestückt wurde
            2) Die Anzeige aller Datensätze, wenn man die Seite betritt und noch nichts gesucht hat.


            Ich habe im Forum nach dem Stichwort gesucht, habe aber keine für mich verwertbaren Infos über dieses Vorbelegen gefunden. Das was ich gefunden habe hat mir kein vollständiges Bild vermittelt in dem ich es nachvollziehen oder verstehen könnte, wie es nun angewendet wird.

            Cool wäre es, wenn es zu solchen spezifischen Sachen so eine Art wiki geben würde, das die Schritte einmal komplett (auch für Laien verständlich) erklärt.

            Kommentar


            • #7
              Ein leerer Wert im Parameter ist gleich der Anfrage für die initconfig.

              ?suche= IST GLEICH Input::get('suche') == '' // true
              ---
              Erstmal solltest du die Suche so konfigurieren, das sie so arbeitet die du willst. Dann solltest du den Moment ohne Eingabe von einem Benutzer definieren. Den Code dafür hast du bereits erhalten.

              Cool wäre es, wenn es zu solchen spezifischen Sachen so eine Art wiki geben würde, das die Schritte einmal komplett (auch für Laien verständlich) erklärt.
              Du bekommst personalisierten Support für dein Projekt. Komplexe Systeme wie CC sind leider kein Laien-Werk. Wir müssen uns auch in das gewünschte Verhalten eindenken und ich muss Szenarien nachbauen.
              Zuletzt geändert von Tim; 11.06.2021, 08:42.
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                So, das gewünschte Resultat ist gut über ein eigenes mod_customcatalog Template abbildbar. Im mod_customcatalog Template kann man die gesamte Ausgabe des CCs manipulieren.

                Liste-Einstellung: Zeige alle Einträge bei leeren Filter deaktiviert

                "Im Falle eines leeren Ergebnisses (total = 0) und Textfilter ist nicht gesetzt, erzeuge ein neues Liste-Modul, setze die Zeige alle Einträge Einstellung auf aktiv und rendere damit den CC"

                mod_customcatalog_show_all.html5

                (mein Textfilter heisst: textsuche-1 -> gegen den eigenen Textfilter ersetzen)

                Code:
                 [COLOR=#333333][FONT=Monaco][SIZE=11px] [COLOR=#878787]<?php[/COLOR]
                  [COLOR=#0045aa]use[/COLOR] PCT\CustomElements\Plugins\CustomCatalog\Core\CustomCatalogFactory;
                  [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                    [COLOR=#0045aa]<div [/COLOR][COLOR=#007ab7]class=[/COLOR][COLOR=#5d8f00]"[/COLOR][COLOR=#878787]<?=[/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->class;[/COLOR][COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR][COLOR=#5d8f00] block"[/COLOR][COLOR=#878787]<?=[/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->cssID;[/COLOR][COLOR=#878787]?[/COLOR][COLOR=#878787]><?php[/COLOR]
                    [COLOR=#0045aa]if[/COLOR][COLOR=#000000]([/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->style):[/COLOR][COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR][COLOR=#007ab7]style=[/COLOR][COLOR=#5d8f00]"[/COLOR][COLOR=#878787]<?=[/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->style;[/COLOR][COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR][COLOR=#5d8f00]"[/COLOR][COLOR=#878787]<?php[/COLOR][COLOR=#0045aa]endif[/COLOR][COLOR=#000000];[/COLOR][COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR][COLOR=#0045aa]>[/COLOR]
                  [COLOR=#878787]<?php[/COLOR] [COLOR=#0045aa]if[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->headline)[/COLOR]: [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                  <[COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->hl[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]>[COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->headline[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]</[COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->hl[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]>
                  [COLOR=#878787]<?php[/COLOR] [COLOR=#0045aa]endif[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                    [COLOR=#878787]<?php[/COLOR]
                  [COLOR=#8735a5]$objCC[/COLOR] [COLOR=#000000]=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->CustomCatalog[/COLOR];
                  [COLOR=#197020]// wenn textsuche nicht gesetzt, alle Einträge anzeigen[/COLOR]
                  [COLOR=#0045aa]if[/COLOR][COLOR=#000000]([/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->total[/COLOR] [COLOR=#000000]<[/COLOR] [COLOR=#007ab7]1[/COLOR] [COLOR=#000000]&&[/COLOR] Input[COLOR=#000000]::[/COLOR][COLOR=#3f6e7d]get[/COLOR]([COLOR=#dd2400]'textsuche-1'[/COLOR]) [COLOR=#000000]==[/COLOR] [COLOR=#dd2400]''[/COLOR] [COLOR=#000000])[/COLOR]
                  [COLOR=#000000]{[/COLOR]
                  [COLOR=#8735a5]$objModule[/COLOR] [COLOR=#000000]=[/COLOR] ModuleModel[COLOR=#000000]::[/COLOR][COLOR=#3f6e7d]findByPk[/COLOR]([COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->id[/COLOR]);
                  [COLOR=#8735a5]$objModule[/COLOR][COLOR=#000000]->customcatalog_filter_showAll[/COLOR] [COLOR=#000000]=[/COLOR] [COLOR=#007ab7]1[/COLOR];
                  [COLOR=#8735a5]$objCC[/COLOR] [COLOR=#000000]=[/COLOR] CustomCatalogFactory[COLOR=#000000]::[/COLOR][COLOR=#3f6e7d]findByModule[/COLOR]([COLOR=#8735a5]$objModule[/COLOR]);
                  [COLOR=#000000]}[/COLOR]
                  [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                    [COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$objCC[/COLOR][COLOR=#000000]->[/COLOR][COLOR=#3f6e7d]render[/COLOR](); [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                    [COLOR=#878787]<?php[/COLOR] [COLOR=#0045aa]if[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->allowComments)[/COLOR]: [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                  [COLOR=#0045aa]<div [/COLOR][COLOR=#007ab7]class=[/COLOR][COLOR=#5d8f00]"ce_comments block"[/COLOR][COLOR=#0045aa]>[/COLOR]
                  <[COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->hlc[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]>[COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->addComment[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]</[COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->hlc[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]>
                  [COLOR=#878787]<?=[/COLOR] [COLOR=#400080]implode[/COLOR]([COLOR=#dd2400]''[/COLOR], [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->comments[/COLOR]); [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                  [COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->commentsPagination[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                  [COLOR=#878787]<?php[/COLOR] [COLOR=#0045aa]include[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->[/COLOR][COLOR=#3f6e7d]getTemplate[/COLOR]([COLOR=#dd2400]'mod_comment_form'[/COLOR], [COLOR=#dd2400]'html5'[/COLOR]); [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                  [COLOR=#0045aa]</div>[/COLOR]
                  [COLOR=#878787]<?php[/COLOR] [COLOR=#0045aa]endif[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                    [COLOR=#878787]<?php[/COLOR] [COLOR=#0045aa]if[/COLOR][COLOR=#000000]([/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->pagination)[/COLOR]:[COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                  [COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->pagination[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                  [COLOR=#878787]<?php[/COLOR] [COLOR=#0045aa]endif[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                    [COLOR=#878787]<?php[/COLOR] [COLOR=#0045aa]if[/COLOR][COLOR=#000000]([/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->back)[/COLOR]: [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                  [COLOR=#197020]<!-- indexer::stop -->[/COLOR]
                  [COLOR=#0045aa]<p [/COLOR][COLOR=#007ab7]class=[/COLOR][COLOR=#5d8f00]"back"[/COLOR][COLOR=#0045aa]><a [/COLOR][COLOR=#007ab7]href=[/COLOR][COLOR=#5d8f00]"[/COLOR][COLOR=#878787]<?=[/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->referer;[/COLOR][COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR][COLOR=#5d8f00]"[/COLOR][COLOR=#007ab7]title=[/COLOR][COLOR=#5d8f00]"[/COLOR][COLOR=#878787]<?=[/COLOR][COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->back;[/COLOR][COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR][COLOR=#5d8f00]"[/COLOR][COLOR=#0045aa]>[/COLOR][COLOR=#878787]<?=[/COLOR] [COLOR=#8735a5]$this[/COLOR][COLOR=#000000]->back[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR][COLOR=#0045aa]</a></p>[/COLOR]
                  [COLOR=#197020]<!-- indexer::continue -->[/COLOR]
                  [COLOR=#878787]<?php[/COLOR] [COLOR=#0045aa]endif[/COLOR]; [COLOR=#878787]?[/COLOR][COLOR=#878787]>[/COLOR]
                    [COLOR=#0045aa]</div>[/COLOR]
                 [/SIZE][/FONT][/COLOR]
                Angehängte Dateien
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Ok, ich habe nun folgendes gemacht:

                  1) initconfig.php
                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: screenshot_ 8_25_48.jpg
Ansichten: 170
Größe: 31,1 KB
ID: 22709

                  Erzeugt dann leider auch ein unschönen eintrag mit diesem nicht existierenden Such-String beim Betreten der Seite im Eingabefeld.

                  2) templates/layout/mod_customcatalog_show_all.html5 angelegt.
                  textsuche-1 habe ich gegen "suche" ersetzt, da mein Filter den Alias "suche" hat.
                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: screenshot_ 8_27_58.jpg
Ansichten: 120
Größe: 73,7 KB
ID: 22710

                  ​Wenn ich das Modul nun in Themes⇒Frontendmodule ⇒ Module-Template wähle, steigt die Page mit nem kompletten error aus.
                  Die Logs sagen dazu:

                  Code:
                  [2021-06-15 08:08:54] request.CRITICAL: Uncaught PHP Exception Error: "Call to a member function render() on null" at /homepages/32/xxxxx/htdocs/contao/templates/layout/mod_customcatalog_show_all.html5 line 21 {"exception":"[object] (Error(code: 0): Call to a member function render() on null at /homepages/32/xxxx/htdocs/contao/templates/layout/mod_customcatalog_show_all.html5:21)"} []
                  Was mache ich falsch?


                  Kommentar


                  • #10
                    Mein Template basiert auf aktuellen CC Versionen. Bitte updaten. Min. 4.3.8: https://forum.premium-contao-themes....2507#post22507
                    http://www.premium-contao-themes.com

                    Kommentar


                    • #11
                      Ok. Das ist dann auch kompatibel zur Contao 4.9.13 LTS ?
                      Wo kann ich das update auf 4.3.8 runterladen?

                      Kommentar


                      • #12
                        Zitat von rethus Beitrag anzeigen
                        Ok. Das ist dann auch kompatibel zur Contao 4.9.13 LTS ?
                        Wo kann ich das update auf 4.3.8 runterladen?
                        Ja.

                        Die Daten finden sich im Kundenbereich je Bestellung zum Download. Bitte die Update-Hinweise in den Update-Threads beachten.
                        http://www.premium-contao-themes.com

                        Kommentar


                        • #13
                          Ich kämpfe mit demselben Problem und würde mir wünschen, dass das standardmäßig in CC so umgesetzt wird:

                          - Ohne Sucheingabe wird alles angezeigt
                          - Mit Sucheingabe wird Ergebnis gezeigt
                          - Wenn kein Ergebnis findbar -> "Kein Objekt gefunden"

                          Das wäre für die meisten Nutzer am logischsten. Ein kompliziertes Workaround sollte es eher geben, wenn man davon abweichen möchte.
                          Ode rkönnte man hier nicht auch einfach einen Knopf irgendwo hinmachen, über den man das steuern kann? -> "Bei nicht benutzter Suche alles anzeigen"

                          Kommentar


                          • #14
                            - Ohne Sucheingabe wird alles angezeigt
                            - Mit Sucheingabe wird Ergebnis gezeigt
                            - Wenn kein Ergebnis findbar -> "Kein Objekt gefunden"
                            Das entspricht dem Bordmittel: Liste-Modul Einstellung "Zeige alle Ergebnisse bei leeren Filter" (aktiviert)
                            http://www.premium-contao-themes.com

                            Kommentar


                            • #15
                              Das funktioniert bei uns nicht. Die Option "Zeige alle Einträge bei leerem Filter" führt dazu, dass immer alles angezeigt wird, wenn es keinen Treffer gab. Also zum einen, wenn gar keine Suche vorgenommen wurde (was ja korrekt ist), zum anderen aber auch, wenn das Suchfeld bspw. mit "LJFAJSDLFKJL" ausgefüllt wird, werden ebenfalls alle Einträge angezeigt (ohne Meldung "Leider nichts gefunden ..."). Die Suche funktioniert aber, d.h. wenn man ein Stichwort eingibt, das tatsächlich zu Treffern führt, werden auch nur diese angezeigt.

                              D.h. momentan ist es so:
                              - Ohne Sucheingabe wird alles angezeigt
                              - Mit Sucheingabe wird Ergebnis gezeigt
                              - Wenn kein Ergebnis findbar -> wird alles angezeigt

                              Kommentar

                              Lädt...
                              X