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)

Eigenschaft

Datentyp

Beschreibung

Standard

allowedCols

string

Liste (durch : getrennt) mit zugelassenen Tabellenspalten.

Beispiel:
pages.title:tt_content.bodytext

layout

string

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

next

cObject

Dieses Inhaltsobjekt wird von einem Link zur nächsten Seite mit Suchergebnissen gewrapt. Dieser Code ersetzt das ###NEXT###-Element

prev

cObject

Dieses Inhaltsobjekt wird von einem Link zur vorigen Seite mit Suchergebnissen gewrapt. Dieser Code ersetzt das ###PREV###-Element

target

target

Ziel bis zu den next/prev-Links

range

int

Die Anzahl an Ergebnissen pro Seite

20

renderObj

cObject

Das 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.

renderWrap

wrap

resultObj

cObject

Das Inhaltsobjekt, welches den eigentlichen Suchergebnissen vorangestellt ist.

noResultObj

cObjekt

Das Inhaltsobjekt, welches benutzt wird, wenn keine Suchergebnisse gefunden wurden.

noOrderBy

boolean

Wenn diese Eigenschaft gesetzt ist, werden die Ergebnisse NICHT nach lastUpdated, tstamp in der pages-Tabelle sortiert

wrap

wrap

Wrapt den gesamten Inhalt

stdWrap

»stdWrap

Wrapt den gesamten Inhalt

addExtUrlsAndShortCuts

boolean

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.


Kommentare von registrierten Benutzern:

Kommentar von: Heiko Trömel

15. 05. 2007, 11:50
Das wichtigste wird einem wieder mal nicht gesagt:
The 'pages'-table is ALWAYS included as the search is page-based. Apart from this there may be one and only one table, joined with the pages-table. This table is the first table mentioned in the requested-list. If any more tables are set here, they are ignored.
Zitat aus dem Quellcode von Typo3.

Profil

Kommentar von: tobi

14. 08. 2006, 19:34
Typoscript:Zeilennummerierung:  An / Aus

Html4strict:Zeilennummerierung:  An / Aus

Html4strict:Zeilennummerierung:  An / Aus

Html4strict:Zeilennummerierung:  An / Aus

  1. Javascript:Zeilennummerierung:  An / Aus

Html4strict:Zeilennummerierung:  An / Aus

Html4strict:Zeilennummerierung:  An / Aus

Html4strict:Zeilennummerierung:  An / Aus

Html4strict:Zeilennummerierung:  An / Aus



Php:Zeilennummerierung:  An / Aus

Php:Zeilennummerierung:  An / Aus

Php:Zeilennummerierung:  An / Aus

Php:Zeilennummerierung:  An / Aus



Profil



Seite drucken
 
TYPO3 Version 4.2.0 testen

TYPO3 Ver. 4.2.0 testen

Testen Sie die neue TYPO3 Version 4.2.0 kostenlos für einen Monat

TYPO3 Bücher

TYPO3 Workshops


TYPO3 Einführungsschulung
in Berlin:
Montag, 07.07.
in Espelkamp:
Montag, 04.08.

TYPO3 Intensivschulung
in Espelkamp:
Mi., 06.08. - Fr., 08.08.
in Würzburg:
Mo., 18.08. - Mi., 20.08.
in Köln:
Mo., 01.09. - Mi., 03.09.
in Berlin:
Mi., 24.09. - Fr., 26.09.

TYPO3 Extensionschulung
in Berlin:
Mo., 14.07. - Mi., 16.07.
in Espelkamp:
Mo., 11.08. - Mi., 13.08.