Imported From: http://groups.google.com/group/in-portal-dev/browse_thread/thread/8d121d013eebf28f#
Administrative console have "Admin Skins" section, that allows to change how administrative console will look (colors mostly). Administrator is able to change any skin any time. We, as developers, also change default skin used for new installations.
Problem happens on upgrade, since we don't know how to merge our skin file with one, administrator have changed. During upgrade to 5.1.0 version without that merge we won't be able to see new upload progress bars near each file.
My idea *#1* was to add CRC field to skin table and keep track what CRC default skin has in each In-Portal version. This way on upgrade we could check, that skin's crc from database differ from ones, used in In-Portal version before upgrade and warn administrator about that.
Administrator will then have 2 options:
- ignore his skin changes and overwrite it from default skin;
- upgrade creates 2nd skin, named "Upgrade v X.Y.Z" and after upgrade administrator will manually compare changes.
Colors are pretty much standard and I'm more concerned about css template used.
My idea *#2* is to use patch like skin tracking system:
- we create patch files on each skin change (e.g. "skin_patch_502_to_503.patch");
- patch files will be pretty small, since we only have changed parts in them and we don't change skin much;
- during the upgrade, when "patch" command is available (or maybe we can figure out php script that does that) we apply patches
When there is patching conflict, then administrator should resolve it manually after upgrade is finished. We could also create skin named "Upgrade v X.Y.Z" with all administrator and our changes to he can verify that it works without breaking it's current skin.
Post your thoughts about this here.