SEARCHRESULT

Suchbegriffe werden in einer Form ins Register geladen, die es möglich macht, auf Seiten zu verlinken.

Beispiel:
register: SWORD_PARAMS= '&sword_list[]=word1&sword_list[]=word2...'

SEARCHRESULT liefert nur Ergebnisse von Seiten vom Typ "Standard" (1), "Erweitert" (2) und "Nicht im Menü" (5)

EigenschaftDatentypBeschreibungStandard
allowedColsstring

Liste (durch : getrennt) mit zugelassenen Tabellenspalten.

Beispiel:
pages.title:tt_content.bodytext

layoutstring

Dies gibt an, wie das Suchergebis dargestellt wird.

Beispiel:
Die folgenden Felder werden ersetzt:

###RANGELOW### Der Anfang des Ergebnisbereiches (z.B. 1)
###RANGEHIGH### Das Ende des Ergebnisbereiches (z.B. 10)
###TOTAL### Die Gesamtzahl der Ergebnisse
###RESULT### Das Ergebnis selbst
###NEXT### Der Vor-Button
###PREV### Der Zurück-Button

nextcObjectDieses Inhaltsobjekt wird von einem Link zur nächsten Seite mit Suchergebnissen gewrapt. Dieser Code ersetzt das ###NEXT###-Element
prevcObjectDieses Inhaltsobjekt wird von einem Link zur vorigen Seite mit Suchergebnissen gewrapt. Dieser Code ersetzt das ###PREV###-Element
targettargetZiel bis zu den next/prev-Links
rangeintDie Anzahl an Ergebnissen pro Seite20
renderObjcObjectDas Inhaltsobjekt, welches die Suchergebnisse darstellt.
Der Array $cObj->data wird auf den zurückgelieferten Eintrag der Suche gesetzt.
Beachten Sie, dass alle Felder nach dem Schema [Tabellenname]_[Feldname] benannt sind. Der Seitentitel findet sich also im Feld pages_title.
Davon angesehen ist auch das UID-Feld der Seitentabelle vorhanden.
renderWrapwrap
resultObjcObjectDas Inhaltsobjekt, welches den eigentlichen Suchergebnissen vorangestellt ist.
noResultObjcObjektDas Inhaltsobjekt, welches benutzt wird, wenn keine Suchergebnisse gefunden wurden.
noOrderBybooleanWenn diese Eigenschaft gesetzt ist, werden die Ergebnisse NICHT nach lastUpdated, tstamp in der pages-Tabelle sortiert
wrapwrapWrapt den gesamten Inhalt
stdWrap»stdWrapWrapt den gesamten Inhalt
addExtUrlsAndShortCutsboolean

Wenn diese Eigenschaft gesetzt ist, werden die Seitentypen 3 und 4 (Externe URLs und Verknüpfungen) zu den durchsuchten Seitentypen hinzugefügt.

Allerdings werden zu diesem Zeitpunkt keine Seiten ausgewählt, solange sie nicht mindestens einen Seiteninhalt haben. Das liegt daran, dass die pages- und die tt_content-Tabelle verknüpft sind. Daher muss in einer Externen-URL- oder Verknüpfungs-Seite mindestens ein Seiteninhalt vorhanden sein, damit die Seite in der Suche berücksichtigt wird.

languageField.[2. Tabelle]string

Setzt einen Feldnamen, nach dem die Sprache gefiltert werden soll. Das funktioniert wie die languageField-Einstellung in »select.

Beispiel:
languageField.tt_content = sys_language_uid

ANMERKUNG: "sword" und "scols" MÜSSEN gesetzt sein, damit die Suche durchgeführt werden kann.

var "sword"Suchbegriff(e)
var "scols"Durchsuchte Spalten durch ":" getrennt, z.B.:
pages.title:pages.keyword:tt_content.bodytext
var "stype"Der Ausgangspunkt der Suche:
false: aktuelle Seite
L-2: Die Seite über der aktuellen Seite
L-1: aktuelle Seite
L0: Root-Ebene
L1: erste Ebene
L2: zweite Ebene
var $GLOBALS ["HTTP_POST_VARS"] ["locationData"]

Wenn diese Eigenschaft gesetzt ist, wird die Suchedurchgeführt, als ob sie auf der Seite gestartet worden wäre, die von locationData angegeben wird. Siehe die Beschreibung beimInhaltsobjekt "FORMS".

Nur wenn die Seite, auf die locationData zeigt, innerhalb der Rootline dieser Seite liegt, wird die Suche dies berücksichtigen.

Intern:

var "scount"Wenn diese Eigenschaft gesetzt ist, wird sie als Suchzähler benutzt - Die Gesamtanzahl an Ergebnissen. Auf diese Weise müssen wir diese Zahl nicht rekonstruieren
var "spointer"Dies zeigt auf den Anfangsinhalt der Suche

