Login / Status
developer.Resource
Home . Documentation . Document Library . Extension Manuals
Sponsors
hosted by punkt.deTYPO3 and Open Source Magazine

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

Parameter

Description

resultPID

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

Reihenfolge und Art der Elemente im Formular durch Komma getrennt. Mögliche Werte:

label, field, button

label.caption

Beschriftung des label-Tags

label.cssClass

Die CSS-Klasse des label-Tags. Entspricht:

<label class=”...

label.cssStyle

Spezielle CSS-Angaben des label-Tags. Entspricht:

<label style=”...

field.title

Titel-Attribut des Suchfeldes. Entpricht:

<input title=”...

field.cssClass

Die CSS-Klasse des Suchfeldes . Entspricht:

<input type=”text” class=”...

field.cssStyle

Spezielle CSS-Angaben des Suchfeldes. Entspricht:

<input type=”text” style=”...

field.value

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

Beschriftung des Submit-Button

button.cssClass

Die CSS-Klasse des Buttons . Entspricht:

<input type=”submit” class=”...

button.cssStyle

Spezielle CSS-Angaben des Buttons. Entspricht:

<input type=”submit” style=”...

wrap

-> stdWrap.wrap

plugin.tx_searchit_resOverview

Parameter

Description

config

siehe Abschnit “config” am Ende der Refer

resultPID

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

Anzeige der Überschrift ja/nein. Mögliche Werte:

1 oder 0

headline.caption

Der Überschriftstext

headline.wrap

-> stdWrap.wrap

sections.format

Reihenfolge und Art der Elemente in der Liste der Sections. Mögliche Werte:

name, count

sections.NO.wrap

Wrap um eine nicht aktive Section:

-> stdWrap.wrap

sections.ACT

Darstellung aktiver Zustand einer Section. Mögliche Werte:

1 oder 0

sections.ACT.doNotLink

Aktive Section verlinken oder nicht. Mögliche Werte:

1 oder 0

sections.ACT.wrap

Wrap um die aktive Section.

-> stdWrap.wrap

sections.name.wrap

Wrap um den Section-Namen.

-> stdWrap.wrap

sections.count.wrap

Wrap um die Anzahl der gefundenen Treffer in einer Section.

-> stdWrap.wrap

sections.wrap

Wrap um die gesamte Übersicht aller Sections, ohne Überschrift.

-> stdWrap.wrap

noResults.caption

Ausgabetext, wenn keine Ergebnisse gefunden wurden.

plugin.tx_searchit_resList

Parameter

Description

config

siehe Abschnit “config” am Ende der Reference

resultPID

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

Anzeige der Überschrift ja/nein. Mögliche Werte:

1 oder 0

headline.caption

Der Überschriftstext

headline.wrap

-> stdWrap.wrap

outString

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###

config

Parameter

Description

sections

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.2sections.3
...
sections.n

defaultSection

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

Der Name der Section. Dieser wird in der Übersicht der Sections ausgegeben. Der Titel muss angegeben werden!

sections.x.table

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

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

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.fieldodersections.x.header

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.header.caption

Anstatt dem Inhalt eines Datenbankfeldes kann auch ein statischer Text als Überschrift zu den gefundenen Ergebnissen der jeweiligen Section ausgegeben werden.Ist “sections.x.header.caption” wird der Wert aus “sections.x.header.field” ignoriert.

sections.x.select

Ü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

Ü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

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

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

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

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

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 = &nbsp;(|)
  }
 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/>
}