Früher als zunächst erwartet, hat Microsoft die RTM-Version von Office 2013 und allen zugehörigen Komponenten
- Visio 2013, Project 2013,
- SharePoint 2013,
- Lync 2013 und
- Exchange 2013
für TechNet- und MSDN-Abonnenten zum Download freigegeben.
Früher als zunächst erwartet, hat Microsoft die RTM-Version von Office 2013 und allen zugehörigen Komponenten
für TechNet- und MSDN-Abonnenten zum Download freigegeben.
Wie das Office-Team in seinem Blog berichtet hat die Office-Palette in der Version 2013 RTM-Status erreicht. Das bedeutet, dass in den nächsten Monaten die Auslieferung an alle Kunden anlaufen wird, generelle Verfügbarkeit wird zum 1. Quartal 2013 angestrebt.
Dieses Release umfasst dabei nicht nur die Client-Applikationen, sondern auch alle damit zusammenhängenden Serverkomponenten:
Alle, die ab dem 19. Oktober Office-Lizenzen erwerben erhalten kostenlose Upgrade-Gutscheine für Office 2013. Die Auslieferung aller Versionen beginnt Mitte November für die TechNet-, MSDN-Kunden und solche mit Software Assurance. Für Office 365-Kunden beginnt die Umstellung mit dem nächsten Service-Release ab Mitte November.
Oft werde ich gefragt, wie man die Navigation in SharePoint einfacher gestalten kann, oder ob es nicht möglich sei, eine ganze Liste aller verfügbaren Websites anzuzeigen, auf die ein Benutzer Zugriff hat.
Personen mit Entwickler-Kenntnissen würden nun u.U. direkt zu Visual Studio greifen und ein WebPart schreiben, schließlich gibt es doch im Objektmodell alles: Ich kann auf alle Webs zugreifen und dort über die Methode DoesUserHavePermission() die Berechtigung prüfen. Damit befülle ich dann einfach eine DropDown-List.
In diesem Beitrag möchte ich jedoch zeigen, dass es auch mit Standardmitteln in Verbindung mit der Suche ganz einfach ist. Und zudem funktioniert es, denn die obige Methode hat einen großen Nachteil: Sie funktioniert nur in sehr kleinen Umgebungen zuverlässig. Sobald Sie eine große Anzahl Site Collections habe (>30-40) werden Sie sehr schnell einen Performanceeinbruch bemerken, die Auflistung dauert dann gefühlte Ewigkeiten und belastet das System enorm.
Für die Lösung benötigen wir Folgendes:
Um alle Site Collections zu finden, auf die ein Benutzer Zugriff hat, müssen wir nur auf die Site Collection Typen einschränken, die Berechtigungsprüfung ist bereits eingebaut. Hierzu verwenden wir das Managed Property “contentclass”. In diesem Artikel sind mögliche Werte beschrieben, unser Query lautet damit:
Contentclass:STS_Site
Das CoreResults-WebPart wird auf einer beliebigen Page plaziert, eben dort, wo Sie das DropDown haben möchten:
In den WebPart-Properties muss dann ein Fixed Query angegeben werden (Abfrageoptionen für Ergebnisse à Feste Stichwortabfrage), hier wird unser Query von oben eingetragen. Zudem muss die Location Visualization deaktiviert werden (Eigenschaften anzeigen à Speicherortvisualisierung verwenden)
Und nun kommt der schwierige Teil. Wir benötigen ein XSL-Template, das eine DropDown-List befüllt und zudem ein kleines JavaScript zur Weiterleitung an die URL hinterlegt. Hier steckt der größte Aufwand, ich poste den Code dafür direkt hier:
Dieser Code muss in den WebPart-Properties im XSL-Editor eingetragen werden. Den Quelltext habe ich hier zum Download zur Verfügung gestellt.
Alles zusammen sieht dann wie gewünscht aus:
Dies kann natürlich auch Teil einer MasterPage sein, wobei man hier eventuell noch ein Caching einbauen sollte, um die Suche nicht zu überlasten.