Let’s start from creating a custom theme for MOSS 2007 and WSS3.0. Here are the steps :-
1) Copy the “WHEAT” folder from “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\THEMES” and paste it in the same folder. Change the new folder name to “Navdeep”.
2) Rename the WHEAT.INF to NAVDEEP.INF inside the “Navdeep” folder.
3) Open the NAVDEEP.INF file in a notepad. Change the [info]’s title from “Wheat” to “Navdeep” as shown in the following table :-
[info]
title=Wheat
codepage=65001
version=3.00 format=3.00
readonly=true refcount=0
title=Navdeep
4) Change the “Wheat” to “Navdeep” under the [titles] as shown in the following table :-
[titles]
1031=Wheat
1036=Wheat
1040=Wheat
3082=Wheat
1043=Wheat
1046=Wheat
1053=Wheat
1044=Wheat
1030=Wheat
1035=Wheat
1041=Wheat
1042=Wheat
1028=Wheat
2052=Wheat
1029=Wheat
1045=Wheat
1032=Wheat
1038=Wheat
1055=Wheat
2070=Wheat
1025=Wheat
1037=Wheat
1054=Wheat
1031=Navdeep
1036=Navdeep
1040=Navdeep
3082=Navdeep
1043=Navdeep
1046=Navdeep
1053=Navdeep
1044=Navdeep
1030=Navdeep
1035=Navdeep
1041=Navdeep
1042=Navdeep
1028=Navdeep
2052=Navdeep
1029=Navdeep
1045=Navdeep
1032=Navdeep
1038=Navdeep
1055= Navdeep
2070=Navdeep
1025=Navdeep
1037=Navdeep
1054=Navdeep
5) Open the “ C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\1033\SPTHEMES.XML “ and add the following code :-
<Templates>
<TemplateID>Navdeep</TemplateID>
<DisplayName>Navdeep</DisplayName>
<Description>Navdeep has a golden background with brown control areas.</Description>
<Thumbnail>images/Navdeep.gif</Thumbnail>
<Preview>images/Navdeep.gif</Preview>
</Templates>
6) Paste the Navdeep.gif file at the images folder i.e “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\IMAGES”
7) Do an IISRESET and Go to Site settings -> Site themes.
In one case, in a newly created theme and “theme.css” has been hard coded the OOB web parts. Here is the sample example :-
/* this gives every web part a white bg*/
#MSOZoneCell_WebPartWPQ1,
#MSOZoneCell_WebPartWPQ2,
#MSOZoneCell_WebPartWPQ3,
#MSOZoneCell_WebPartWPQ4,
#MSOZoneCell_WebPartWPQ5,
#MSOZoneCell_WebPartWPQ6,
#MSOZoneCell_WebPartWPQ7,
#MSOZoneCell_WebPartWPQ8,
#MSOZoneCell_WebPartWPQ9,
#MSOZoneCell_WebPartWPQ10,
#MSOZoneCell_WebPartWPQ11,
#MSOZoneCell_WebPartWPQ12,
#MSOZoneCell_WebPartWPQ13,
#MSOZoneCell_WebPartWPQ14,
#MSOZoneCell_WebPartWPQ15,
#MSOZoneCell_WebPartWPQ16,
#MSOZoneCell_WebPartWPQ17,
#MSOZoneCell_WebPartWPQ19,
#MSOZoneCell_WebPartWPQ20,
#MSOZoneCell_WebPartWPQ21,
#MSOZoneCell_WebPartWPQ22,
{
background-color:#000;
padding: 10px;
font-size: 10pt;
}
NOTE :- MSOZoneCell_WebPartWPQ1, MSOZoneCell_WebPartWPQ2 etc are client side ids for the web parts DIV.
Because of this modication, OOB web parts get the new setting but the custom web parts didn’t get the same look and feel. To workaround this, we have done the following changes :-
1) Created a new class named “Navdeep” in the theme.css file :- .Navdeep{
2) Added the following javascript in all the custom web parts :-
protected override void Render(HtmlTextWriter writer)
string elementID = "MSOZoneCell_WebPart" this.ClientID.ToString();
writer.Write("<script language='javascript'>var obj = document.getElementById('" + elementID + "'); obj.setAttribute('className','Navdeep');</script>");
base.Render(writer);