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 199 bis 202 können auskommentiert werden, da das Änderungsdatum später in einem eigenen Block definiert wird.

Die Zeilen 204 bis 211 werden mit dem folgenden Code ersetzt.

## Individual modification
<dt class="source">$I18N.get("SEARCH2_COLUMN_SOURCE"): My Search</dt>	##Guid of current data group
	#set ($dgguid = $recordInfo.getDGGuid())
	##ID of current data record
	#set ($myrecid = $recordInfo.getRecId())
			
	##IF GUID of current data group == GUID of data group of search configuration
	#if($dgguid == "054713578DA3050A194EC5B23E7981CAC7C63483") 
	##SELCET query for the desired data fields
	#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)
		##TITLE
		#set($title = $!element.getStringValue(1))
		##DESCRIPTION
		#set($text = $!element.getStringValue(2))
		##PUBLICATION DATE
		#set($dtpublish = $!element.getTimestampValue(3))
		##EDIT DATE
		#set($dtchanged = $!element.getTimestampValue(4))
		#set($pubDay = $DtUtil.wrap($dtpublish))
		#set($chgDay = $DtUtil.wrap($dtchanged))
		##Current timezone
		#set($timeZone = $User.getTimeZone())
		<dt>Published on $normalRenderer.renderDateTime($pubDay)    Last edited on $normalRenderer.renderDateTime($chgDay) </dt>		#end
		$rs.close()
		$statement.close()
		#end
## End individual modification

Speichern Sie die Änderungen und schließen Sie die Datei.

Die modifizierte VM-Datei ist in der Beispiel-Applikation bereits im Eigenschaftendialog der Suchkonfiguration eingebunden.

In der Abbildung oben sehen Sie die Abfolge der Dialoge, mit deren Hilfe eigene VM-Dateien über den Eigenschaftendialog der Suchen-Schaltfläche eingebunden werden können. Auf dem Reiter "Aktionen" kann die Suchkonfiguration mit einem Klick auf "Bearbeiten" bearbeitet werden. Wählen Sie im folgenden Dialog die gewünschte Suchkonfiguration aus und klicken Sie dann auf "Suchkonfiguration bearbeiten". In den Eigenschaften der Suchkonfiguration kann auf dem Reiter "Anzeige" die Anzeige der Dateitreffer mit einer individuellen VM gesteuert werden.

Weitere Informationen zur Konfiguration finden Sie hier.

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.