Indexed Search

die TYPO3 eigene Suche verwenden

In dieser Rubrik erkläre ich nach und nach die Einrichtung der aus meiner Sicht wichtigsten TER Extensions. Die Snippets sind geprüft und zig fach im Praxiseinsatz. Den Anfang macht die TYPO3 eigene Suche indexed search. Bei Fragen oder Verbesserungsvorschlägen nutzt einfach die Kommentarfunktion.

Vorbereitung

Als erstes aktiveren wir die Extension indexed_search im Extensionmanager und legen innerhalb unseres Seitenbaums eine neue Seite für die Ausgabe der Suchergebnisse an. Der Seite weisen wir die Eigenschaft "Nicht im Menü zeigen" zu und fügen das Plugin "indexed_search" ein.

TypoScript

Für die Konfiguration der indexed_search benötigen wir folgende ZeilenTyposcript im Root Template:

Setup

# Indexed Search Konfiguration 
## Suche aktivieren
   page.config.index_enable = 1
## Eigenes Template zuweisen
   plugin.tx_indexedsearch.templateFile = fileadmin/indexed_search.tmpl

Konstanten

## PID der Ergebnisseite
   plugin.tx_indexedsearch.searchUID = 999
## Teilwortsuche deaktivieren
   plugin.tx_indexedsearch._DEFAULT_PI_VARS.type = 0
## Anzahl Ergebnisse je Seite
   plugin.tx_indexedsearch._DEFAULT_PI_VARS.results = 15

Den Suchbereich festlegen

Indexed search indiziert nun bei jedem Seitenaufruf im Frontend den Inhalt der kompletten Seite. Das hat zur Folge, das die Suche für Begriffe die in unserem Menü oder Footer vorkommen, alle Seiten später als Ergebnisse anzeigt werden.

Um die Indizierung auf den eigentlichen Content zu beschränken müssen wir im Seitentemplate die Contentaussgabe mit den Kommentaren <!--TYPO3SEARCH_begin--> ... Content ...<!--TYPO3SEARCH_end--> umschließen.

Beispiel:

<header>
    ... header Content mit Menu etc
      wird nicht indiziert
</header>

<div class="content">
    <!--TYPO3SEARCH_begin-->

        ###CONTENT_LEFT### oder
        <f:cObject typoscriptObjectPath="lib.content" />

        ... weitere Content Marker oder Libs

    <!--TYPO3SEARCH_end-->
</div>

<footer>
    ... footer Content, wird nicht indiziert
</footer

Ein Suchfeld im Seitenheader

Als nächstes integrieren wir ein Suchfeld auf unsere Seite. Dazu kann man externe Extensions nutzen (Macinasearchbox), muss aber nicht.

Entweder man fügt direkt ein Formelement per html in das Template ein, oder man nutzt eine TypoScript lib die man einem Marker zuweist oder direkt per cObject ViewHelper im Fluidtemplate rendert.

In der html Variante muss in der form action der Seitenlink zu den Suchergebnissen  und der Pfad zum Suchicon angepasst werden.

Für das TypoScript Snippet gilt das gleiche. Die lib kann nachher mit

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

im Template ausgegeben werden.

Die html Variante:


Alternativ die Typoscript Variante und dann die Lib ins Template einbinden:


Mit ein wenig CSS solltet Ihr ungefähr eine Ausgabe der Suchbox wie auf dieser Seite haben:

/* search form */
.search_form {
    background: none repeat scroll 0 0 #FAFAFA;
    border: 1px solid #000000;
    float: right;
    height: 28px;
    margin: -15px 0 5px;
    padding: 0;
    position: relative;
    right: 5px;
    width: 244px;
    top: 72px;   
}

input.searchbox-sword {
    -moz-border-bottom-colors: none;
    -moz-border-image: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    border-color: #FFFFFF -moz-use-text-color -moz-use-text-color;
    border-right: medium none;
    border-style: solid none none;
    border-width: 1px medium medium;
    color: #6D5D52;
    font-size: 12px;
    height: 18px;
    padding: 4px 10px;
    width: 188px;
}

input.searchbox-button {
    border: medium none;
    color: #FFFFFF;
    cursor: pointer;
    display: block;
    height: 29px;
    letter-spacing: -5px;
    margin: 0;
    padding: 0;
    position: absolute;
    right: -1px;
    text-indent: -9999px;
    top: -1px;
    width: 29px;
}

Das Template für die Ergebnisausgabe

Wir kopieren das original Template aus dem Verzeichnis typo3/sysext/indexed_search/pi/ndexed_search.tmp in das angegebenen Verzeichnis unter Setup (siehe erster Abschnitt).

Das kopierte Template können wir nun an unsere Anforderungen anpassen und alle nicht benötigten Blöcke löschen.

 

 

 

 

Weitere Artikel zu diesem Thema:

Kommentare

keine Kommentare vorhanden


Kommentar verfassen

Die Email Adresse wird nicht veröffentlicht.