Skip to main content
       
SharePoint Community Portal
FAQ
Forums
Videos
Templates
MVPs
Worldwide
Behind the Scenes
 
   
Go Search
 

Other Blogs
There are no items in this list.
SharePoint Community Portal > Behind the Scenes
This blog chronicles many of the behind the scenes decisions, challenges, tips and tricks, learnings, and best practices related to the implementation and ongoing improvements of the SharePoint Community Portal.
How to remove a feed’s Title from being displayed in the RSS Viewer web part

As you might have noticed, I use the RSS Viewer web part throughout this portal to aggregate content from other information sources. Pictured below is an example of a feed with the default RSS View web part settings.

Since I prefer to use my own title for each feed rather than rely on the feed's internal Title, I need to remove the feed's Title from being displayed. To do so, I simply modify the RSS View web part's XSL stylesheet, which is accessible from the web part's Properties pane shown below.

The section in the XSL that affects the display of the feed's Title is <div class="groupheader item medium" />. For an RSS feed, the section is contained within lines 39-43 as shown below.

Once the lines highlighted above are deleted and the XSL saved and applied, the RSS feed is displayed as shown below. Notice that the feed's Title is no longer displayed.

Added a Videos tab

Bob Fox keeps telling me to stop adding more tabs to the portal, but I can't help it because 1) they're so easy to add (i.e. a tab is dynamically displayed after I create a subsite), and 2) they're quite effective as a navigation element. Nevertheless, I do need to stop before they go beyond the width of the typical computer screen, which is 1024x768.

Anyway, since Soapbox on MSN Video was recently released as a public beta, I just had to add a Videos tab (and subsite) to the portal. J And as I've mentioned before, SharePoint makes it very easy to aggregate other relevant content onto the same site. So, I pulled in a few SharePoint oriented feeds from Channel9 and the one from Soapbox. I also wanted to pull in items from Microsoft webcasts, but the site didn't offer any feeds. Neither did YouTube, which is really too bad since there's a bunch of SharePoint oriented videos there.

Optimizing the portal's home page

With the pre-announcement of the SharePoint Community Portal at the European SharePoint Conference and on the SharePoint Team Blog, average daily traffic has doubled to about 17,000 requests.

About 10,000 daily requests are for the portal's home page. While the two Internet facing front-end servers are keeping up fairly well, I'm taking a preemptive measure to optimize the portal's home page by moving the RSS Viewer webparts except for the one that displays the SharePoint Team Blog to the "Team Blog" page (http://sharepoint.microsoft.com/sharepoint/teamblog) where most/all of the team blogs will eventually reside.

SharePoint provides a very easy way to move webparts. It's not as seamless as drag-and-drop, but all I had to do was go into Edit Page mode for the home page and select "Export…" in each webpart's Edit menu.

Next, I saved each .webpart file to my machine.

Then, I go to the "Team Blog" subsite's Edit Page mode, click on "Add a Web Part" in one of the webpart zones, click "Advanced Web Part gallery and options", and select "Import…" as pictured below.

Next, click Browse and select the .webpart file. Then click Upload.

Finally, drag-and-drop the imported webpart onto where you want it on the page.

Further customization of the SharePoint blog

Now that the http://sharepoint.microsoft.com/blogs site collection has been created and a bunch of early adopters have already signed up to have their blogs hosted there, I thought that it would be useful to document a few bits of customization (in addition to what I had already posted here and here) that I've found to be simple yet essential.

The OOTB SharePoint blog site template only provides Title and Body for the blog comment area as pictured below.

Not only that, but the Body column is defaulted to support only plaintext. So, the first I'd do is to change the Body column to support either rich text (if you only have WSS 3.0) or enhanced rich text (if you have MOSS 2007) as pictured below.

Next, I would add an optional URL column and sort the columns as pictured below.

And in the RSS Settings for the Posts list, I would include the "# Comments" column and increase the "Maximum days to include" from the default of 7 to 14 as pictured below.

Lastly, I'd leverage SharePoint's built-in versioning feature and enable the "create a version each time you edit an item in this list" option for the Posts list as pictured below. It's probably rare that you would need this functionality, but even just that one time when you accidentally overwrite your post, it will be well worth having this option turned on before you start actively blogging.

