Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
+49 (0) 351/850 33-0

SharePoint-Suche: Integration von File Shares aufgepeppt (Teil 4 – Display Templates)

Meine kleine Beitragsserie zum Thema SharePoint-Suche: Integration von File Shares aufgepeppt widmet sich der Steigerung des Nutzungserlebnisses durch geschickte Präsentation der Suchergebnisse sowie konkreten Umsetzungsvorschlägen, bezogen auf die Suche in File Shares.

In den bisherigen drei Beiträgen haben wir uns mit folgenden Techniken auseinandergesetzt:

  • Vertikale Einschränkung unter Verwendung einer Ergebnisquelle (Result Source)
  • Horizontale Einschränkungen mittels  Facettennavigation (Refiner)

Der letzte Blogeintrag befasst sich, wiederum am konkreten Anwendungsfall „Integration von File Shares in die SharePoint-Suche“, mit der Erstellung und Verwendung von Display Templates für die Ergebnisanzeige.

Ausgangssituation

Am Ende des dritten Beitrages hatten wir folgende Situation:

  • In die SharePoint-Suche integriert ist eine Netzwerkfreigabe “Fileshare for Search” mit vier Ordnern auf oberster Ebene, in denen sich jeweils mehrere Dateien unterschiedlicher Dateitypen (PDF, Visio, Word, …), teils in Unterordnern, befinden.
    Fileshare
  • Es wurde eine vertikale Einschränkung mittels Ergebnisquelle konfiguriert: Im Such-Center wird auf der Ergebnisseite ein Reiter “Fileshare” angezeigt, durch Klick auf diesen Reiter werden die Suchergebnisse auf das File Share eingeschränkt.
  • Im Reiter „Alle Ergebnisse (Everything)“ gibt es nun einen Refiner nach Herkunft (Inhaltsquelle), damit können die Suchergebnisse auch horizontal eingeschränkt werden nach Treffern aus dem File Share oder aus SharePoint.
  • Für den Reiter „Fileshare“ wurden zwei zusätzliche Refiner nach Typ (Datei oder Ordner) sowie nach Kategorie (Hauptordner) erstellt. Hierdurch ist eine Filterung der FileShare-Suchergebnisse nach Dateien oder Ordnern bzw. nach den einzelnen Kategorien möglich.

Herausforderung

Auch wenn das Sucherlebnis durch die vorangegangenen Maßnahmen schon deutlich verbessert wurde, gibt es doch noch ein paar Phänomene bzgl. der Ergebnisanzeige, die unvorteilhaft ins Auge fallen:

SharePoint-Suche (File Share): Herausforderungen

  • Der Titel der Dokumente ist oftmals leer. Hier wäre ein akzeptabler Workaround, wenn in diesem Fall der Dateiname angezeigt würde.
  • Der vollständige Pfad zum Speicherort ist nicht sichtbar, da dieser automatisch eingekürzt wird. Das ist prinzipiell ok, aber insbesondere wird dadurch in der Regel der Hauptordner (Kategorie) nicht angezeigt.
  • Zum Schluss noch ein Wunsch: Es wäre schön, wenn analog zum Windows Explorer die Dateigröße im Tooltipp angezeigt würde.

Lösungsansatz

Die Antwort auf alle oben aufgeführten Anforderungen sind Ergebnistypen (Result Types) und benutzerdefinierte Anzeigevorlagen (Display Templates) für die Ergebnisanzeige (bzw. beim 3. Punkt für das Hover Panel der Ergebnisanzeige).

Umsetzung

Dateiname (Titel) und Hauptordner (Kategorie) anzeigen

Eine gut verständliche TechNet-Anleitung dazu finden wir unter Anpassen von Suchergebnistypen in SharePoint 2013. Folgende Schritte sind durchzuführen:

  1. Erstellung eines benutzerdefinierten Display Templates
  2. Erstellen eines Ergebnistypes (Result Types), der das benutzerdefinierte Display Template verwendet

