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 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.
## 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.



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 dazu 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.