Editing skins with SharePoint Designer

7. April 2009 08:56 by sashashev in reskining, SharePoint Designer  //  Tags: , ,   //   Comments (0)

Editing skins with designer can be frustrating due to the many quirks in the process.

For a good starting point read here - http://www.sharepointblogs.com/tigirry/archive/2007/07/27/easy-way-of-editing-customized-theme-in-moss-2007.aspx

Some additional tips.

After you edit CSS files don't swich themes until you copy all your changes back to the theme.css file in the 12 hive otherwise SharePoint will overwrite your changes.

Every time you change themes SharePoint puts a local copy of the theme folder copied from the 12 hive which overwrites the current themes folder.

Only 1 theme folder per site collection appears in Designer.

Also as an extra note in the Masterpage section of sesttings, the system Masterpage option is used for the document center masterpage.

It appears the difference between the SIte Master Page and System Master page is primarily the quick launch. Which becomes the treeview in the System Page.




Developing for SharePoint on XP

3. April 2009 10:58 by sashashev in SharePoint Development  //  Tags: , , ,   //   Comments (0)

There are many articles on how to do SharePoint development on an XP pc. E.G http://fernandof.wordpress.com/2008/02/11/how-to-install-the-sharepoint-2007-vs-2005-extensions-on-a-workstation/

The question is does this give you the same experience as the recommended method of developing directly on a SharePoint server?

The bottom line is NO. The reason is that these methods still won't allow you to connect to a SharePoint web.

i.e Anything like this won't work

this._Web = SPContext.Current.Web; or

this._Web = new SPSite(http://<IP_ADDRESS>).OpenWeb();

In other words you can compile but to see the results you will have to deploy to a SharePoint server.

The only exception to this rule is with web parts where code doesn't actually interact with the SharePoint object model and is just a standalone web part. Then you can test your web part by creating a web project with web part zones and run your web part from there.

If that hasn't put you off here are a couple of extra steps you may need to get going with SharePoint dev on XP.

1)  Copy all the DLLs out of the GAC of SharePoint install.

From http://mossofall.blogspot.com/2007/05/how-to-get-microsoftsharepoint-dlls-out.html

So, to extract these DLLs (for example in the c:\temp folder), I use a classic XCOPY command in command line from the folder C:\windows\assembly\ :
XCOPY GAC_MSIL c:\temp /

Then use a normal windows search to find all dll in temp folderabd copy out the SharePoint related ones.

Copy the DLLS to your local GAC. i.e to C:\windows\assembly


 2) If you get a personalization web.config error when testing we parts in local web part zone enabled Site

Make sure you set personalization on your web part manager off for testing locally

 <asp:WebPartManager ID="uiWPManager" runat="server" Personalization-Enabled="false"></asp:WebPartManager>



How to customize a Sharepoint theme

31. March 2009 16:29 by sashashev in reskining  //  Tags: , ,   //   Comments (0)
In this article, we are going to explore how to modify an existing Sharepoint theme.  This process is pretty straight forward and this article provides a few tips and tricks along the way.  Please note this process requires some previous CSS experience.

Copy the theme directory you want to customize


1.    Navigate to THEMES folder:  %Program Files%\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\THEMES.  Copy theme folder you want to modify and rename the copied folder.  Here, we copied the BREEZE2 folder and renamed it to DERWENT.


Update the copied files with the new theme information

2.     Navigate into the new theme folder and rename the .INF to the name of the new theme.  Here we renamed BREEZE2.INF to DERWENT.INF.


 3.     Open the INF that was just renamed and update all the entries with the new name of your theme.  A global search and replace (Ctrl+H in most editors) will take care of this easily for you.  Here we changed all the Breeze2 entries to Derwent.


 4.    Next, we need to add the new theme into the XML file so that Sharepoint knows it exists.  To do this, we are going to edit the SPTHEMES.XML file located in C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033.   Add the following <Templates> entry into the XML file:

For now, leave the <Thumbnail> and <Preview> tags as they are, we will get to these later.  They simply specify which images will show up when the user is previewing a theme.  Since we don’t have a screenshot of our new theme yet, we do not have anything to put here.  Your XML file should look similar to the one below:

Make CSS changes to the theme

5.    Next, we are going to edit the theme.css style sheet located in the new theme folder (for example, C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\THEMES\DERWENT\theme.css).

This is where all of the hard work comes in.  In order to work more efficiently, it is a good idea to save a couple of the Sharepoint pages locally (File -> Save As… from IE, select Webpage, complete (*.htm;*.html) for Save as type).  


