TYPO3 - ke search

Aus Wikizone
Wechseln zu: Navigation, Suche

Suchbox auf jeder Seite[Bearbeiten]

Quelle: https://www.typo3-macher.de/facettierte-suche-ke-search/dokumentation/suchbox-auf-jeder-seite/ (6/2019)

Per TypoScript kann die Suchbox so eingebunden werden, dass sie auf jeder Seite erscheint. Dies ist derzeit nur für eine Suchbox ohne Filter möglich.

Falls Sie in der Suchbox auf jeder Seite auch Filter darstellen möchten, erstellen Sie am besten ein normales Plugin im Backend und binden dieses dann per TypoScript auf jeder Seite ein.

Es gibt zwei Varianten der Einbindung, zum einen kann das Plugin der Suche direkt per TypoScript eingebunden werden, zum anderen kann die Einbindung per reinem HTML erfolgen.

Achtung: Wenn das Plugin als COA_INT eingebunden wird, so ist kein statischer Cache der Seite mehr möglich. In diesem Fall ist die HTML-Variante vorzuziehen.

Die Suchbox wird per TypoScript wie folgt eingefügt.

Suchbox als Plugin einbinden

Typoscript

########################################
# Searchbox Plugin
########################################
lib.searchbox_plugin = COA_INT
lib.searchbox_plugin {
  10 < plugin.tx_kesearch_pi1
 
  # result page 
  10.resultPage = 123
 
  # CSS file
  10.cssFile = EXT:ke_search/res/ke_search_pi1.css
 
  # Content element (search box plugin) from which additional
  # configuration should be loaded (UID of content element).
  # Important: If you have two search boxes on your result page
  # (eg. in the top and in the left area), you should set this value!
  # 10.loadFlexformsFromOtherCE = 123456
}

Die Zahl 123 dient als Platzhalter für die ID der Seite, auf der sich das Plugin mit der Ergebnisliste befindet.

Suchbox per HTML einbinden

Typoscript

########################################
# searchbox pure HTML
########################################
lib.searchbox_html = TEXT
lib.searchbox_html.value (
<form method="get" id="form_kesearch_searchfield" name="form_kesearch_searchfield">
  <input type="hidden" name="id" value="123" />
  <input type="text" id="ke_search_searchfield_sword" name="tx_kesearch_pi1[sword]" placeholder="Your search phrase" />
  <input type="submit" id="ke_search_searchfield_submit" alt="Find" />
</form>
)

Beispiel[Bearbeiten]

### ke_search box ###
# HINWEIS Suchbox auf der Zielseite muss vorhanden sein kann aber in nicht angezeigtem Bereich liegen
# aus dieser Suchbox werdend dann die notwendigen Einstellungen für das Suchergebnis gezogen. 
# Oder auslagern und wie im TypoScript die id des CE angeben
page.10.settings.ke_search = TEXT
page.10.settings.ke_search.value = 1
# TS VERSION
lib.ke_search = COA_INT
lib.ke_search{
  10 < plugin.tx_kesearch_pi1
  10.resultPage = 285 
  10.renderMethod = static # only static possible instead of ajax method 
  #10.cssFile = EXT:ke_search/res/ke_search_pi1.css
  # Content element (search box plugin) from which additional
  # configuration should be loaded (UID of content element).
  # Important: If you have two search boxes on your result page
  # (eg. in the top and in the left area), you should set this value!
  # 10.loadFlexformsFromOtherCE = 123456
}
# HTML VERSION
lib.ke_search_html = TEXT
lib.ke_search_html.value (
<form method="get" id="form_kesearch_searchfield" name="form_kesearch_searchfield" class="form-inline">
  <input type="hidden" name="id" value="285" />
  <input type="text" id="ke_search_searchfield_sword" name="tx_kesearch_pi1[sword]" placeholder="" aria-label="search" class="form-control form-control-sm"/>
  <button type="submit" id="ke_search_searchfield_submit" alt="Find">
  	<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="mx-3"><circle cx="10.5" cy="10.5" r="7.5"></circle><line x1="21" y1="21" x2="15.8" y2="15.8"></line></svg>
  </button>
</form>
)

Fluid

<f:cObject typoscriptObjectPath="lib.ke_search_html"></f:cObject>