Wie zu Verbessern TYPO3 Suche mit Indexierte Suche Integration

Die indexierte Suche von TYPO3 ist eine leistungsstarke integrierte Funktion, die es den Nutzern leicht macht, relevante Inhalte auf Ihrer Website zu finden. Mit nur wenigen Zeilen TypoScript können Sie das Sucherlebnis anpassen und erweitern, von der Gestaltung des Formulars bis zur Bereitstellung optimierter Ergebnisse. In diesem Beitrag werden wir eine Beispielkonfiguration von TypoScript untersuchen, Best Practices für die Anpassung von Indexed Search erörtern und wertvolle Tipps für die Integration geben, um sicherzustellen, dass Ihre TYPO3-basierte Website ein effektives Sucherlebnis bietet.

1. Übersicht über das Beispiel TypoScript

Hier ist das TypoScript-Snippet, das Sie uns zur Verfügung gestellt haben:

lib.searchBox = USER
lib.searchBox {
   userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
   extensionName = IndexedSearch
   pluginName = Pi2
   vendorName = TYPO3\CMS
   switchableControllerActions {
       Search {
           1 = form
           2 = search
       }
   }
   features {
       requireCHashArgumentForActionArguments = 0
   }
   view =< plugin.tx_indexedsearch.view
   view {
       partialRootPaths.10 = EXT:site_package/Resources/Private/IndexedSearch/Partials/
       templateRootPaths.10 = EXT:site_package/Resources/Private/IndexedSearch/Templates/
   }
   settings =< plugin.tx_indexedsearch.settings
   settings {
       isSearchBox = TEXT
       isSearchBox.value = 1
       layout = 1
       targetPid = 62
   }
}

Auf den ersten Blick setzt diese Konfiguration die Standardeinstellungen des TYPO3 Plugins Indexed Search außer Kraft, um ein eigenes Suchfeld zu erstellen. Hier ist ein kurzer Überblick über jeden Abschnitt:

  • USER: Der Objekttyp, der über Extbase verarbeitet wird.
  • ExtensionName / PluginName: Geben Sie an, dass Sie die IndexedSearch Extension, Plugin Pi2, verwenden.
  • schaltbareControllerAktionen: Definiert die Aktionen des Search Controllers (Rendering des Formulars und anschließende Durchführung der Suche).
  • Eigenschaften: Deaktiviert die Anforderung für cHash-Argumente für diese Aktionen (nicht immer empfohlen, siehe unten für Best Practices).
  • Ansicht: Übernimmt die Standardkonfiguration der Ansicht "Indizierte Suche", überschreibt aber die Pfade der Teil und Templates stammdaten mit Ihrem eigenen Ordner.
  • Einstellungen: Übernimmt die allgemeinen Einstellungen, setzt aber isSearchBox auf 1 (was dem Plugin mitteilt, dass es sich um ein Suchfeld handelt), wählt ein Layout und verweist die Suchergebnisse auf targetPid = 62.

2. Best Practices bei der Anpassung indizierten Suche

  1. Halten Sie Ihr TypoScript organisiertSpeichern
    Sie Ihr TypoScript in einer eigenen Datei (z.B. setup.typoscript). Auf diese Weise bleibt Ihre Konfiguration modular, was die Wartung und Fehlersuche erleichtert, wenn Ihre Website wächst.
  2. Verwenden Sie Überschreibungen mit NamensabstandWenn
    Sie templates, Teilbereiche oder Layouts überschreiben, folgen Sie einer klaren, gut strukturierten Konvention für den Namensabstand. So können Sie Ihre Anpassungen schnell identifizieren und Konflikte mit dem Kerncode oder dem Code von Drittanbietern vermeiden.
  3. Vermeiden Sie die Deaktivierung von cHash Argumenten
    Währenddie Einstellung requireCHashArgumentForActionArguments = 0 bestimmte Aspekte vereinfachen kann, sollten Sie daran denken, dass cHash dazu da ist, eine ordnungsgemäße Zwischenspeicherung zu gewährleisten und unbeabsichtigte URL-Manipulationen zu verhindern. Prüfen Sie, ob Sie cHash wirklich deaktivieren müssen oder ob Sie Ihr Szenario mit den Standard-TYPO3-Caching-Mechanismen bewältigen können.
  4. Testen Sie in mehreren UmgebungenDa 
    Die indexierte Suche auf die Indizierung der Seiten durch das System angewiesen ist, können sich Konfigurationen in Staging- und Produktionsumgebungen unterschiedlich verhalten. Stellen Sie sicher, dass Sie die Ergebnisse in einer produktionsnahen Umgebung vollständig testen, um Überraschungen in letzter Minute zu vermeiden.
  5. Cache und Leistung
    • Index-Wartung: Bereinigen Sie Ihre Website regelmäßig und indizieren Sie sie neu, insbesondere nach umfangreichen Inhaltsaktualisierungen oder Änderungen an der Website-Struktur.
    • Schließen Sie irrelevante Seiten aus: Verwenden Sie Page TSconfig oder TypoScript, um bestimmte Seiten (z. B. Datenschutzrichtlinien oder Geschäftsbedingungen) von der Indizierung auszuschließen, wenn diese Inhalte nicht durchsucht werden müssen.