Now, I just need to find some free time to create a custom blog site template that includes all of these customizations, so new bloggers being onboarded to http://sharepoint.microsoft.com/blogs won't have to configure everything manually. J

Optimizing the RSS Viewer web part

Given the abundant use of the RSS Viewer web part on the portal, especially on the Home page and the Forums page, I've optimized most of the web part instances using the Data View Caching properties pictured below.

I've set the "Data View Caching Time-out" property to 4 hours (=14400 seconds) for the Home page web parts since the content on the team blogs isn't updated very frequently. For the Forums page, I've set the time-out to 2 hours (=7200 seconds) since the content in the forums gets updated a bit more often each day. I've also unchecked the "Send first row to connected Web Parts when page loads" option because none of the RSS Viewer web parts is being used that way. Now that the portal has been pre-announced, many thousands more people will be hitting the site, so I hope that these optimizations will help the servers handle the load a bit better.

Better way to override CSS styles

Previously, I blogged about using SharePoint Designer to attach a custom CSS file to a site's Master Page in order to override some of the CSS styles. My buddy, Angus Logan, reminded me that a better and really the recommended way to override CSS styles is to specify an alternate CSS file for the site to load after the Master Page (and its associated core.css) is loaded.

This option can be found in the Site Settings | Look and Feel | Master Page settings page as shown below.

Behind the scenes of the “Behind the Scenes” blog

SharePoint's OOTB Blog Site template creates a basic blog that just cries out to be customized. Since I didn't have the time, budget, or design skillz to turn it into something like the Windows Vista Blog, I focused on the fundamentals: support for multiple categories/tags per post, moderated anonymous comments, optional URL of the commenter, and rich client authoring from Word or Windows Live Writer. As I mentioned in a previous blog entry, the support for multiple categories per post can be easily configured using these instructions.

To configure moderated anonymous comments, I clicked the "Managed Comments" link to get to the Comments list. Then, I went to Settings > List Settings > Permissions for this list > Settings > Anonymous Access and checked the "Add Items" right.

Next, in the breadcrumb, I clicked on Settings > Versioning Settings and selected the "Yes" option under "Reuire content approval for submitted items?".

Lastly, I wanted to create two new columns (Name and URL) to match what the SharePoint Team Blog's currently provided for commenters. I tried creating the "Name" column, but SharePoint complained that "Name" was a reserved word, so I used "Name (required)" instead. Then I created the "URL" column. I also wanted to rename the "Body" column to "Body (required)" just to be consistent with the "Name (required)" column, and I noticed that the default associated editor was Plain Text. MOSS provides a very cool Enhanced Rich Text Editor that can handle embedded pictures, tables, and hyperlinks, so I selected that instead.

So, with all of that configured and tested, this blog was ready for the world to see! But wait, I really didn't like SharePoint's default RSS feed, which has a bunch of mumbo-jumbo characters (a.k.a. a GUID). So, I went to FeedBurner and got myself an easy to remember feed URL of http://feeds.feedburner.com/sharepointcp. Then I wanted to hide the default RSS feed from being displayed on the blog's home page. To do that, I leveraged SharePoint's very handy feature of allowing CSS styles to be overwritten by attaching a custom CSS file. First, I created a file called blog_custom.css with the following contents, and then I saved it to a doclib on the portal:

.ms-blogrss {
display: none;
}

.ms-blogrssnav {
display: none;
}

Next, I opened up the default.aspx file on this blog site with SharePoint Designer and attached the custom CSS:

And finally, after saving the default.aspx file, this blog was ready to be announced for all to see!

Physical architecture and site structure

The http://sharepoint.microsoft.com infrastructure currently has the physical architecture shown below, which should adequately support several different community portals and a large number of blogs.

The SharePoint Community Portal exists as a site collection at the Managed Path (MP) of /sharepoint. Some of you might be wondering, "How did you get rid of the (default) /sites MP in the URL?" Well, the default /sites MP is a "wildcard inclusion" type of MP, so it's designed to support multiple site collections under it and is perfect for the self-provisioning of site collections, which happens to be what Microsoft does internally. In order for a site collection to have a URL without a /[something] in between the DNS name and the site collection name, an "explicit inclusion" type of MP must be used. You can create such an MP on the Central Administration > Application Management > Define Managed Paths page.

