This is part 1 of a multi-part series on configuring Cross-Site publishing in SharePoint Online.
- Let’s Play Ball! XSP in SPO [Part 1]
- Let’s Play Ball! XSP in SPO [Part 2]
- Let’s Play Ball! XSP in SPO [Part 3]
Note: at the time of this writing, Cross-site Publishing is available in the Education, E3, E4, and E5 plans of Office 365.
What is cross-site publishing and why would you want to do it? If you aren’t already using this feature you will hopefully have a better understanding of its capabilities (and limitations) after reading this series as well as some ideas where it fits in your environment.
In a website where content is pushed out to consumers it’s preferable for users responsible for authoring the content not to be working in the same environment as those consuming (viewing) the content. We want to minimize the risk of content authors making a change that could inadvertently affect users consuming the information. Also, we want to minimize the effort required to keep the content up-to-date.
To illustrate this feature, I will walk-thru a specific example.
A Baseball Player Catalog
Since we’re in the full swing of Baseball season right now, the seasonal example we’ll be walking thru is a Baseball team wanting to create a page for each player on their team roster, coaches and front-office staff. This is likely something you would find on any professional team’s website. Fans will go here to read information about each player. If there are 40 players on a team, one technique that content authors could use is to create 40 pages (1 for each player) and update each page with the relevant information for each player. This, of course, is a very inefficient way of doing content management.
Tip: think about corporate examples where you could use this… corporate events, news items, job profiles, etc.
What if instead we could get the content authors to enter the player information into a custom list in SharePoint and then use search to show the player information to the end-user with a friendly URL instead? Also, what if we could build navigation on the consuming site collection based on a term set we could dynamically control? That sounds much better to me! In order to do this, we use a feature in SharePoint called Cross-Site Publishing.
The Cross-Site Publishing feature was introduced in the Enterprise version of on-premises SharePoint 2013. There is a Product Catalog app you can use as a list starting point in SharePoint 2013 but it hides some of the configuration details away from you. This app is not available in SharePoint Online however so I set out to ‘hand-roll’ Cross-Site Publishing in SharePoint Online from a custom content type and custom list that I created. In this blog series, I’ll walk thru the steps to accomplish this by building out the Baseball Player Catalog.
The diagram below shows the topology we will use for this scenario. Although in the diagram I only have 1 consuming site collection, you can have several site collections connected to the same published catalog. The consuming site collection(s) uses the search index to surface data from catalog connections created in the authoring site collection. Users on the consuming site don’t require explicit permission to the content on the authoring site.
Here are the steps to set this up:
STEP 1: Create an authoring site collection. This is where you will create your managed term set, custom site columns, custom content types and list/library for the Player Catalog. I’ve had the best luck using a publishing portal site template for this.
STEP 2: Create a consuming site collection. In our Baseball example, we will create a publishing portal site collection called Players.
STEP 3: On the authoring site collection, enable the ‘Cross-Site Collection Publishing’ site collection feature.
STEP 4: On the authoring site collection, add your managed metadata term set for the player roster positions. In my experience I like to have a single term under the term set that I will later reference on the consuming site collection as the starting point of the navigation. (won’t be shown in the navigation) In our example below, that is ‘Team List’. By configuring the terms this way, the navigation on the consuming site will have 3 top-level items: Players, Coaches, Front Office Staff with sub-menus under Players for Pitchers, Catchers, Infield, Outfield and Designated Hitters. This will be dependent on whether or not you’re integrating into an existing navigation hierarchy or if this will be the only navigation on your site.
Our Team Roster Managed Term set:
Note: I have used a custom sort order on the managed terms. I don’t want them alphabetical in the navigation (the default). Since most users will want to go to Players we will put that first in the navigation and the child terms under Players will follow the prescribed order I have defined above.
STEP 5: On the authoring site collection from within Term Store Management, grant the consuming (Players) site collection access to the authoring site collection term store as follows:
In the next blog in this series, we’ll continue with adding site columns, content types, and the custom list to build out our Baseball Player catalog.