3. Hinzufügen Suchfeldern zu Fluid Templates

Nachdem Sie die obige TypoScript Konfiguration eingebaut haben, können Sie das Suchfeld direkt in Ihre Fluid Templates einbetten. Wenn Sie zum Beispiel eine Fluid Templates für das Hauptlayout Ihrer Website haben, können Sie hinzufügen:

<f:section name="searchBox">
    <f:cObject typoscriptObjectPath="lib.searchBox" />
</f:section>

Dann könnten Sie das in Ihrem Layout tun:

<!DOCTYPE html>
<html>
<head>
    <title><f:render section="title" /></title>
</head>
<body>
    <!-- Header -->
    <f:render partial="Header" />
    
    <!-- Search Box -->
    <f:render section="searchBox" />
    
    <!-- Main Content -->
    <f:render section="main" />
</body>
</html>

Mit diesem Ansatz bleibt das Suchfeld wiederverwendbar und zentralisiert, während gleichzeitig eine saubere Codestruktur erhalten bleibt.

4. Styling und Template anpassungen

Der Text:

partialRootPaths.10 = EXT:site_package/Resources/Private/IndexedSearch/Partials/
templateRootPaths.10 = EXT:site_package/Resources/Private/IndexedSearch/Templates/

... stellen Sie sicher, dass Sie die Standard templates für die indizierte Suche überschreiben können. Es ist eine gute Praxis, die Original templates von Indexed Search zu klonen oder zu referenzieren und sie dann an Ihr Design anzupassen. Auf diese Weise haben Sie die volle Kontrolle über das Front-End-Markup und den Stil, während Aktualisierungen von der Kern-extension getrennt bleiben.

5. Zusätzliche Überlegungen

  • Mehrsprachige Sites: Stellen Sie sicher, dass Sie die Sprach-Overlays richtig konfiguriert haben. Die indizierte Suche kann mehrere Sprachen indizieren. Stellen Sie daher sicher, dass Ihre L10N- (Lokalisierung) und sys_language_uid-Einstellungen mit Ihrem TypoScript übereinstimmen.
  • Zugänglichkeit: Stellen Sie beschreibende Bezeichnungen und ARIA-Attribute bereit. Ein gut beschriftetes Suchformular ist für die Tastaturnavigation und für Screenreader von Vorteil.
  • Breadcrumbs und Suchergebnisse: Sie können die template für die Suchergebnisse so anpassen, dass sie Breadcrumbs oder andere Metadaten enthält, die den Benutzern helfen, relevante Inhalte schnell zu finden.

Schlussfolgerung

Mit dem obigen TypoScript-Snippet haben Sie bereits ein flexibles, Extbase-basiertes Suchfeld, das die Möglichkeiten der indexierten Suche von TYPO3 nutzt. Wenn Sie die Best Practices für Wartung, Caching, Partials und Template-Overrides befolgen, können Sie eine reichhaltige und effiziente Sucherfahrung bieten.

Wenn Sie weitere Fragen haben oder sich mit fortgeschrittenen Themen wie der Anpassung der Paginierung, erweiterten Suchfiltern oder zusätzlichen Indizierungsstrategien beschäftigen möchten, können Sie gerne weitere Optionen innerhalb der indexierten Suche erkunden und Ihre Erkenntnisse mit der TYPO3 Community teilen. Experimentieren und eine solide Testroutine sind der Schlüssel dazu, dass Ihre Suchfunktion funktional, schnell und benutzerfreundlich bleibt.

Viel Spaß beim TYPO3 Programmieren! Wenn Sie über die Grundlagen hinausgehen möchten, können Sie sich mit erweiterten Suchfiltern, Suchvorschlägen oder sogar der Anbindung externer Datenquellen an die Indexed Search von TYPO3 beschäftigen. Die Möglichkeiten sind endlos!

Post a Comment

×

    Got answer to the question you were looking for?