This will allow you see the CSS changes on a local page without have to perform an iisreset (See Step 6) on the server.

For the pages I saved locally, the .htm files seemed to link to “Derw1011-65001.css” style sheet instead of the expected theme.css file.  It turns out the “Derw1011-65001.css” is actually a copy of the theme.css style sheet.  (The “65001” in the filename comes from the codepage setting in the .INF file).  So when you save a page locally, it will also save the “Derw1011-65001.css” file since the .htm file links to this file.  Edit the “Derw1011-65001.css” file locally and once you’re happy with the changes, copy the contents of this CSS file into the theme.css file located on the server (after making a backup, of course).

Microsoft has provided some documentation (http://msdn.microsoft.com/en-us/library/ms438349.aspx) on the CSS classes used in core.css which shares some common CSS classes with theme.css, however I found it easier to examine the CSS information using IE Web Developer or Firebug.

Force Sharepoint to recognize changes

6.    Now that you finished with your CSS changes, you need to perform an iisreset from the command prompt in order for the Sharepoint server to recognize the changes.   

To do this, start the command prompt (Start -> Run… -> type cmd -> Enter).

   Type iisreset, then hit enter. 

Note: be careful performing this command on a server in a production environment as it will sever any active connections to all of the websites being hosted on the server.

Apply customized theme to site

7.    Next, we are going to apply the newly created theme.  Open a browser and navigate to the Sharepoint page that you want to apply the new theme to.  Click Site Actions -> Site Settings.

 Once in Site Settings, click “Site Theme” from the Look and Feel section:

This will bring up a list of all available themes that you can apply to the site.  You should see the theme we added in the previous steps.  Below, you can see the Derwent theme we added in the example:

Highlight the theme you added, and click apply. 

Update preview image

8.    Notice the Preview image shown to the left of the list of themes.  You will still see the preview image of the copied theme.

In order to update that image with a preview of our own theme, we need to grab a screenshot of our new theme and add it to the proper location.

Navigate to the home page of the site you changed the theme for.  In our example, we would navigate to the My Home page.

Take a screenshot of this page and resize it to about 350 x 230 pixels using your favorite image editor (i.e. SnagIt). 

Save the screenshot in a standard format (.gif, .jpg, or .png).

9.    Next, we need to add the image to the Sharepoint server so that the image will appear when a user is attempting to select a theme.

Copy the screenshot image you created in Step 8 into %Program Files%\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\IMAGES.  Here you can see I’ve named my screenshot Derwent_Preview.gif:

 10.     Repeat Step 4, updating the <Preview> and <Thumbnail> attributes in the SPTHEMES.XML file with the new name of your preview image, as shown below:

11.     Repeat Step 6 to complete the changes on the Sharepoint server.

12.    Next, we need to see our changes on the Sharepoint site.  Repeat Step 7 to navigate to the Site Themes Settings Page.

Notice that the image you just created isn’t showing up in the preview?  In order to see the changes you just made to the theme, you must first apply another theme (any theme listed - it doesn’t matter which one), and then reapply the new theme. This is required to see ANY changes you have made to theme, if you already have the theme applied.

Tips for Installing MOSS 2007 (3.0) on Windows Server 2008

31. March 2009 16:17 by sashashev in Server Configuration  //  Tags: ,   //   Comments (0)

Slipstream MOSS 3.0 Service Pack 1

At the time this article was written, Microsoft has only released a version of the MOSS 3.0 installer package without integrating the already available MOSS 3.0 SP1.  When you attempt to install MOSS 3.0 using the installer package on the Windows Server 2008, you will get an error from the Program Compatibility Assistant stating that a service pack is required in order to install WSS 3.0.  To circumvent this, we need to slipstream the SP1 bits into the MOSS 3.0 installer files.  Basically, this involves extracting the SP1 EXE files into the Upgrades folder of the MOSS 3.0 installer files.  Then, running the MOSS 3.0 installation should work.

How To

Matt Hester has compiled information on this issue and come out with a very helpful screencast which takes the user through a step-by-step process of slipstreaming SP1 into the installation.  Before beginning this video, make sure you have a local copy of the MOSS 3.0 installation files as we will need to add files to the Upgrades folder.  The screencast can be found here:


Error Using SharePoint Products and Technologies Configuration Wizard

After installing MOSS 3.0, you should be taken to the SharePoint Products and Technologies Configuration Wizard.  After specifying the Database Server, Database Name, Database Account, and Database Password, you may encounter an error stating “Internet Information Service is not installed. You must have Internet Information Service installed in order to use the Sharepoint Products and Technologies Configuration Wizard.”  If you receive this error, read the following two sections.

Error Source

If you used the Add Roles Wizard to install IIS 7.0 (as we did in Matt Hester’s How To),  we were given the default installation containing a minimum set of role services. We will need additional IIS 7.0 role services, such as IIS6 Metabase which provides a legacy interface to applications requiring IIS 6 backward compatibility.

Install Additional Features

We can use the following script to install available feature packages, namely IIS-Metabase.  Running the following script will give us the full IIS 7.0 installation, which installs all available feature packages.  If there are feature packages you do not need, you should change the script to install only the packages you require.

Code Snippet:

Excerpted from:


Administrator Privileges in Windows Server 2008

31. March 2009 16:14 by sashashev in Server Configuration  //  Tags: ,   //   Comments (0)
By default, you do not have Administrative privileges if you're logged on as a user (other than the built-in Administrator account) even if this user was added to the local Administrators group on the machine (this is a new security feature in Windows Server®2008 with-IIS 7.0, called LUA).

Make sure to either log-on as the built-in Administrator account, or explicitly invoke applications as the built-in Administrator as needed, using the "runas" cmd-line tool. For example, to launch notepad.exe you could run this command: "runas /user:administrator notepad.exe".

You will be prompted for the password of the Administrator account. It is useful to have a cmd-box shell that is already elevated, by running "runas /user:administrator cmd.exe".

Every application you run from that cmd-box will be elevated as well, and you will not need to use the "runas" syntax from that cmd-box.

Excerpted from:


Access denied entering Shared Services

31. March 2009 16:12 by sashashev in Shared Services  //  Tags: , ,   //   Comments (0)

There are 2 types of Access Denied errors when trying to access Shared Services.

This first solution deals with not being able to access Shared Services at all and No 2 deals with being able to get in but when you click on anything like "User Profiles and Properties" you get Access Denied.


If this happens to you go to Site Collection Administrators in Application Management in Central Admin.

Change both or just the secondary administrators in here to your user for the Shared Service site collection.

I found this solution here:





Assign yourself lot's of permissions. Go on. You know you deserve it!

Uploading Images in Sharepoint Content made easier.

31. March 2009 16:04 by sashashev in CMS, Third Party Tools  //  Tags: , ,   //   Comments (0)

For anyone who has ever had to edit content in Sharepoint and asked themselves why is it so hard to insert an image, this is for you.

By default to insert an image into a wiki or blog for example, you have to do something like upload images to a Sharepoint picture library and link to image by copying and pasting a URL to the Image. 


Does Microsoft know what year this is?

Anyway there is a Solution but it requires a little effort. The telerik MOSS editor which also comes in free lite version.


See - http://www.telerik.com/products/sharepoint/radeditor.aspx

Uing the RAD editor you can browse to image folders directly while editing content and create folders for storing images on the fly.

A few gotchas to watch:

Make sure you follow the installation instructions that come with the download package as the online instructions seem to be out of date.

You need to have either AJAX or .Net 3.5 installed on the server.

You dont need to edit the masterpages as the instructions say you do.

To modfiy properties of the editor you need to modify the ListConfigFile.xml located in
/Program Files/Common Files/Microsoft Shared/web server extensions/wpresources/RadEditorSharePoint/

(ListConfig as opposed to Config.xml as most content is kept in Lists. Lists, Wikis, Blogs, etc. are Sharepoint Lists)

Missing items in “Site Actions” menu

31. March 2009 15:58 by sashashev in CMS  //  Tags: , , ,   //   Comments (0)
If you are expecting to see more items in your “Site Actions” menu such as the “Navigation” menu item then you probably need to activate “Office Sharepoint Server Publishing” from Site Settings > Site Features .



The new menu items that appear allow you to control Navigation and add and edit CMS pages.

You may also notice you have different items in your top menu which is another topic that we will discuss when we talk about Sharepoint navigation.

Creating custom landing pages in SharePoint Part 1 - TheTable of Contents Webpart

The mission: Create a default landing page for each publishing site to aid in navigation.

The landing page should contain 2 sections.

  1. A section that lists all sites directly below the site you are on (1 level)
  2. A section that lists all the pages in the pages folder.
To pretty things up we may want to show images and/or descriptions for sites and pages.
The images and descriptions should be pulled from the image and description field the user enters when creating the new subsite or page.

Method No 1- Using the Table Of Contents Webpart

Note: Please read conclusion of this article to see why this solution didn't meet my requirements.

An obvious place to start is to see what we can do using the built in Web Part purpose built for our task.

The table of contents webpart provides a quick an easy method to display a Table of Contents. (Believe it or not)

It has cool features such as..

  1. Pick from which level to start the TOC
  2. Style your TOC 
  3. How many levels to show

More on the TOC web part can be found here and here

As we want this page to be a template with the contents starting from the current site we use SharePoint Designer.

Page templates reside in the same folder as Masterpages. 

_catalogs >  masterpage


To keep things seperated I have created 2 subfolders. Custom > Layouts and my new layout page is called WelcomeTOC.aspx.

I created this page by making a copy of one of the existing Welcome Pages.(I can't remember which but any layout will do)

I then added a TableOfContentsWebPart into the first WebpartZone. I'm not sure whether you need the ZoneTemplate tags.

<PublishingWebControls:TableOfContentsWebPart runat="server" 
Title="Table of Contents" 
MissingAssembly="Cannot import this Web Part." 
Level1Style="Vertical with descriptions">
<Level LevelNumber="1" Path="/Site1" Title="Site 1" BeginColumn="true">
<Item LevelNumber="1" Path="/Page1" Title="Page 1" />
<Item LevelNumber="1" Path="/Page2" Title="Page 2" />
<Item LevelNumber="1" Path="/Page3" Title="Page 3" />
<Level LevelNumber="1" Path="/Site2" Title="Site 2" BeginColumn="true">
<Item LevelNumber="1" Path="/Page1" Title="Page 1" />
<Item LevelNumber="1" Path="/Page2" Title="Page 2" />
<Item LevelNumber="1" Path="/Page3" Title="Page 3" />
<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:cmswrt="http://schemas.microsoft.com/WebPart/v3/Publishing/runtime" exclude-result-prefixes="xsl cmswrt x"> 
<xsl:import href="/Style%20Library/XSL%20Style%20Sheets/Header.xsl" /> 
<xsl:import href="/Style%20Library/XSL%20Style%20Sheets/LevelStyle.xsl" /> 
<xsl:import href="/Style%20Library/XSL%20Style%20Sheets/TableOfContentsMain.xsl" /> </xsl:stylesheet></Xsl>

The important thing to note here is the

AnchorLocation="" attribute.
This sets the starting location of our links to the current site.
Customising the layout

Customising the layout is similar to customising the layout for other web parts such as the RSS reader or Custom Query web part. You need to do some XSLT.

You can edit 3 files

  • Header.xsl
  • LevelStyle.xsl
  • TableOfContentsMain.xsl

These files reside in Style Library > XSL Style Sheets


You can read more info here -




Basically you can alter the layout but the TOC web part is very limited as it only outputs the @Title, @Description, @LevelNumber and@Path.

This is OK if you just want some basic text but this won't cover our needs to display a possible image for each site or page listed.

A neat trick for verifying this is to add the following to your XSLT transformation in the LevelStyle.xsl file.

This will output the raw XML in between the <rawdata> tags.

That way you can see all the data you have to play with. I suspect this will work in the other xsl files in Sharepoint.

   <xsl:template name="ShowAll" match="Level[@LevelTemplate='ShowAll']">
    <xsl:copy-of select="*"/>

When you view the source of your page you will something like..

<Item Description="I am happy to announce " LevelNumber="1" Path="/News/Pages/mypage.aspx" Title="Title of my page"></Item>

Further reading:
Customizing Styles of Summary Links, Table of Contents, and Content Query Web Parts

Webcoda, SharePoint Consultants & Web Development

SharePoint Development Sydney is a crack team of SharePoint Consultants and SharePoint Developers.

We can't tell you their names or show their faces on TV but if you need a SharePoint job done right, call them on +61 2 9370 3602 or email us at info@sharepointsydney.com.au

Persecuted by the Government and shunned by society they developed their SharePoint skills in back streets and labor camps where other programmers wouldn't dare to tread. 

During a trek through the Himalayas they stumpled upon the fabled Mossy Yak who shared his SharePoint knowledge of how to attain Nirvana through a series of Workflows and Event Handlers. Their mission is to spread this knowledge through-out the world to bring peace, harmony and document version control to all .


Month List