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: 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 149 bis 152 können auskommentiert oder gelöscht werden, da das Änderungsdatum später in einem eigenen Block definiert wird.



Die Zeilen 154 bis 161 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.