Proposal: child themes
Posted: Fri Aug 20, 2010 2:47 pm
Backwards compatibility has always been a strong suit of s9y, and on some level, I think that's a good thing. But there are some areas in which backwards compatibility will be (or already is) an issue. Since we always cared about not breaking the whole thing for some small feature, we should probably look for workarounds.
"My" area of contribution is frontend templates, which is an area in which s9y is already way behind in my humble opinion:
* We have a default template which is ridiculously outdated, but cannot be changed easily because it's the fallback template. There are quite a number of templates which rely on this theme's .tpl files. (It also includes an admin template which is very frustrating to style because large parts of it are hardcoded, but that's a different subject, I guess.)
* We have a standard template (Bulletproof) which is widely appreciated, still more or less up-to-date in terms of markup and very user-friendly. Unfortunately, it's not a good starting point for template development because the code is, well, not exactly manageable if you're not Don or me.
Of course, one can simply change all the files from /templates/default/ to their liking, but that's not very smart since it's a lot of work to do for every single theme.
Possible solution for this: A concept I stumpled across in that other blog engine -- child themes.
Any theme could have a "parent theme" which it would use as its "personal fallback". That way, some themes could keep the current default as their fallback, templates based on BP could be done just the way the mt-* themes work now (some images and a stylesheet, although I haven't really thought that through), others could use a "new default" etc. It should also not be possible to install a child theme if the parent theme isn't present for some reason. And since there are currently no themes which don't use /templates/default/ as a fallback, /templates/default/ could simply be the "fallback fallback", if that makes any sense.
I have more ideas for themes up my sleeve, but this seems to be the most important one because it would give s9y theme development a whole new perspective. Of course, I have no idea whether this would be easy to implement or could implement it myself. Maybe it's even a stupid idea for some weird reason I haven't thought about.
So what do you (coder) guys think? Garvin?
YL
"My" area of contribution is frontend templates, which is an area in which s9y is already way behind in my humble opinion:
* We have a default template which is ridiculously outdated, but cannot be changed easily because it's the fallback template. There are quite a number of templates which rely on this theme's .tpl files. (It also includes an admin template which is very frustrating to style because large parts of it are hardcoded, but that's a different subject, I guess.)
* We have a standard template (Bulletproof) which is widely appreciated, still more or less up-to-date in terms of markup and very user-friendly. Unfortunately, it's not a good starting point for template development because the code is, well, not exactly manageable if you're not Don or me.
Of course, one can simply change all the files from /templates/default/ to their liking, but that's not very smart since it's a lot of work to do for every single theme.
Possible solution for this: A concept I stumpled across in that other blog engine -- child themes.
Any theme could have a "parent theme" which it would use as its "personal fallback". That way, some themes could keep the current default as their fallback, templates based on BP could be done just the way the mt-* themes work now (some images and a stylesheet, although I haven't really thought that through), others could use a "new default" etc. It should also not be possible to install a child theme if the parent theme isn't present for some reason. And since there are currently no themes which don't use /templates/default/ as a fallback, /templates/default/ could simply be the "fallback fallback", if that makes any sense.
I have more ideas for themes up my sleeve, but this seems to be the most important one because it would give s9y theme development a whole new perspective. Of course, I have no idea whether this would be easy to implement or could implement it myself. Maybe it's even a stupid idea for some weird reason I haven't thought about.
So what do you (coder) guys think? Garvin?
YL