Monday, 27 August 2012

SharePoint 2010 Enterprise Features & CALS

You've just been told that despite having a SharePoint 2010 Enterprise licence, your users also need a Standard CAL + Enterprise CAL.  Shit!

Step 1: Review whether you use any enterprise features.  and if so, review which sites you need them to stay if any.

What do all those features enable exactly??  Infopath Forms Services might not mean that you can't use Infopath with SharePoint if you dont have enterprise, it may simply mean that you can't use Infopath INSIDE a browser.  So if your users have InfoPath installed on their local computer, then it's not an issue disabling Enterprise features.

Step 2:  If you don't need Enterprise features, and need to disable them because of licensing issues:

Disable in Central Admin:  Manage Web Applications > Manage Features > Deactivate SharePoint Server Enterprise Web application features on each Web Application.

Disable at Site Collection Level: Site Actions > Site Settings > Site Collection Features > Deactivate SharePoint Server Enterprise Site Collection features on all Site Collections

Disable at Site Level: If you're SharePoint setup is anything like ours, you will have a multitude of sites in all of your site collections, so to disable SharePoint Server Enterprise Site features on all sites, you can run this code:

foreach ($site in Get-SPSite -Limit All -ErrorAction SilentlyContinue)
   foreach ($web in Get-SPWeb -site $site.url -Limit ALL `-ErrorAction SilentlyContinue)
      Write-Host Site: $web.Url
      Disable-SPFeature -Identity 0806d127-06e6-447a-980e-2e90b03101b8 -url $web.Url -Confirm:$false

Note:  The identity for Enterprise Site features is always the same as i've pasted in the code.  The reference site I used to find this id is here:

Step 3: Check to make sure all enterprise features are deactivated

(info for this step borrowed from this site:

1.PowerScript to show all web applications that have Enterprise features enabled:

foreach ($webapp in Get-SPWebApplication)
    foreach ($premiumfeature in Get-SPFeature "PremiumWebApplication" `
        -WebApplication $webapp.Url -ErrorAction SilentlyContinue)
        Write-Host $webapp.Url

2.PowerScript to show all site collections that have Enterprise features enabled:

foreach ($site in Get-SPSite -Limit All -ErrorAction SilentlyContinue)
    foreach ($premiumfeature in Get-SPFeature "PremiumSite" `
        -Site $site.Url -ErrorAction SilentlyContinue)
        Write-Host $site.Url

3.PowerScript to show all sub sites that have Enterprise features enabled:

foreach ($site in Get-SPSite -Limit All -ErrorAction SilentlyContinue)
    foreach ($web in Get-SPWeb -site $site.url -Limit ALL `
        -ErrorAction SilentlyContinue)
        foreach ($premiumfeature in Get-SPFeature "PremiumWeb" `
            -Web $web.Url -ErrorAction SilentlyContinue)
            Write-Host $web.Url, $web.Title

Thursday, 5 July 2012

SharePoint 2010 - RSS Viewer Web Part - Customise the style

For the last few days I've been looking for an example on how to customise SharePoint 2010's OOTB RSS Viewer Web Part, and finally I've found a solution that although it has quite a few steps, the final result is clean code with the ability to use CSS to style the Feed.

Thank you Ed.

To add to Ed's fantastic post, I will show you a method to create styled RSS feeds without SharePoint Designer.  Once you have found an RSS feed that you would like to manipulate, add the URL to your RSS Viewer Web Part (If you cannot find it in your list of web parts, you need to enable the SharePoint Server Standard Site Collection feature), click Apply, then click the 'XSL Editor...' button.  Copy all of the code into Notepad for ease of editing, and paste it back into the XSL Editor when you are finished.

The section of XSL you are looking for is within: <xsl:template name="RSSMainTemplate.body"
and the area that we are modifying is between <xsl:if test="($CurPosition &lt;= $rss_FeedLimit)"> and </xsl:if>.  Everything within that If statement declares what information is shown, and what it looks like.

For my example, I modified MiningAustralia's RSS Feed (  I deleted all the code inside the if statement mentioned above, and replaced it with the following.

<div class="RSS">
   <div class="RSS-date">
      <xsl:variable name="day">
         <xsl:value-of select="substring(pubDate,1,2)" />
      <xsl:variable name="month">
         <xsl:value-of select="substring(pubDate,4,2)" />
      <xsl:value-of select="$day"/><br/>          
         <xsl:when test="$month = 01">JAN</xsl:when>
         <xsl:when test="$month = 02">FEB</xsl:when>
         <xsl:when test="$month = 03">MAR</xsl:when>
         <xsl:when test="$month = 04">APR</xsl:when>
         <xsl:when test="$month = 05">MAY</xsl:when>
         <xsl:when test="$month = 06">JUN</xsl:when>
         <xsl:when test="$month = 07">JUL</xsl:when>
         <xsl:when test="$month = 08">AUG</xsl:when>
         <xsl:when test="$month = 09">SEP</xsl:when>
         <xsl:when test="$month = 10">OCT</xsl:when>
         <xsl:when test="$month = 11">NOV</xsl:when>
         <xsl:when test="$month = 12">DEC</xsl:when>
   <a href="{link}" target="_blank"><xsl:value-of select="title" /></a><br/>
   <xsl:value-of select="description" /><br/><br/>

  • the DIV's are used to make the RSS Feed look pretty  (remove them if they are causing issues)
  • I've created two variables, one named Day, one Month, which query the RSS field $Pubdate and pull back the correct numbers for the date of the article.
  • Displayed the date
  • Displayed the month as a three letter string depending on what numbers are retrieved
  • Displayed the title of the RSS feed as a hyperlink that opens up in a new window
Takes a little trial and error, but once you get a feel for XSL it's actually quite simple.

Obviously there are other fields in an RSS Feed that you can manipulate, I've listed them below in case anyone wishes to take it further:

These are available on all feeds: 

{rss:title} - Displays the title of the item
{rss:description} - Displays the short description
{rss:link} - Provides a link back to the original item.

These are not available on all feeds. The feed should be previewed before being saved to ensure that these are populated: 

{rss:content:encoded} - Displays the full text of the item. This applies to RSS2 feeds only.
{rss:dc:creator} - Displays the name of the item author
{rss:pubDate} - Displays the date the item was published
{rss:category} - Displays the category that the item is in
{rss:guid} - Displays the permanent link for the item.

(Field information pulled from:

Monday, 23 April 2012

SharePoint 2010 - Access denied when trying to edit a page

The other day a few users were complaining that they were unable unable to edit pages on a site that they had Contribute Access to.

After many tries at checking everything was published, I found this blog from Harry Chen:

Turns out, that read access had been removed (unsure how!) from the site collections Master Page & Page Layout gallery.  Following Harry's instructions I was able to add the access back to the library and the issue was resolved.

Here's how:

Go to Site Actions –> Site Settings -> Master pages and page layouts -> “Library” tab from ribbon -> “Library Permissions” button at the top, right ->
Add the users or group to permissions here with at least Read access enabled.

Now, owner groups will have the permission to edit the pages.

SharePoint 2010 - "XsltListViewWebPart" Web Part appears to be causing a problem

Here's an error message I received a few weeks back from a user who was having trouble accessing a page:

Strange... Anyhow, my first thought was - Faulty Web Part - so made my way to SharePoint Designer to fix/remove the web part from the page, only to find that I was unable to connect to any sites on the entire Web Application!

Here's the Error I was receiving when trying to access SharePoint Designer:

"An error occurred while trying to fetch data from your SharePoint site. Attempted to read or write protected memory. This is often an indication that other memory is corrupt"

Now I'm thinking 'oh shit..' well not to worry, all I needed to do was a simple IISRESET and the issue was resolved.

SharePoint 2010 - Browser Compatability

Hi All,
                Our company is in the process of creating multiple websites for the internet on SharePoint.  Although we are still in the early stages, I thought you may be interested in this breakdown of Browser Compatibility for SharePoint.  This is just a basic quick-test, on our company Intranet, but once we delve further into the project I will give updates via this blog:

Basically, all 32-bit versions of browsers are supported (meaning they will help you if you're having issues,) by Microsoft except Safari, and the 64-bit version of Safari is supported with ‘limitations’.  See the info and Matrix here: (

The issue is when ActiveX or Silverlight comes into play, where some browsers either do not use ActiveX/Silverlight or render it differently, or do not render it at all.

So, best way to see how they work is to test, so here’s some initial results from my testing:

Firefox – Works fine with Silverlight, menus, webparts.  Slightly slower to load the Ribbon

Chrome –Supports some ribbon functionality, but not all.  Silverlight does not work without the user manually installing a Silverlight plugin.  Certain Webparts do not show up at all when the page is fully loaded.

Safari -  Certain Webparts do not show up at all when the page is fully loaded.  Crashes occasionally when clicking through menus (although this may be the way our intranet is coded, as I am unable to find others with the same issue).  Silverlight works.  Crashed trying to access MySite.  Crashed trying to access Document Library on CONNECT.  (These crashes may also be due to our intranet design)

Conclusion:  Although issues like the Safari crashes are worrying, I can’t find any people online having the same short of issues.  This may mean that it has to do with certain customisations, but even so, it would mean that every time we make a change, we will have to have a set list of tests to run on every browser to ensure their functionality is not affected.  Some would say these tests are expected with any website design/changes, but I am looking more at the OOTB functionality that comes with SharePoint, rather than look & feel changes.


Version of browsers used:
chrome: 18.0.1025.162 m
safari: 5.1.5
Firefox: 11.0

Tuesday, 13 March 2012

Bhōj Indian Restaurant Docklands - Review

After dining at Bhoj on valentines day, I thought it would be nice to give some feedback.  For those interested, you can find more direct information here: .

Location:  54 New Quay Promenade, Docklands, Melbourne.  Although it's not the easiest of locations for many Melburnians to get to, the travel time is often worth the effort, which was definitely the case for this experience.

Atmosphere:  Clean, friendly, quiet and slightly classier than the usual places I frequent.  I'd suggest sitting outside as it started to get slightly too loud inside as the tables filled out.

Price:  For the docklands, very reasonable.  We paid $55 each for a 3 course meal and your looking at around $30 for most bottles of wine.  On a normal night main meals are around $15-$20 each, or $40 for the banquet.

Food:  If I was to go to this restaurant again, I would definitely go for the banquet.  You get to taste the majority of items on the menu, and you will receive much much more than you could ever possibly finish.  Entree was definitely my favourite, recieiving a plate with enough food adequate for a main meal, and each item packed with flavour while at the same time going very well together.  The main dishes I found a little disappointing, with some not being thick enough and others not having enough kick, along with some just lacking flavour.  As for dessert, I can't really comment, but the girlfriend enjoyed the pistachio ice-cream.

Staff: Great!  Happy to let you sit there and gather up the courage to hit another course.  very professional.

Overall, despite some of the main meals lacking, the experience was great and I'd head back there again if only for the banquet.