Später:

var "alldomains"boolean: Wenn gesetzt, wird die Suche auch auf andere Domains ausgeweitet
var "allsites"boolean: Wenn gesetzt, wird die Suche auch auf andere Sites ausgeweitet (angegeben durch die "root"-Einstellung in einem aktiven Template)
var "depth"Die Tiefe

Suchsyntax

Wenn Sie eine Suche durchführen, können Sie drei Operatoren benutzen:

  • UND: "+", "and" (UK), "og" (DK)
  • ODER: "or" (UK), "eller" (DK)
  • NICHT: "not" (UK), "uden" (DK)

Der Standardoperator ist AND. Wenn Sie Suchbegriffe in Anführungszeichen "" angeben, wird nach der kompletten Zeichenfolge gesucht. Die Suche unterscheidet nicht zwischen Groß- und Kleinschreibung und findet auch Teile von Wörtern.

Beispiele

  1. menu backend - Findet Seiten, die sowohl "menu" als auch "backend" enthalten
  2. "menu backend" - Findet Seiten mit der exakten Wortfolge "menu backend"
  3. menu or backend - Findet Seiten, die entweder "menu" oder "backend" enthalten
  4. menu or backend not content - Findet Seiten, die entweder "menu" oder "backend", aber nicht "content" enthalten.

Abfragen zu den Beispielen

In diesem Fall ist als zu durchsuchendes Feld "Seiteninhalt" angegeben. Das beinhaltet tt_content.header, tt_content.bodytext und tt_content.imagecaption.

Den Abfragen vorangestellt ist das hier:

SELECT pages.title AS pages_title, pages.subtitle AS pages_subtitle, pages.keywords AS pages_keywords, pages.description AS pages_description, pages.uid, tt_content.header AS tt_content_header, tt_content.bodytext AS tt_content_bodytext, tt_content.imagecaption AS tt_content_imagecaption FROM pages, tt_content WHERE(tt_content.pid=pages.uid) AND (pages.uid IN (2,5,6,20,21,22,29,30,31,3,4,8,9,16,1) AND pages.doktype in (1,2,5) AND pages.no_search=0 AND NOT tt_content.deleted AND NOT tt_content.hidden AND (tt_content.starttime<=985792797) AND (tt_content.endtime=0 OR tt_content.endtime>985792797) AND tt_content.fe_group IN (0,-1) AND NOT pages.deleted AND NOT pages.hidden AND (pages.starttime<=985792797) AND (pages.endtime=0 OR pages.endtime>985792797) AND pages.fe_group IN (0,-1)) ...

Der Teil "... pages.uid IN (2,5,6,20,21,22,29,30,31,3,4,8,9,16,1)..." ist eine Liste von Seiten-IDs, die durchsucht werden sollen. Diese Liste basiert auf den Seiten-IDs im Website-Zweig des Seitenbaums und begrenzt die Suche auf diesen Zweig und nicht auf die gesamte Tabelle.

  1. ... AND ((tt_content.header LIKE '%menu%' OR tt_content.bodytext LIKE '%menu%' OR tt_content.imagecaption LIKE '%menu%') AND (tt_content.header LIKE '%backend%' OR tt_content.bodytext LIKE '%backend%' OR tt_content.imagecaption LIKE '%backend%')) GROUP BY pages.uid

  2. ... AND ((tt_content.header LIKE '%menu backend%' OR tt_content.bodytext LIKE '%menu backend%' OR tt_content.imagecaption LIKE '%menu backend%')) GROUP BY pages.uid

  3. ... AND ((tt_content.header LIKE '%menu%' OR tt_content.bodytext LIKE '%menu%' OR tt_content.imagecaption LIKE '%menu%') OR (tt_content.header LIKE '%backend%' OR tt_content.bodytext LIKE '%backend%' OR tt_content.imagecaption LIKE '%backend%')) GROUP BY pages.uid

  4. ... AND ((tt_content.header LIKE '%menu%' OR tt_content.bodytext LIKE '%menu%' OR tt_content.imagecaption LIKE '%menu%') OR (tt_content.header LIKE '%backend%' OR tt_content.bodytext LIKE '%backend%' OR tt_content.imagecaption LIKE '%backend%') AND NOT (tt_content.header LIKE '%content%' OR tt_content.bodytext LIKE '%content%' OR tt_content.imagecaption LIKE '%content%')) GROUP BY pages.uid

Beachten Sie, dass Groß- und Kleinschreibung bei der Suche keine Rolle spielt. Außerdem findet "menu" als Suchbegriff außer "menu" auch "menus", "menuitems" usw.