Navigation

Wednesday, 20 July 2011

How to configure your Office365 public website to use the SharePoint Publishing Infrastructure

Important Update (2nd September 2011) - Microsoft have announced that this is NOT SUPPORTED. Please see the following post: Update - Publishing Features "not supported" on Office 365 Public Websites

This is something that has bugged me for a LONG time .. I cannot possibly understand why SharePoint Online (with one of the most powerful Web Content Management Systems) was so thoroughly limited by cutting back to a really basic template editor. I can only think of 2 reasons:
  1. Microsoft assumes the average user won't know how to use SharePoint, so wanted to provide a simpler user interface. This is fair enough, and if this IS the reason there should be no reason why I can't go "behind the scenes" and setup the site any way I like (at my own risk .. as it were).
  2. Microsoft is trying to protect revenue from "SharePoint 2010 Server Internet Facing Sites" licenses. These are VERY expensive and a lot of companies will happily get rid of their on-premise install to put in a £80 a year Office 365 E1 plan to host their website.
Now .. if it is case (1) then we should be good to go. If it is case (2) then they probably have terms and conditions specifically stopping someone from doing this... so first off lets get the disclaimer out of the way :)
Disclaimer Update (26th July 2011) - I have received confirmation from Microsoft via the Office 365 community site that this IS ALLOWED (http://community.office365.com/en-us/f/153/p/8015/34893.aspx#34893). Having said that if you decide to do this in your own environment then proceed at your own risk! If something goes wrong it is NOT my fault .. you have been warned!
Ok .. now that is dealt with lets get on with it!
The first thing I want to note is that this is only possible using an Enterprise Plan. If you are using the Small Business version of Office 365 (such as Plan P1) then you won't be able to do this for 2 major reasons:

1) SharePoint Designer blocks access to "All Files" so you can't make some of the changes we need to do.
2) You don't have access to Site Collection Features, so you can't activate the Publishing Infrastructure Feature!

So I setup my own trial Enterprise Plan (with a 30 day expiry .. hence why I haven't bothered posting the URL) and created the standard "Public Website" site collection... then what?

STEP 1 - SharePoint Designer - Rename the Public Website Folders
This is the first fundamental step. If you don't do this then STEP 2 will throw errors at you (because folders using "Pages" for example, already exists!).

Open your site in SharePoint Designer 2010 (free download) and click on "All Files" (should be the bottom link in the left-hand navigation panel).

This will show you the URL paths being used by each of the lists and libraries. You cannot delete these (as the delete option is prohibited) but you can rename them!
RENAME each of the following libraries (I have prefixed mine with OLD).
  • Documents
  • Images (the root folder)
  • Pages
  • SiteImages (the library)
  • TemplateGallery
None of these will be required once you have activated the publishing features.

Next, go to "Lists and Libraries" (second link from top left hand side). This will show you the NAME of the same lists and libraries.
RENAME each of the following libraries (again, I have prefixed mine with OLD).
  • Documents
  • Web Pages
  • Templates
  • Images
 Your site is now primed for the publishing features to be activated (if you navigate to your website URL now, you would be taken to the blank "default.aspx" page).

STEP 2 - Activate Publishing Features
Navigate to your website and append "/_layouts/settings.aspx" onto the end
e.g. http://martinhatch-web.sharepoint.com/_layouts/settings.aspx

You will need to activate 2 features in this order:
  1. Site Collection Features - SharePoint Server Publishing Infrastructure
  2. Site Features - SharePoint Server Publishing
So you now have "publishing" functions available!

STEP 3 - Create default Page
This is really optional, and anyone familiar with SharePoint should be happy from this point onwards.
  • New Page is now available from Site Actions. This will create a new Publishing Page
  • Using the Master Page options in Site Settings change the Site Master Page (I have used NightandDay.master in the screenshot below). You can of course create and deploy your own custom master pages using either SharePoint Designer or Sandbox Solutions.
  • Advanced Navigation options are now available from Site Settings.
  • The Pages library supports Content Approval, Publishing workflows and scheduling!
And that is it .. all done :)


STEP 4 - CLEANUP?
The only problem with this is we now have a bunch of old libraries hanging around which we can't get rid of.

