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.
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.
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
Do an IISRESET.
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>
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.
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.
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.
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.
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.
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!
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/18.104.22.168__1f131a624888eeed/Resources/
(ListConfig as opposed to Config.xml as most content is kept in Lists. Lists, Wikis, Blogs, etc. are Sharepoint Lists)
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.
The mission: Create a default landing page for each publishing site to aid in navigation.
The landing page should contain 2 sections.
- A section that lists all sites directly below the site you are on (1 level)
- 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..
- Pick from which level to start the TOC
- Style your TOC
- How many levels to show
More on the TOC web part can be found 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.
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
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
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']">
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>
Customizing Styles of Summary Links, Table of Contents, and Content Query Web Parts