Intervening to Switch a Skin

by George Lee last modified Dec 30, 2008 03:05 PM
A summary of the main ways you can intervene in Plone's skin-choosing process, 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.