I'm sure there is a neat way using a Sandbox Solution or client object model to delete those forcibly, and setup all of this, but for now I'm putting up with a bunch of old libraries prefixed with "OLD" (which don't contain anything).

The other thing in the mean time is finding out if Microsoft are actually willing to let us do this? I really hope they are .. it does expose the awesome power of SharePoint to the masses .. but will it mean they sacrifice some of the on-premise installs?? fingers and toes remain crossed.

[Update]
Note - I have started a forum thread asking this specific question. We shall see !!
http://community.office365.com/en-us/f/153/p/8015/33059.aspx#33059
[/Update]


39 comments:

  1. I went through all the steps with my newly provisioned site, works perfectly!
    I only wish we could use SharePoint's blogging functionality, currently there are issues with it: http://community.office365.com/en-us/f/154/t/3907.aspx?PageIndex=1

    ReplyDelete
  2. Rene,

    Glad it helped. You should be able to sort out those blog issues with a Custom Master Page btw :)

    ReplyDelete
  3. Martin,

    Great article! And I see that MS confirmed this is supported. Questions: Does SPD behave al lot better now that you have broken the chains from OOB master pages?
    How about Blog subsites are permissions working now for anonymous comments?
    Are the restricted ribbons gone when your logged in to public site do you get full sharepoint ribbons on lists and libraries etc?

    TIA,
    Josh

    ReplyDelete
  4. Anon,

    Yes SPD does behave, pretty much exactly the same as any SP2010 Publishing Site.

    Regarding Blogs you still have the same problem, mainly because the "Form Lockdown" feature is activated by default (and cannot be deactivated). This stops you from accessing any of the list views or forms.

    The alternative is to provide your own custom "comments" web part (which also allows you to provide other valuable settings like CAPTCHA)

    As far as I can tell I do get "full" Ribbon controls when editing pages.

    ReplyDelete
  5. Martin, Thanks for your reply. you said:

    This stops you from accessing any of the list views or forms.


    Do you mean stops anonymous users from list views or forms?

    When logged into my external site, I will see proper list views and forms correct?

    For example, the documents library that comes with the built-in external site (before your steps above) doesn't let me change edit the document properties and I only see Upload on the ribbon.

    Is it true to say the full document library ribbon and view edit forms are available after you rename and activate publishing?

    Josh

    ReplyDelete
  6. Great post it works perfect

    ReplyDelete
  7. Martin,
    The new page doesn't seem to acquire the master page I'm selecting. In other words I select say "night and day" and then select "new page" but it retians the default master.
    Can you give a bit more details about the steps?
    Thanks!

    ReplyDelete
  8. Never mind-I was looking at the master page gallery not "master page" under "look and feel".
    It works great.
    How do we get the new page link to show up for the public site?

    ReplyDelete
  9. Anon .. hehe no problem.

    In order to get the pages showing you need to check 2 things:

    1) Make sure the page is PUBLISHED. If you have Content Approval turned on it will also need to be approved.

    2) Go to Site Settings --> Navigation. Make sure "Show Pages" is checked for the Global Navigation bar. You can also custom add / delete / show / hide / reorder the navigation links here

    ReplyDelete
  10. Josh .. sorry missed your post (Blogger picked it up as "Spam").

    Yes, it is only "anonymous" users who cannot view forms / views.

    And unfortunately yes, the Ribbon for libraries is still a little farked.

    You can still get the drop-down context menu on each document to access the "Edit Properties" menu.

    ReplyDelete
  11. Martin,
    How would you get a form based on a list stored in the public site to show up? And is it possible to capture submissions from the public site in the list? It just seems to leave a big hole.

    ReplyDelete
  12. webbrewers

    I am not sure to be honest. Wictor Wilen (SharePoint MCM and MVP) told me he was working on a "Public Blog" template for Office 365 including comments, but I don't really know how that is expected to work.

    You can't use SPRunWithElevatedPrivileges in the Sandbox (as it is locked down).

    The only other approach is usin the Client Object Model or Web Services, using hard-coded credentials (NO idea if this would work .. might have been disabled on the Public Website too).

    ReplyDelete
  13. Note - I take it back.

    Got a solution:

    How to enable Anonymous Access to a blog site on your Office 365 public website
    http://www.martinhatch.com/2011/08/how-to-enable-anonymous-access-to-blog.html

    ReplyDelete
  14. Martin,

    Thanks for your reply. I've enabled publishing on my public site and it's working okay. I'm gettign some prompts to login but I will check that my pages are approved as you suggest. One question...can you get to the sitemanager.aspx by clicking on Site Actions | Manage Content & Structure?
    I get page not found...maybe I did something wrong.

    PS...good job on the blog permissions..I have a question on that blog comming too.

    TIA,
    Josh

    ReplyDelete
  15. Hi Josh,

    SiteManager.aspx is not working for me either. Same problem.

    What kind of login prompts are you getting? I was getting these on my Trial site before I purchased a license and setup my vanity domain.

    Do you have more than one Office365 subscription?

    ReplyDelete
  16. Hi Martin,

    I have full E3 with vanity only one subsciption.

    The login prompts went away once I properly checked-in and published.

    I guess there's no fix for sitemanager.aspx as we cannot add pages to /_layouts, correct?

    Thanks,
    Josh

    ReplyDelete
  17. Correct, although nothing stopping you from creating ASPX pages in an SPFolder within the SPWeb :)

    ReplyDelete
  18. Martin,
    You mention 2 reasons for this not working in a P level account. I believe you can access "All files" in SPD so the first step is possible. The 2nd step involving full access to the site's settings to activate SP publishing isn't available, but is there a way to unblock that restriction?

    ReplyDelete
  19. webbrewers,

    I had my own P1 account and I couldn't access "All Files" from SPD .. although this was an upgraded Beta account so that might have had an effect.

    I know that the E1 plan I opened was the first time I could access that.

    Regarding the lack of Site Collection Features we have had a bunch of issues trying to do this programmatically .. with attempts to modify the SPSite.Features collection through the Sandbox ending up throwing errors, and I couldn't get the Client Object Model to work because of the public site's authentication model.

    If you know of another way of getting it to work on the P1 plans then let me know and I'll amend the post :)

    ReplyDelete
  20. Martin, this is fabulous. I have one quick question. I actually used P1 plan and created a site under the root site called 'OP' now which is accessible by anonymous users. Now, I saved that as a template and downloaded the solution. Now, In E3 trial, I activated all the site collection & site features. I followed whatever you said here. working fine. Except when I try to activate the solution that I downloaded from P1 I get this wierd error - "the site template requires that the feature {d28bf940-11d3-496c-a9b9-22f60076a879} be activated in the site collection". I know we are missing a feature but I have no idea what feature was that as everything is enabled.
    Vin

    ReplyDelete
  21. Vin,

    Either they are using custom hidden featurs on the P1 plan (that are not activated by default on E1) or there are simply some discrepencies between the two site collections.

    You should be able to iterate through the SPSite.Features and SPWeb.Features collections. They will contain a list of all features activated at the Site Collection and Site level respectively, including the hidden ones!

    If there is a "Small Business" feature that doesn't exist on the E1 systems then I'm guessing your only option is to recreate.

    ReplyDelete
  22. Martin,great post :)

    ReplyDelete
  23. Still trying to activate mobile access however. This is also not supported incredibly and is proving to be more difficult to work around.

    ReplyDelete
  24. Anon,

    The mobile is going be tough (might be impossible).

    The mobile redirect option is set in the browser.compat files on the server itself, and you won't have ANY access to this on Office 365.

    ReplyDelete
  25. Hi Martin,
    Do you know of any way to do this on the Small Business plan? It's very frustrating that this restriction is in place.

    ReplyDelete
  26. Anon,

    Sorry but I don't. You might be able to do this programmatically using the Client Object Model.

    ReplyDelete
  27. Thanks Martin for all your work in blazing a trail on this. We recently decided to move our public facing web site from our on premises SharePoint to the O365 web site - not so much because of cost as we're an MS partner, but because we liked the 5 9s of uptime and taking this bandwidth off our business network connection. The site was originally built with Publishing features, so your tips really helped us to get this up into the cloud. We're going to be putting together a best practices guide for all our developers now for public facing sites in O365. I definitely see a lot of potential here for exanding the market for SharePoint branding and web sites. Thanks again!

    ReplyDelete
  28. Doc,

    You're welcome. :)
    be aware that Microsoft have their updated their service agreement to specifically state that activating this is unsupported on the public site.

    Anyway glad I could help, and good luck

    ReplyDelete
  29. Quick question: does unsupported purely just mean that if anything goes wrong, Microsoft just wont be able to help you? Is it OK (by Microsoft) if they know you are purchasing a Enterprise plan but taking the risks on your own? If so, and as you mentioned, this could cut some substantial costs for companies who have public-facing SharePoint sites and running on-premise installs. With SharePoint Online, can you back-up your environment should something blow up?

    ReplyDelete
  30. Steve,

    They don't make it clear to be honest.

    From unofficial conversations I have had with people at Microsoft they suggest that this means you should proceed "at your own risk".

    The main thing is that certain features don't work (like the Ribbon being almost useless in libraries.. I use SharePoint Designer to upload files)

    The main problem is that they could forcibly disable that functionality (somehow?) without warning.

    Regarding backups .. shouldn't be needed. Disaster recovery is covered as part of your Office 365 service agreement.

    ReplyDelete
  31. So my concern would be that if they allow you to proceed with these "unsupported" changes, would you still be able to utilize disaster recovery? I honestly have no idea how the T&A's are laid out. $8 a month for a site that is guarenteed to have 99.999% uptime. That is tempting...

    ReplyDelete
  32. Steve,

    I'm not sure what you mean by "utilize disaster recovery". Office 365 is a managed service. Microsoft take care of that for you .. you don't have to do anything yourself.

    In terms of SharePoint, all of the files and assets are stored in the content database (and deployed through the Sandbox), so there shouldn't be any "recovery" issues I can think of.

    I personally have the publishing infrastructure enabled on my Office 365 website (and have had for almost a year).

    So yes .. 99.99% uptime for $8 a month is exactly what you are looking at.

    ReplyDelete
  33. Hi,

    I recently did the changes you asked. Now when we navigate to the public facing site, it asks me to log in. What did i miss?

    ReplyDelete
  34. Check out page 26 of the Microsoft SharePoint Online for Enterprises Service Description.docx (http://www.microsoft.com/en-us/download/details.aspx?id=13602). It is pretty clear this isn't allowed.

    Public Website: Designed for small businesses and professionals to market their business with a simple and professional public website. This site is intended for simple, low-traffic, branded websites to display business information, location, maps, directions, and contact information. This site is managed via a new tool called Site Designer for personalization and builds off of simple out-of-the-box web templates. Office 365 customers can create only one simple public website per tenancy. And once created, customers are able to apply a vanity URL—such as http://www.contoso.com—that they have procured outside of Office 365.
    Note

    • Vanity URLs can only be applied to the public website. Customers cannot apply a vanity URL to an intranet zone site.
    • The public website does not grant use rights to leverage the SharePoint publishing portal components. These features are only supported for intranet sites within the private site collections created in the SharePoint Online Administration Center. The public website is configurable by use of the built-in Site Designer ribbon tool.
    • Editing the Public Website with SharePoint Designer is not supported.

    ReplyDelete
  35. Anonymous ..

    Yes .. hence the big bold red writing at the top of this post.

    ReplyDelete
  36. Hi Martin, thanks for this. After converting my public facing website following the instructions, I now have my intranet accessible to anonymous users. I cannot remove this permission for the life of me, it is grayed out in the permission settings.

    Any idea what I did wrong or how to remove it?

    ReplyDelete
  37. Peter,

    The option is indeed greyed out in the UI (you won't be able to change it).

    I do have a code sample in my Office 365 series (linked in the main header menu) which shows how to enable anonymous access for a public facing blog. The code to reverse it out is pretty similar.

    ReplyDelete
  38. Peter,

    Effectively you need to do:

    // get root-site for the current site collection
    using(SPWeb web = SPContext.Current.Site.OpenWeb())
    {

    // clear all anonymous permissions to "zero access"
    web.AnonymousPermMask64 = SPBasePermissions.EmptyMask;

    // save changes
    web.Update();
    }

    ReplyDelete
  39. Martin,

    Can you comment on how to make the Site Manager to work when Publishing features are enabled?

    ReplyDelete

This blog has been moved to www.martinhatch.com

Note: only a member of this blog may post a comment.