Erstellung eines benutzerdefinierten Display Templates

Die Display Templates für die Ergebnisanzeige finden wir unter > Site Settings > Master Page Gallery > Display Templates > Search, das Standard-Template ist “Item_Default.html”. Zu jeder HTML-Datei gibt es eine passende Javascript-Datei. Diese wird automatisch erstellt, wenn eine neue HTML-Datei hochgeladen wird.

Da wir nicht das originale Standard-Template anpassen wollen, laden wir zuerst eine Kopie herunter:

SharePoint-Suche: Display Template herunterladen

Die Kopie habe ich “Item_Default_Fileshare.html” benannt. Diese können wir nun z.B. in einem Text-Editor bearbeiten. Es gibt folgende Stellen, die anzupassen sind:

  1. Titel des Display Templates: ich habe “Default Item Fileshare” verwendet
  2. analog die Id des Display Templates
  3. Logik für das Ermitteln von Hauptordner (Kategorie) und Dateiname:
    var folders = ctx.CurrentItem.Path.split("/");
    var mainFolder = decodeURI((folders.length > 5 ? folders[4] : "n/a"));
    var fileName = folders[folders.length-1];
  4. Titel mit dem Dateinamen aktualisieren (um die Ausgabe müssen wir uns nicht kümmern, da der Titel bereits standardmäßig ausgegeben wird):
    ctx.CurrentItem.Title = fileName;
  5. Kategorie ausgeben:
    Kategorie: _#=mainFolder=#_

SharePoint-Suche: Display Template bearbeiten (1) SharePoint-Suche: Display Template bearbeiten (2)

Achtung, Stolperfalle! Wenn wir das Display Template anpassen wie oben beschrieben, werden wir später beim Begutachten des Resultats feststellen, dass danach unsere Ergebnisanzeige zwar die gewünschten Anpassungen enthält, aber dafür keinerlei Icons mehr (außer für Ordner). Das liegt daran, dass die Icons nicht im (von uns kopierten) Default Item Template enthalten sind, sondern in den dedizierten Templates für die einzelnen Ergebnistypen. Wir müssen noch folgenden Code zu unserem Display Template hinzufügen, damit die Icons angezeigt werden:

if (!ctx.CurrentItem.IsContainer) {
ctx.CurrentItem.csr_Icon = Srch.U.getIconUrlByFileExtension(ctx.CurrentItem);
}

Analog zum bereits beschriebenen Vorgehen für Refiner Display Templates müssen wir das angepasste Display Template nun wieder in die Master Page Gallery hochladen sowie ggf. einchecken und veröffentlichen.

Erstellung eines Result Types

Die Verwaltung der Result Types finden wir in den Website-Einstellungen des Such-Centers. Beim Anlegen eines neuen Result Types müssen wir außer einer Bezeichnung die Elemente definieren, für die der Result Type angewendet werden soll (in unserem Fall jene aus der Quelle „Fileshare“) sowie das Display Template, welches der Result Type für die Darstellung verwenden soll:

SharePoint-Suche: Result Type erstellen

Fertig 🙂 . Das Resultat zeige ich noch gebündelt mit dem nächsten Schritt am Ende des Blogbeitrages.

Dateigröße im Hover Panel anzeigen

Für das Hover Panel gibt es ein separates Display Template, welches wir wiederum als Kopiervorlage nutzen, in diesem Fall “Item_Default_HoverPanel.html” – die Kopie habe ich umbenannt in “Item_Default_Fileshare_HoverPanel.html”.

Die anzupassenden Code-Stellen sind ähnlich wie beim im ersten Schritt angepassten Display Template, mit nachstehenden Besonderheiten:

  • Für die umzusetzende Anforderung benötigen wir eine Managed Property („Size“), die noch nicht im Display Template enthalten ist und die deshalb explizit hinzugefügt werden muss.
  • Wenn ein neues Display Template für ein Hover Panel erstellt wird, so muss im Display Template für den entsprechenden Result Type die Url zum Hover Template angepasst werden.

