Tipps & Tricks - Individuelle Anzeige von Suchergebnissen
Dieser Beitrag zeigt, wie für die Anzeige von Suchergebnissen individuelle VM-Dateien
eingebunden werden können. Zusätzlich zur individuellen Darstellung und Reihenfolge der Daten
wird dabei auch der gefunde Begriff markiert. Die Beispiel-Applikation können Sie
hier herunterladen und wie gewohnt
in Ihr Portal
importieren. Setzen Sie beim Import die Einstellung
Mit Applikationsdaten importieren.
VM-Datei erstellen
Kopieren Sie die Datei "application.vmi" im
Portalverzeichnis internal/system/vm/common/search/result.
Legen Sie im gleichen Verzeichnis einen neuen Ordner mit dem Namen "custom" an und legen Sie die kopierte Datei dort unter dem
Namen "meine-application.vmi" ab. In der Beispieldatei werden folgende Datenfelder im Suchergebnis verwendet:
- Titel
- Beschreibung
- Änderungsdatum
- Veröffentlichungsdatum
- Herkunft
Als Herkunft soll nicht der Applikationsname, sondern die Bezeichnung "Meine eigene Suche" angezeigt werden.
VM-Datei anpassen
Öffnen Sie die Datei "meine-application.vmi" in einem Texteditor. Für das Änderungsdatum soll der Wert des
entsprechenden Datenfeldes in der Applikation angezeigt werden.
Die Zeilen 152 bis 155 können auskommentiert oder gelöscht werden, da das Änderungsdatum später in einem
eigenen Block definiert wird.
Die Zeilen 157 bis 164 werden mit dem folgenden Code ersetzt.
## Individuelle Anpassung
<dt class="source">$I18N.get("SEARCH2_COLUMN_SOURCE"): Meine eigene Suche</dt>
##Guid der aktuellen Datengruppe
#set ($dgguid = $recordInfo.getDGGuid())
##ID des aktuellen Datensatzes
#set ($myrecid = $recordInfo.getRecId())
##IF GUID der aktuellen Datengruppe == GUID der Datengruppe dieser Suchkonfiguration
#if($dgguid == "054713578DA3050A194EC5B23E7981CAC7C63483")
##SELCET Abfrage mit den gewünschten Datenfeldern
#set($statement = $PreparedQuery.prepare($DbConnection, "SELECT STR_TITEL_6A585D30, TXT_BESCHREIBUNG, DT_VEROEFFENTLICHUNGSDATUM, DT_AENDERUNGSDATUM FROM XDATAGROUP00D1A218 WHERE LID = ?"))
$statement.setInt(1, $myrecid)
#set($rs = $statement.executeQuery())
#foreach($element in $rs)
##TITEL
#set($title = $!element.getStringValue(1))
##BESCHREIBUNG
#set($text = $!element.getStringValue(2))
##VERÖFFENTLICHUNGSDATUM
#set($dtpublish = $!element.getTimestampValue(3))
##ÄNDERUNGSDATUM
#set($dtchanged = $!element.getTimestampValue(4))
#set($pubDay = $DtUtil.wrap($dtpublish))
#set($chgDay = $DtUtil.wrap($dtchanged))
##Atkuelle Zeitzone
#set($timeZone = $User.getTimeZone())
<dt>Veröffentlicht am $normalRenderer.renderDateTime($pubDay) Zuletzt geändert am $normalRenderer.renderDateTime($chgDay) </dt>
#end
$rs.close()
$statement.close()
#end
## Ende Individuelle Anpassung
Speichern Sie die Änderungen und schließen Sie die Datei.
Die modifizierte VM-Datei ist in der Beispiel-Applikation bereits im
Eigenschaftendialog der Suchenkonfiguration
eingebunden.
Suchtreffer im Layout-Designer anpassen
Im
Modul Design wird nun noch das
Format des Suchbegriffs geändert.
Öffnen
Sie das aktuelle Portal-Layout.
Suchen Sie im
Bereich Suche nach ".multisource-search .multisource-records > .record strong".
Mit Doppelklick auf das Suchergebnis werden die
Element-Einstellungen
geladen. Im
CSS kann nun der gelbe Hintergrund eingetragen werden.
.multisource-search .multisource-records > .record strong
{
font-weight: bolder;
background-color: yellow;
}
Speichern Sie das Layout und öffnen Sie die Applikation im Browser.
Ergebnis im Browser
Suchen Sie hier nach "Titel". Die Suchergebnisse werden entsprechend der durchgeführten
Änderungen angezeigt.