I had an experience of creating theme by manually creating a new folder ( of desired name for new theme) under
directory and then copy existing theme content to new theme folder and then finally make changes to required jspf, css, images as per business need.
But, creating a new theme by this approach doesn't come under best practice, because it requires you to export wps.war, update the war.war file and then again deploying the updated wps.war file.
So anytime if you want to make any changes, you will require to update and redeploy wps.war file.This made developing and managing custom themes and skins difficult.
Best Practise for creating custom themes and skins
With WebSphere portal 6.1, new themes and skins should be packaged in their own war file, or optionally ear file.Once you are done with packaging your theme into a war file, the theme war is deployed to WebSphere_Portal application server or cluster via WebSphere admin console.
So, here i am writing steps to create basic custom theme just to have header and footer. (You can later on enhance your theme as needed.)
1) In RAD, create a Dynamic Web Project.
2) Crate folder called themes and skins under webcontent
3) create html folder under themes.
4) create folder for your new theme ( ex:- MyTheme)
5) Create basic 3 jsp called Default.jsp, Header.jsp and Footer.jsp
6) Put your required css, images and js files on your file system and include them in your default.jsp.
( In actual dev, stag or prod portal, these css, images and js files should be placed on WebServer and then make change to path of img,css,js in default.jsp accordingly)
7) Put your header html section in Header.jsp and required footer html to Footer.jsp
8) Include, Header.jsp and Footer.jsp into Default.jsp.
9) Export your project as war.
10) Deploy war to WebSphere Portal Application Server.
( Be sure to select WebSphere Portal in "Map modules to servers" step.
Once it is deployed, start your theme application and if it's clustered env, don't forget to sync your nodes.)
11) Next step will require to tell portal about new theme.
Go to PortalServer/doc/xml-samples/DeployThemeFromWebModule.xml
Make changes to DeployThemeFromWebModule.xml and import it back to portal from Portal Administration.
12) Verifying new theme. You should now see you new theme entry inside Themes and Skins section in portal admin.
and that's it, you are good to go. Create a new page and apply your theme.
Feel free to post comment if you have face any trouble in creating and deploying custom theme.