Inhalte abhängig von der Suchindexierung ausgeben

In der Präsenz nicht verlinkte Dateien können Sie speziell für die Weblication® CMS Volltextsuche einbinden, um diese im Suchindex mit aufzunehmen. Ebenso können Sie bei Aufruf des SearchBot die Ausgabe verändern.

Sollen Dateien von der Weblication® CMS Volltextsuche erfasst werden, die in der Präsenz nicht direkt verlinkt sind, können Sie diese Dateien speziell für die Volltextsuche sichtbar machen.

Fragen Sie über die PHP-Framework Funktion wRequest::isSearchBot auf die Weblication® CMS Volltextsuche ab und geben Sie nur für diese einen Link aus. Dieser Link kann z.B. eine Listendatei sein, die diverse PDF-Dateien einliest oder andere Texte und Bilder beinhaltet.
Diese Möglichkeiten werden in Beispiel 1 und Beispiel 2 erläutert.

Ebenso ist es möglich, bei Seitenaufruf durch die Weblication® Volltextsuche z.B. ein anderes Ausgabetemplate zu verwenden (siehe Beispiel 3).

Beispiel 1: Umsetzung über eine Inhaltsseite

In aktuellen CMS-Versionen und BASE Projekten können Sie zur Umsetzung auf Strukturelemente / Weblics® zurückgreifen und das Vorhaben somit komfortabel über Masken realisieren.

Fügen Sie in einer für die Volltextsuche erreichbaren Seite (z.B. Startseite) das Weblic® / Strukturelement "Bedingter Inhaltscontainer für PHP" ein. In der Quelltext-Box des Elementes setzen Sie eine Abfrage auf den User-Agent der Weblication® Volltextsuche, wofür Sie die Framework-Funktion wRequest::isSearchBot einsetzen können:

Inhalt des Strukturelementes "Bedingter Container für PHP"

if(wRequest::isSearchBot()){
wEnv::setGlobalValue('wSearchBot', 1);
}
Bedingter Container PHP - Inhalte für SearchBot
Bedingter Container PHP - Inhalte für SearchBot

Unterhalb des Quelltextes (siehe oben) stellen Sie bei "Nur sichtbar, wenn die globale PHP-Variable" die Auswahlboxen wie folgt ein:

wSearchBot  == 1

Ist die Bedingung erfüllt (grüner Kasten) wird die darin gesetzte Liste von Dateien ausgegeben - also nur für die Weblication® Volltextsuche.
Dieses Vorgehen kann z.B. auch für Listen-Einträge verwendet werden, welche nur per Ajax im Browser nachgeladen werden (z.B. per Scrollen) und daher nicht direkt von der Weblication® Volltextsuche erfasst werden können. Eine Alternative hierzu ist, die Start-URL der Volltextsuche auf die Google Sitemap Datei (z.B. /de/google-sitemap.php) zu setzen, da diese meist alle zu erfassenden Datei- und Verzeichnispfade beinhaltet.

Beispiel 2: Umsetzung über HTML Seiten-Template

Beispiel: Auszug aus dem Ansichtstemplate standard.wDocument.php

...
<!-- innerhalb des body setzen, um Link für Weblication® SearchBot sichtbar zu machen -->
<wsl:php execution="post">
  <![CDATA[
  if(wRequest::isSearchBot()){
    print '<a href="/[PROJEKT]/pdfliste.php" title="PDF-Liste">PDF-Liste</a>';
  }
  ]]>
</wsl:php>
...
Bei Nutzung des Weblication® Seitencache verwenden Sie im wsl:php Tag wie im Beispiel ersichtlich das Attribut execution="post", damit dieser Bereich dynamisch bleibt.

Beispiel 3: Ausgabe für SearchBot über pre.php verändern

Beim Einsatz bestimmter Objekt-Templates oder Ausgabetemplates innerhalb der Präsenz kann für die Suche ein anderes Ausgabetemplate festgelegt werden.
z.B. können Sie so bei Weiterleitungsseiten (redirect) dafür sorgen, daß die Volltextsuche die Seite nicht weitergeleitet bekommt, sondern über das Standard-Template indexieren kann. Das vermeidet die Indexierung der externen Seite.

Tragen Sie hierzu in der pre.php des globalen Projektes im Bereich der pre-Variablen folgende weitere Abfrage ein (auf Ihr Vorhaben und Pfade angepasst).

Beispiel: Auszug aus der pre.php

// Ansichts-Template beim Besuch des SearchBot für Dateipfade ändern, welche im Pfad /redirect/ beinhalten
// mit dem ersten Parameter true zum isSearchBot-Aufruf werden nur Anfragen vom aktuellen Server erlaubt
if(wRequest::isSearchBot(true) && preg_match("/\/redirects\//", wPageCur::getPath())){
$preVars['viewTemplate'] = '/[IHR-GLOBALES-Projekt]/wGlobal/layout/templates/standard.wDocument.php';
}