Intervening to Switch a Skin
With all these variables and steps, you can intervene to switch the skin in many different ways. (In the below list, sibling items represent different alternatives.)
- (1) Encode a skin in the SKINDATA variable ...
- (1A) Call object.changeSkin('mySkin').
- (1B) Manually modify the SKINDATA variable.
- (2) Add a 'portal_skin' property to the REQUEST object ...
- (2A) Add a cookie 'portal_skin' ...
- (2B.i) On the user's personal preferences page, update the 'portal_skin' property (which autoamtically creates the cookie). In order to enable this, you must enable an option on the portal_skins tool using the Properties tab in the ZMI.
- (2B.ii) Update the user's
'portal_skin' property manually, then manually call
portal_skins.updateSkinCookie(). It is not necessary to enable the ZMI
option to change the 'portal_skin' property with Python code outside of
the personal preferences page.
- (2B.iii) Create a cookie manually.
- (2B) Add 'portal_skin' as a simple string attribute.
- (3) Set the default skin in the portal_skins tool, using the Properties tab in the ZMI.

Author: