DEPRECATION WARNING
This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.
EXT: [AN] Search it!¶
Author: | Kasper Skårhøj |
---|---|
Created: | 2002-11-01T00:32:00 |
Changed by: | Markus Schmid |
Changed: | 2005-02-11T09:17:00 |
Author: | Markus Schmid [Area-Net GmbH] |
Email: | ms@area-net.de |
Info 3: | |
Info 4: |
EXT: [AN] Search it!¶
Extension Key: an_searchit
Copyright 2000-2005, Markus Schmid [Area-Net GmbH], <ms@area-net.de>
This document is published under the Open Content License
available from http://www.opencontent.org/opl.shtml
The content of this document is related to TYPO3
- a GNU/GPL CMS/Framework available from www.typo3.com
Table of Contents¶
EXT: [AN] Search it! 1
Introduction 1
What does it do? 1
Screenshots 1
Users manual 2
Configuration 2
plugin.tx_searchit_form 2
plugin.tx_searchit_resOverview 2
plugin.tx_searchit_resList 2
Reference 3
Example 5
Known problems 6
To-Do list 6
Changelog 6
Introduction¶
What does it do?¶
Die Extension bietet eine flexible Suchfunktion als Alternative zur integrierten Tyop3-Suche oder Index-Search-Extension von Kaspar. Die Suchextension kann frei konfiguriert werden, so dass auch ohne großen Aufwand beliebige Extension eingebunden werden können. Die ganze Konfiguration und das Layout kann über Typoscript erledigt werden.
Users manual¶
Für die Benutzung muss die Extension lediglich aus dem Repository geladen, installiert und entsprechend dem nächsten Kapitel per Typoscript konfiguriert werden.
Configuration¶
Die Extension wird komplett per Typoscript konfiguriert. Es können verschiedene Tabellen angegeben werden, in denen gesucht werden sollen. Die Kombination von einer Tabelle und den entsprechenden Feldnamen werden als Section zusammengefasst. Eine Section kann dabei für den normalen Seiteninhalt (Tabelle tt_content) oder für jede beliebige Extension stehen. Es muss mindestens eine Section angegeben werden.
plugin.tx_searchit_form¶
Das Suchformular. Dieses kann dann in einem Template für einen Marker oder Subpart eingesetzt werden.
plugin.tx_searchit_resOverview¶
Eine Liste der Sections, in denen Suchergebnisse gefunden wurden mit einem Link jeweils auf die detaillierte Ergebnisseite.
plugin.tx_searchit_resList¶
Die detaillierte Ergebnisliste. Listet die Seiten der entsprechenden Section auf, in denen Suchergebnisse gefunden wurden.
Die drei obigen TS-Variablen können in einem Template entsprechenden Markern oder Subparts zugeordnet werden:
subparts.SEARCH < temp.searchitForm
In einer entsprechenden Suchergebnisseite können dann die Übersicht und die detaillierte Ergebnisliste beispielhaft wie fogt ausgegeben werden:
page.10.subparts.CONTENT = COA
page.10.subparts.CONTENT{
10 = TEXT
10.value = <h2>Suchergebnisse</h2>
20 < temp.searchitOverview
30 < temp.searchitList
}
Reference¶
plugin.tx_searchit_form¶
resultPID¶
Parameter
resultPID
Description
PID der Seite, auf der die Ergebnisse angezeigt werden sollen – also die Seite in der plugin.tx_searchit_resOverview und/oder plugin.tx_searchit_resList eingebunden sind.
format¶
Parameter
format
Description
Reihenfolge und Art der Elemente im Formular durch Komma getrennt. Mögliche Werte:
label, field, button
label.cssClass¶
Parameter
label.cssClass
Description
Die CSS-Klasse des label-Tags. Entspricht:
<label class=”...
label.cssStyle¶
Parameter
label.cssStyle
Description
Spezielle CSS-Angaben des label-Tags. Entspricht:
<label style=”...
field.title¶
Parameter
field.title
Description
Titel-Attribut des Suchfeldes. Entpricht:
<input title=”...
field.cssClass¶
Parameter
field.cssClass
Description
Die CSS-Klasse des Suchfeldes . Entspricht:
<input type=”text” class=”...
field.cssStyle¶
Parameter
field.cssStyle
Description
Spezielle CSS-Angaben des Suchfeldes. Entspricht:
<input type=”text” style=”...
field.value¶
Parameter
field.value
Description
Standardwert des Suchfeldes. Entspricht:
<input type=”text” value=”...
Dieser Standardwert wird in der Suche ignoriert. Das vorbegelegen des Feldes mit einem Inhalt ist wichtig für die Einhaltung von Richtlinien zum barrierefreien Webdesign
button.cssClass¶
Parameter
button.cssClass
Description
Die CSS-Klasse des Buttons . Entspricht:
<input type=”submit” class=”...
button.cssStyle¶
Parameter
button.cssStyle
Description
Spezielle CSS-Angaben des Buttons. Entspricht:
<input type=”submit” style=”...
wrap¶
Parameter
wrap
Description
-> stdWrap.wrap
plugin.tx_searchit_resOverview¶
config¶
Parameter
config
Description
siehe Abschnit “config” am Ende der Refer
resultPID¶
Parameter
resultPID
Description
PID der Seite, auf der die detaillierten Ergebnisse der jeweiligen Section angezeigt werden sollen – also die Seite in der plugin.tx_searchit_resList eingebunden ist.Standardmäßig ist es dieselbe Seite wie die Übersicht.
headline.show¶
Parameter
headline.show
Description
Anzeige der Überschrift ja/nein. Mögliche Werte:
1 oder 0
headline.wrap¶
Parameter
headline.wrap
Description
-> stdWrap.wrap
sections.format¶
Parameter
sections.format
Description
Reihenfolge und Art der Elemente in der Liste der Sections. Mögliche Werte:
name, count
sections.NO.wrap¶
Parameter
sections.NO.wrap
Description
Wrap um eine nicht aktive Section:
-> stdWrap.wrap
sections.ACT¶
Parameter
sections.ACT
Description
Darstellung aktiver Zustand einer Section. Mögliche Werte:
1 oder 0
sections.ACT.doNotLink¶
Parameter
sections.ACT.doNotLink
Description
Aktive Section verlinken oder nicht. Mögliche Werte:
1 oder 0
sections.ACT.wrap¶
Parameter
sections.ACT.wrap
Description
Wrap um die aktive Section.
-> stdWrap.wrap
sections.name.wrap¶
Parameter
sections.name.wrap
Description
Wrap um den Section-Namen.
-> stdWrap.wrap
sections.count.wrap¶
Parameter
sections.count.wrap
Description
Wrap um die Anzahl der gefundenen Treffer in einer Section.
-> stdWrap.wrap
sections.wrap¶
Parameter
sections.wrap
Description
Wrap um die gesamte Übersicht aller Sections, ohne Überschrift.
-> stdWrap.wrap
plugin.tx_searchit_resList¶
config¶
Parameter
config
Description
siehe Abschnit “config” am Ende der Reference
resultPID¶
Parameter
resultPID
Description
PID der Seite, auf der die detaillierten Ergebnisse der jeweiligen Section angezeigt werden sollen – also die Seite in der plugin.tx_searchit_resList eingebunden ist.Standardmäßig ist es dieselbe Seite wie die Übersicht.
headline.show¶
Parameter
headline.show
Description
Anzeige der Überschrift ja/nein. Mögliche Werte:
1 oder 0
headline.caption¶
Parameter
headline.caption
Description
Der Überschriftstext
headline.wrap¶
Parameter
headline.wrap
Description
-> stdWrap.wrap
outString¶
Parameter
outString
Description
Formatiert die Ausgabe eines einzelnen Suchergebnis. Innerhalb von “outString” können die drei Marker
###HEADLINE### - Die Überschrift des Ergebnis (siehe. sections.x.header)
###BODY### - Der Übersichtstext des Ergebnis. Also ein automatischer
Zuammenschnitt des gefundenen Datensatzes oder eine
benutzerdefinierte Zusammenstellung (siehe sections.x.customBody)
###LINK### - Der Link zur Seite, auf der das Suchwort gefunden wurde.
Beispiel:
outString = <div class="searchhead"><b>###HEADLINE###</b></div><div class="searchbody">###BODY###</div><div class="searchlink"><img src="fileadmin/site/img/007a.gif" border="0">###LINK###</div>
Wird outString nicht angegeben, so wird die Ausgabe wie folgt formatiert:
outString = <strong>###HEADLINE###</strong><br />###BODY###<br />###LINK###
((Unknown Property))¶
Parameter
Description
config¶
sections¶
Parameter
sections
Description
Speichervariable für die verschiedenen Sections. Jede Section steht für eine Datenbank-Tabelle mit dazugehörigen Feldern, in denen gesucht werden soll. Mehrere Sections werden von 1..n durchnummeriert. Im nächsten Abschnitt wird ein Beispiel dies verdeutlichen. Es muss mindestens eine Section angegeben werden:
sections.1
Weitere Sections dann analog
sections.2
sections.3
...
sections.n
defaultSection¶
Parameter
defaultSection
Description
Wird keine defaultSection definiert, so wird beim ersten Suchaufruf nur eine Übersicht über die Anzahl der gefundenen Treffer in den Sections aufgelistet. Ist eine defaultSection definiert, so werden beim ersten Aufruf zusätzlich die Suchergebnisse dieser Section aufgelistet. Zum Beispiel:
defaultSection=1
sections.x.title¶
Parameter
sections.x.title
Description
Der Name der Section. Dieser wird in der Übersicht der Sections ausgegeben. Der Titel muss angegeben werden!
sections.x.table¶
Parameter
sections.x.table
Description
Der Name der Tabelle in der Datenbank, in der in dieser Section gesucht werden soll. Der Tabellennamen muss angegeben werden! Zum Beispiel:
tt_content
sections.x.fields¶
Parameter
sections.x.fields
Description
Der Name der Felder der obigen Tabelle in der Datenbank, in denen in dieser Section gesucht werden soll. Mindestens ein Feldnamen muss angegeben werden! Mehrere Feldnamen werden durch | getrennt Zum Beispiel:
header,bodytext,imagecaption
sections.x.PID¶
Parameter
sections.x.PID
Description
PID der Seite, auf der das Ergebnis gefunden wurde. Normalerweise wird die PID automatisch von der Such-Engine ermittelt. Es kann aber Fälle geben, in denen die Einträge beispielsweise in einem nicht öffentlichen Sys-Ordner abgespeichert, aber auf einer ganz anderen Seite ausgegeben werden. In diesem Fall würde der Link auf den Sys- Ordner verweisen, was natürlich nicht gewünscht ist. Daher kann alternativ eine andere PID angegeben werden.Möglichkeit 1 – eine PID. Beispiel:
sections.2.PID = 28
Möglichkeit 2 – PID abhängig von der PID des Sys-Ordners:
sections.2.PID = 110->28|111->29|112->30
Wird ein Ergebnis im Sys-Ordner mit der PID 110 gefunden, so zeigt der Link auf die Seite mit der PID 28, Wird ein Ergebnis im Sys-Ordner mit der PID 111 gefunden, so zeigt der Link auf die Seite mit der PID 29,
usw.
sections.x.header.field oder sections.x.header¶
Parameter
sections.x.header.field oder sections.x.header
Description
Standardmäßig wird in der detaillierten Ergebnisliste der entsprechenden Section das Feld “header” als Überschrift zum gefundenen Ergebnis ausgegeben. Bei Extension ist es aber oftmals sinnvoll andere Datenbankfelder als Überschrift (zum Beispiel “title”) zu verwenden.
sections.x.select¶
Parameter
sections.x.select
Description
Über diese Variable können weitere Felder oder Ausdrücke dem SQL- Statement hinzugefügt werden. Als
Beispiel:
sections.2.select = YEAR(FROM_UNIXTIME(start)) AS year
erzeugt
SELECT YEAR(FROM_UNIXTIME(start)) AS startyear,...
zu den zusätzlichen Feldern aus sections.x.fie
sections.x.params¶
Parameter
sections.x.params
Description
Übergabe von zusätzlichen Parametern an die Links der detailiierten Ergebnisseite, die auf die entsprechenden Seiten verweisen, in denen das Suchwort gefunden wurde
Möglichkeit 1 – statische Parameter:
sections.2.params = no_chache=1&modus=foo
Möglichkeit 2 – dynamische Parameter:
Es können auch die Inhalte von Datenbankfelder (sections.x.fields oder sections.x.select) als Parameter übergeben werden. Das Feld hat dabei folgende Syntax: #FELDNAME#
sections.2.params = tx_myplugin[year]=#year#
fügt in diesem Beispiel das zuvor über sections.2.select hinzugefügte Feld “year” hinzu und könnte folgende Ausgabe im Link erzeugen:
index.php?id=45&year=2004
sections.x.customBody.show¶
Parameter
sections.x.customBody.show
Description
Zeigt bei “sections.x.customBody.show=1” den benutzerdefinierten Ergebnistext an. Dieser kann laut den nächsten 4 Einstellungsmöglichkeiten konfiguriert werden.Wird diese Variable nicht gesetzt wird der Ergebnistext automatisch anhand der ausgewählten Feldern aus sections.x.fields formatiert.
sections.x.customBody.FIELD.length¶
Parameter
sections.x.customBody.FIELD.length
Description
Anzahl der Zeichen, die um das gefundene Suchwort angezeigt werden. FIELD entspricht dabei einem Datenbankfeld der zu durchsuchenden Tabelle. Das Datenbankfeld muss vorher über “sections.x.fields” ausgewählt worden sein.Beispiel:
customBody.title.length = 100
Ausführliches Beispiel siehe nächster Abschnit.
Für eine unbegrenzte Zeichenanzahl bitte den Wert 0 übergeben.
sections.x.customBody.FIELD.markupColor¶
Parameter
sections.x.customBody.FIELD.markupColor
Description
Die Farbe, in der das gefundene Suchwort im Text hervorgehoben wird. FIELD entspricht dabei einem Datenbankfeld der zu durchsuchenden Tabelle. Das Datenbankfeld muss vorher über “sections.x.fields” ausgewählt worden sein.Beispiel:
customBody.title.markupColor = #FF0000
Ausführliches Beispiel siehe nächster Abschnit.
Wird die Farbe nicht angegeben, so wird auch das Sichwort nicht extra hervorgehoben
sections.x.customBody.FIELD¶
Parameter
sections.x.customBody.FIELD
Description
-> stdWrap-> typolinkstdWrap/typolink für das entsprechende Datenbankfeld. FIELD entspricht dabei einem Datenbankfeld der zu durchsuchenden Tabelle. Das Datenbankfeld muss vorher über “sections.x.fields” ausgewählt worden sein.
Ausführliches Beispiel siehe nächster Abschnit.
sections.x.doNotShowLink¶
Parameter
sections.x.doNotShowLink
Description
Zeigt bei “sections.x.doNotShowLink=1” den Link zur Seite, auf der der Suchbegriff gefunden wurde, nicht an
Example¶
temp.searchitConfig{
sections{
1{
title = Seiteninhalt
table = tt_content
fields = header|bodytext|imagecaption
}
2{
title = Zuständigkeiten
table = tx_ancompetencies_competencies
header.caption = Zuständige Person
fields = title|name|email|contact
PID = 28
}
3{
title = Vereinsregister
table = tx_anassocbase_associations
fields = title|contact|web|email
customBody.show = 1
customBody{
title{
length = 0
wrap = | <br />
}
contact{
length = 0
wrap = Kontaktadresse:<br />|<br />
}
}
doNotShowLink = 1
select = ORD(LOWER(t.title)) AS letter
params = no_cache=1&tx_anassocbase_alphabet[letter]=#letter#
PID = 114->110|113->108|112->109
}
}
}
temp.searchitForm < plugin.tx_ansearchit_form
temp.searchitForm {
resultPID = 92
format = label,field, button
label.caption= Suche
label.cssStyle = margin-right:10px;
field.title = Bitte geben Sie einen Suchbegriff ein
field.cssStyle = margin-right:10px;
button.caption = suchen
}
temp.searchitOverview < plugin.tx_ansearchit_resOverview
temp.searchitOverview {
config < temp.searchitConfig
headline.show = 1
headline.caption = Gefunden in
headline.wrap = <br /><h3>|</h3><br/>
sections.format = name, count
sections{
NO.wrap = |<br/>
ACT = 1
ACT.doNotLink = 1
ACT.wrap = |<br/>
name.wrap = |
count.wrap = (|)
}
sections.wrap = |<hr style="border:none;border-bottom:solid #C9C9C9;height:1px;”>
noResults.caption = Ihre Suche brachte leider keine Ergebnisse.
}
temp.searchitList < plugin.tx_ansearchit_resList
temp.searchitList{
config < temp.searchitConfig
headline.show = 1
headline.caption = Ergebnisse
headline.wrap = <br/><br/><h3>|</h3><br/>
}
Known problems¶
---
To-Do list¶
- Übersetzung des deutschen Manuals ins Englische
- Konfiguration der detaillierten Ergebnisseite über Typoscript
- eine erweiterte Siche
- logische Verknüpfungen (AND / OR) bei der Suche