The next decision I had to make was which site template to use for the creation of the site collection (i.e. the root site). Ultimately, I decided on the Blank Site template since I really wanted a clean slate to start with. I figured that I could use SharePoint Designer to change the layout later if I needed to.

Then I needed to come up with a site structure. In looking at other community portals such as http://www.hive.net and http://shellrevealed.com, I knew that it was important to have lots of dynamic content on the home page and that other content needed to be easily accessible with a single click. I wanted the flexibility of being able to host and/or aggregate lots and lots of content over time, so it made more sense for me to create a subsite for each type of content (blogs, wikis, forums, events, etc.) rather than numerous webparts on the root site. The main drawback is that I won't be able to instantiate one site's webparts on another site, but since I can use the Content Query webpart to aggregate any content from any of the subsites, I felt that it was an acceptable trade-off.

The last piece of the site structure had to do with community "subportals" that my colleagues in the field wanted to create and manage themselves. I vaguely recalled going to http://www.microsoft.com/worldwide at one time to look for the website of one of our subsidiaries, so I thought that it would be best to match the naming convention. Hence, the /sharepoint/worldwide subsite was created to house the many field managed community sites that will be created such as the UK site.

New SharePoint Community Portal at http://sharepoint.microsoft.com/sharepoint -- my baby is finally born! :-)

   Well, it has taken about 6 months, but this environment – the very first MOSS-based Internet facing application hosted by MSCOM – is finally live! It’s anonymous access only right now outward to the Internet, and Passport/LiveID integration will take some time, but any Microsoft employee, once given the appropriate permission level on specific sites, will be able to post content. While I will focus my efforts mostly on this particular portal, the http://sharepoint.microsoft.com infrastructure has been setup to support other product groups as well! For instance, the Groove team has decided to be an early adopter and will soon be bringing their community portal online at http://sharepoint.microsoft.com/groove, and there are several other PGs just waiting to jump on board as soon as the Passport/LiveID integration is in place.

 

   Through this blog, I will chronicle many of the behind the scenes decisions, challenges, tips and tricks, learnings, and best practices for other PGs as well as the public to leverage. SharePoint is such a flexible platform and offers so many different options that I hope reading about my experience with this portal will help you make the optimal decisions about yours.

 

   For starters, the whole infrastructure currently has only 3 front-end boxes, two of which are Internet facing (anon access only for now) and one intranet facing (CorpNet access only). My approach in designing and maintaining the services and content on this portal is to take the “not enough time, not enough budget” approach, so efficiency and simplicity are usually the two most important decision factors. The policy and operational constraints imposed by MSCOM Ops (more on those later) are also important factors to consider because doing anything not out of the box will usually require additional time and cost.

 

   Therefore, I tend to utilize 5 things most often:

1.     RSS Viewer webpart (to aggregate content from other sources, so I don’t have to create or maintain any of it myself)

2.     Content Editor webpart (to fetch content via RESTful interfaces that are becoming more and more prevalent on the Web)

3.     Content Query webpart (to aggregate content from various subsites within the portal)

4.     Other people’s time, passion, and creativity (to maintain various portions and subsites of the portal)

5.     Other commonly use OOTB webparts such as Announcements and Links.

 

   Lastly, for this blog, I’ve customized it just slightly to support multiple categories per post based on the instructions here.

 

   That’s it for now. My sincere thanks to those of you, who have provided ideas, encouragement, and support to me along the way. This has truly been my baby, and I’m very proud to see it come alive. I’m even more excited to see it grow, and I hope that you’ll enjoy the ride along side me via this blog.

 

 

Lawrence Liu
Senior Technical Product Manager and Community Lead

Microsoft SharePoint Products & Technologies | WorkBlog | LifeBlog

Subscribe to the official SharePoint Team Blog!

 

"Be the Change you wish to see in the world!" -- Gandhi

 ‭(Hidden)‬ Admin Links

 
About Us Contact Us