Microsoft SharePoint Content and Structure Site-Collections Explorer

von Roland Rickborn

In diesem Posting stelle ich ein kleines Skript vor, mit dessen Hilfe wir die SharePoint Ansicht Content and Structure Site-Collections übergreifend zugänglich machen.

Übersicht

Bei einem großen Kunden wurde für ca. 45.000 Mitarbeiter ein neues Intranet auf Basis von Microsoft SharePoint 2013 On-premise eingeführt. Im Intranet befinden sich sowohl redaktionelle Inhalte der globalen Unternehmenskommunikation, als auch Inhalte von lokalen Kommunikationsabteilungen und anderer Unternehmensorganisationen (z. B. Informationen von Produktmanagern).


Das Intranet selbst erscheint den Anwendern dabei zwar als eine monolithische Anwendung. Technisch wurde es aber tatsächlich auf mehrere Site-Collections aufgeteilt. So hat insbesondere jede lokale Organisationseinheit eine eigene Site-Collection. Zusätzlich gibt es Site-Collections für News, für die Konfiguration und für andere Bereiche.

Problemstellung

Die lokalen Organisationseinheiten halten sich fast ausschließlich in „ihrer“ Site-Collection auf. Alles was über die redaktionelle Arbeit an Artikeln des Intranet hinausgeht, kann also in der Content and Structure Ansicht dieser Site-Collection stattfinden.

Die globale Unternehmenskommunikation, die das gesamte Intranet betreut, bewegt sich dagegen in allen Site-Collections. Die Redakteure der Abteilung empfanden es als schwierig, die richtige Site-Collection zu finden. Der Weg über die entsprechende SharePoint Page, von dort über die Site-Settings zur Content and Structure Ansicht wurde als Umweg wahrgenommen.

Lösungsansatz: MS Sharepoint Explorer

Generell wurde die Content and Structure Ansicht als hilfreich und ausreichend eingestuft. Lediglich die Beschränkung auf nur 1 Site-Collection wurde als hinderlich angesehen. Eine übergreifende Leiste mit Links zu allen Site-Collections als Lösung war daher naheliegend. Die Leiste wurde mittels einer unsortierten Liste und Buttons Elemente umgesetzt, siehe nachfolgendes Code-Listing.

<body>
    <ul>
   <li>
    <a class="sc-link" id="intranet" title="Click here to open the site-collection intranet" href="#">intranet</a>
   </li>
   <li>
    <a class="sc-link" id="news" title="Click here to open the site-collection news" href="#">news</a>
   </li>
   <li>
    <a class="sc-link" id="events" title="Click here to open the site-collection events" href="#">events</a>
   </li>
   <li>
    <a class="sc-link" id="functional" title="Click here to open the site-collection functional" href="#">functional</a>
   </li>
   <li>
     <div class="dropdown">
      <button class="dropbtn countries">countries ≡</button>
      <div class="dropdown-content">
        <a class="sc-link" id="de_de" title="Click here to open the site-collection de_de" href="#">de_de</a>
        <a class="sc-link" id="en_us" title="Click here to open the site-collection en_us" href="#">en_us</a>
        <a class="sc-link" id="es_mx" title="Click here to open the site-collection es_mx" href="#">es_mx</a>
      </div>
    </div>
   </li>
   <li>
    <a class="sc-link" id="test" title="Click here to open the site-collection test" href="#">test</a>
   </li>
   <li>
    <a class="sc-link" id="config" title="Click here to open the site-collection config" href="#">config</a>
   </li>
  </ul>
  <iframe id="myframe" width="100%" height="1800px" src="/sites/intranet/_layouts/15/sitemanager.aspx?Source={WebUrl}_layouts/15/settings.aspx" frameborder="0">
    <div class="UserGeneric">The current browser does not support Web pages that contain the IFRAME element. To use this Web Part, you must use a browser that supports this element, such as Internet Explorer 7.0 or later.</div>
  </iframe>
</body>

Die Navigationsleiste, die im Look & Feel dem Intranet nachempfunden ist, enthält Links zu allen vorhandenen Site-Collections. Die Redakteure können einfach die gewünschte Site-Collection anklicken. Im unteren Teil des Browserfensters wird dann in einem iFrame die entsprechende Content and Structure Ansicht der ausgewählten Site-Collction geladen, siehe nachfolgendes Code-Listing.

function setToActive(sc, sub, callback) {
    $(document.body).append('myframe');
    $('#myframe').attr('src', '/sites/' + sc + '/_layouts/15/sitemanager.aspx?Source={WebUrl}_layouts/15/settings.aspx');
    $('#myframe').load(function() {
        document.getElementById("myframe").contentDocument.getElementById('sourceLink').style.display='none';
        callback(this);
    });
    $('#myframe').attr('title','You are now in site-collection ' + sc);
    $('a').removeClass('active');
    $('#' + sc).addClass('active');
    if (sub) {
        $('[class*="dropbtn-active"]').removeClass('dropbtn-active');
        $(sub).addClass('dropbtn-active');
    } else {
        $('[class*="dropbtn-active"]').removeClass('dropbtn-active');
    }
}

Zur besseren Übersichtlichkeit der Leiste wurden zusammenhängende Site-Collections in Form von Menüs gruppiert. Die jeweils ausgewählte Site-Collection wird farblich hervorgehoben, so dass der Redakteur immer weiß, in welcher Site-Collection er sich derzeit befindet. Evtl. vorhandene Links, die zu Irritationen führen könnten (z.B. der „Back“-Link) wurden per JavaScript entfernt, siehe nachfolgendes Code-Listing.

$(function() {            
    $(".sc-link").click(function() {
        scid = $(this).attr('id');
        prnt = $(this).parent('.dropdown-content');
        if (prnt.length > 0) {
            sub = prnt.parent('.dropdown').children('button');
        } else {
            sub = 0;
        }
        setToActive(scid, sub);
    });
});

Die Lösung ist parametrisiert und kann leicht um weitere Site-Collection Einträge erweitert werden. Die Eigenschaft der Content and Structure Ansicht, angeklickte Links immer in einem neuen Browsertab bzw. –fenster zu öffnen, kommt der Verwendung in einem iFrame entgegen.

Fazit

Eine kleine html-Datei mit etwas JavaScript und wenigen CSS-Styles stellt eine einfache und pragmatische Lösung dar, in der der relevante Inhalt in Form eines iFrames nachgeladen wird. Die darüberliegende Leiste stellt den Anwendern einen schnellen Zugriff auf alle Site-Collections zur Verfügung. Die Lösung trägt enorm zur Steigerung der Akzeptanz des neuen Intranets bei. Die Redakteure, die mit dem neuen System arbeiten, sind sehr zufrieden und fühlen sich mit der Übersichtsleiste der Site-Collections sicher in Bezug auf die Navigation in den einzelnen Site-Collections. Und auch die IT freut sich, da nicht nur der Aufwand für die Entwicklung der Seite gering war, sondern auch weil der erwartete Aufwand für die Pflege der Seite äußerst gering ausfällt.

Kategorien: HTML/CSSJavaScriptSharepoint

Zurück