Eingeschränkte Suche in Plone

  • Hallo allerseits.

    Ich möchte (in Plone 3.06) ein Suchportlet erstellen, der die Suche nicht global (auf der ganzen Ploneinstanz) durchführt, sondern nur auf den Daten und Unterordnern in diesem Ordner.

    Die globale Suche ermöglicht durch das Setzen des Häkchens [nur im aktuellen Bereich] genau das was ich benötige, während die Suche im Portlet diese Option nicht hat.

    Kann man das Portlet so ändern, dass

    1.) Die lokale Suche möglich ist,
    2.) die Suche per default lokal ist, oder zumindest
    3.) dass das Häkchen per default auf "lokale Suche" ist

    Meine zweite Frage diesbezüglich ist, ob die Suchergebnisse in irgendeiner Weise sortiert werden können, z.B. alphabetisch. Mir scheint es, sie werden zeitlich geordnet.

  • Hallo,

    zu allem ja es geht.
    zu 1. Suche Viewlet ansehen und das Suche Portlet entsprechend modifizieren, zu finden über portal_view_customization
    zu 2. Die Funktion des Portal_catalog überschreiben
    zu 3. im Template (des Viewlets und oder Portlets) einfach Default setzen

    zur Sotierung: Der Catalog gibt erstmal eine Liste von Objekten zurück, an das Skript des Viewlets, bzw. Portlets, eine Liste kann man immer sortieren. Einfach die Funktion umschreiben.


    Gruss Pumukel

    Die beste Informationsquelle sind Leute, die versprochen haben, nichts weiterzuerzählen.

    Marcel Mart
    frz. Schriftsteller


  • Entscheidend ist, dass für die Einschränkung der Suche auf einen Unterbaum eine Teilquery über den Index 'path' durchgeführt wird. Der Wert muss dem Pfad des Folders in der der ZODB entsprechend. Die Teilquery kann entweder als Hidden-Field im Suchformular übergeben werden oder irgendwo im dahinterliegenden Skript eingebaut werden. Welche Lösung Deinem Problem am nächsten kommt musst Du entscheiden.