Folgende Anpassungen habe ich bei “Item_Default_Fileshare_HoverPanel.html” vorgenommen:

  1. Titel des Display Templates: ich habe “Default Fileshare Hover Panel” verwendet, analog die Id des Hover Panels
  2. Managed Property „Size“ zum Template hinzufügen
  3. Dateigröße ermitteln
  4. Dateigröße ausgeben

SharePoint-Suche: Display Template für Hover Panel bearbeiten (1)SharePoint-Suche: Display Template für Hover Panel bearbeiten (2)

Anpassung der Url des Hover Panels in “Item_Default_Fileshare.html”:

SharePoint-Suche: Display Template bearbeiten (Hover Panel)

Die beiden Display Templates müssen nun wieder in die Master Page Gallery hochgeladen sowie ggf. eincheckt und veröffentlicht werden.

Achtung, Stolperfalle! Wenn wir die Schritte wie oben beschrieben durchführen, werden wir feststellen, dass die Dateigröße entgegen unserer Erwartung nicht angezeigt wird. Das liegt daran, dass unser Result Type „Fileshare“ die neu zum Template gemappte Managed Property „Size“ noch nicht enthält. Um dies nachzuholen, müssen wir nur zur Verwaltung der Result Types wechseln und in der dort angezeigten Warnung auf „Update“ klicken, denn praktischerweise stellt SharePoint diese Diskrepanz von selbst fest und bietet uns deren Behebung an:

SharePoint-Suche: Update Result Types

Ergebnis

Abschließend können wir das Resultat unserer Anpassungen bewundern – alle eingangs definierten Anforderungen sind umgesetzt:

SharePoint-Suche: Ergebnisanzeige mit Display Templates

 

Fazit

Am Ende meiner kleinen Blogserie „SharePoint-Suche: Integration von File Shares aufgepeppt“ fasse ich die erzielten Verbesserungen nochmals kurz zusammen:

  • Die Ergebnisse aus dem SharePoint selbst und aus dem File Share werden im Suchergebnis im Reiter „Alle Ergebnisse (Everything)“ in bunter Mischung angezeigt. (Das ist allerdings nicht unser Verdienst, sondern SharePoint Standard 😉 )
  •  Wenn der Anwender schon weiß, dass eine Datei auf dem File Share liegt und er deshalb auch nur dort suchen möchte, kann er dies im zusätzlichen Reiter „Fileshare“ tun.
  • Zusätzlich ermöglicht im Reiter „Alle Ergebnisse (Everything)“ ein Refiner nach Herkunft (Inhaltsquelle), die Suchergebnisse auch horizontal einzuschränken nach Treffern aus dem File Share oder aus SharePoint.
  • Für den Reiter „Fileshare“ wurden zwei zusätzliche Refiner nach Typ (Datei oder Ordner) sowie nach Kategorie (Hauptordner) erstellt. Hierdurch ist eine Filterung der FileShare-Suchergebnisse nach Dateien oder Ordnern bzw. nach den einzelnen Kategorien möglich.
  • Pro Suchergebnis-Treffer für ein Fileshare-Dokument:
    • Für Dokumente, deren Titel nicht gepflegt ist, wird anstelle eines leeren Titels der Dateiname dargestellt.
    • Es wird zusätzlich der Hauptordner (Kategorie) angezeigt.
    • Im Tooltipp (Hover Panel) wird analog zum Windows Explorer die Dateigröße angezeigt.

Abschließend gibt es hier noch einmal alle Beiträge der Serie zusammengefasst:

Sie wollen gleich mit der Integration von File Shares anfangen?

>> Hier gelangen Sie zu den SharePoint-Lizenzen <<

Kommentar hinterlassen


Pin It on Pinterest