Suchfunktion - Suche über alle Dokumente und nur eine Objektklasse

  • Hallo allerseits,

    bin gerade etwas ratlos. Ich möchte bei einer Suchfunktion alle Dokumente durchsuchen lassen und zusätzlich nur die Objekte einer Klasse, obwohl es in dem Webauftritt vier verschiedene Objektklassen gibt.

    Hier mein bisheriger Code:

    Obwohl ich die classid="3" eingefügt habe, werden auch Objekte anderer Klassen gefunden.

    Was kann ich tun? Freue mich über Tipps.

    VG

    Silvia

  • Hallo Silvia,

    das Verhalten ist erklärbar: <we:ifObject classid="3"> innerhalb von <we:repeat> filtert die Treffer nicht, sondern prüft nur pro Treffer, ob es sich um ein Objekt der Klasse 3 handelt und gibt dann zusätzlich die Description aus. Die Suche selbst liefert weiterhin alle Objektklassen.

    Die Filterung gehört direkt in den Listview-Tag:

    Code
    <we:listview type="search" name="suche" rows="20" order="Title" classid="3">

    Damit werden allerdings nur noch Objekte der Klasse 3 durchsucht.

    Für Dokumente und Objekte müsstest du irgend sowas bauen...

    Code
    <we:repeat>
        <we:ifDocument>
            <li>… Ausgabe Dokument …</li>
        </we:ifDocument>
        <we:ifObject classid="3">
            <li>… Ausgabe Objekt …</li>
        </we:ifObject>
    </we:repeat>

    Wichtiger Hinweis dazu: Bei dieser Variante stimmen Trefferzähler und Paginierung (rows="20", we:listviewStart/End) nicht mehr, weil die ausgefilterten Objekte mitgezählt werden. Das würde auch in deiner Variante so nicht klappen. Deshalb ist das classid-Attribut am Listview die sauberere Lösung, eventuell mit zwei Listviews hintereinander, einer für Dokumente und einer für Objekte oder mit PHP.

    LG
    Finn

    Edit:

    Wenn du die Doctypes definiert hast, sollte glaube ich auch sowas gehen:
    <we:listview type="search" name="suche" rows="20" order="Title" doctype="Standard" classid="3">

  • Hallo Finn,

    herzlichen Dank für die Infos. Da es die Suchergebnisse über Dokumente und Objekte geben soll, werde ich das wahrscheinlich mit zwei Listviews hintereinander lösen.

    Danke für die Tipps und liebe Grüße

    Silvia

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!