Poll

Should Wedge remove theme support, if it provides an equivalent feature set through skins?

Yes! Focus on what you know best, and let us break it or make it.
17 (73.9%)
No! I'm too familiar with the theme system, I don't want to re-learn it all.
0 (0%)
I don't really care. I never played with themes, or skins for that matter.
1 (4.3%)
I don't know enough about it all to have anything interesting to say.
5 (21.7%)
Total Members Voted: 22

Nao

  • Dadman with a boy
  • Posts: 16,063
Re: One theme to rule them all?
« Reply #15, on November 12th, 2013, 08:23 PM »
Quote from Bloc on November 12th, 2013, 08:02 PM
lol, fun times it seems, for you removing that. :)
Yeah... I'd rather be watching some shows, I guess, but the TV's still taken... :^^;:
Quote from Bloc on November 12th, 2013, 08:02 PM
About series, I like some of them you mention, but most of them is too light for me , Agents of Shield was promising, but now I just see it of curiosity.
Yeah. The last couple of episodes were better than the first, so IMHO it gets better after the first 3 which basically lacked any real energy, after all, the first few episodes of Dollhouse and Angel sucked, and Whedon still managed to get a few great episodes into both of these.
Still, if they have to rely on a Samuel Jackson cameo to make it exciting, well... ;)
Quote from Bloc on November 12th, 2013, 08:02 PM
Person of interest is kind of silly, true..but I love the characters in them, well, most of the time. Spader acting I am mostly unaware of, apart from the old Stargate movie, but then I rarely watch cop series anyway, so Boston legal I haven't seen.
Boston Legal was a fantastic show. It was a perfect blend between The Practice (serious trials), Ally McBeal (quirky character relationship between Spader and William Shatner, two political opposites attracted to each other), and David E. Kelley's agenda: the show was very much about society issues, not really murder trials or anything like that. Most of all, it was really, really funny. I dropped the show after season 3, but it was mostly because of a lack of time; maybe I should watch the last couple of seasons one day.
Quote from Bloc on November 12th, 2013, 08:02 PM
Sherlock is great, look forward to new season, others I follow now are CSI and Supernatural, still exciting!
Never tried them. Supernatural looked like a teen show to me... Like Vampire Diaries, etc. CSI, anything that tries to abuse the viewer's lack of IT/tech knowledge really, really upsets me.
Quote from Bloc on November 12th, 2013, 08:02 PM
but I started and ended alot of series..lately i saw Broadchurch though, that was a keeper.
I'll take note of that. Seems to be written by a Torchwood/Dr. Who writer that I knew about (he wrote quite a few episodes I loved in both shows). And Utopia looks interesting, too.
Quote from Bloc on November 12th, 2013, 08:02 PM
but did you know about another, similar but less bloody, called "Les revenants"? :D It was slow at first(well, first episode was quite fascinating), but it soon got me hooked all the way in. And yes, its indeed true what they say about french girls :) Look forward to second season of that too.
'course I heard about it, after all we don't often get good shows produced in my country... :lol:
I'm sad that Les Revenants gets to become popular outside France when Kaamelott, which is such a stunning show (started off as a cheap, short comedy show and ended as a full-length comedy-drama show with a large budget), is barely ever heard of.
I guess I try to avoid most French shows because 90% of them are really bad. The last one I liked that isn't Kaamelott, was "Bref" ("In short..."), a very short one (90 seconds per episode), but it'd probably lose too much in translation. It's one of the most original shows ever, though. Not only in France. A bit like Fight Club, come to think of it. Well, you'd need to see the show to understand what I mean.
Okay, apart from that, not much that stands out. Oh, I did like a couple of thriller TV movies adapted from Fred Vargas. I doubt they're available in English, though. There's also "Fais pas ci, fais pas ça", it's a very funny comedy, but they sold the rights to the US a few years ago, and they made a remake called, ahem... "Modern Family". It's not widely known that it's adapted from a good French show, but it's the truth. They only added the gay couple, the rest is the same.
Quote from Bloc on November 12th, 2013, 08:02 PM
My bitbucket account is bloc67 - I think you mentioned it a bit back.
All right, added you! Apparently, you're the last slot available, so I won't have to have you create a new account.
Quote from Bloc on November 12th, 2013, 08:02 PM
As for the fixed header..uhm, I haven't even checked on mobiles yet. I might get rid of it again, its a fad really, maybe not worth doing "hacks" for it. I'll make my mind up soon hah. :)
It looks good and all, though! But usability-wise, it lacks interest. Only single-line fixed headers have a modicum of interest in general.
Re: One theme to rule them all?
« Reply #16, on November 13th, 2013, 12:02 AM »
Update: finally got my skin to show up.. There are still plenty of problems (JavaScript not loaded, etc), but it's an important step for me.
I'm trying to document (internally) all of the steps required to make the conversion. This should help me here once I convert wedge.org, and maybe for Pandos, too, but other than that, it doesn't matter much. I think!

OTOH, if I can't get TortoiseGit Blame to work correctly for me, it may all have been for nothing, I don't know. I don't know if I can imagine working on a project where the history isn't available to me because of a software bug... :-/
Re: One theme to rule them all?
« Reply #17, on November 13th, 2013, 08:23 PM »
An update...

- Continued removing theme-related elements.
- Enabled ability to override a template entirely within a skin. Just create a sub-folder called 'templates' in it. As easy as that... So, basically, the main feature in themes is back, really.
- Removed theme-related settings in index.template.php, because who cares. Most of them were already removed.
- Flattened the skin folder. Instead of something like...

/skins/
/skins/Wilde/
/skins/Wilde/Wilderless/

You'll now have:

/skins/
/skins/Wilde/
/skins/Wilderless/

This makes it easier to 'spot' updated files, and/or update all skins manually, etc. And of course, easier to add custom folders, eh. However, it's going to be only for templates right now. I'm planning to add support for languages later, but 'images' is more complicated. The current implementation in themes is very, very messy and confusing. I'd rather not touch that. Plus, the images that count (which skins might want to 'override') are already defined by CSS and can be replaced easily.
Wilderless is seen as a child of Wilde by adding a 'parent' option pointing to Wilde.
However, I'm having trouble getting it to work fine, ah ah...

Overall, I'm starting to get worried about the fact that Wedge will be very buggy for the days to come. Maybe even months to come... There is so much to remove! (And also, so much ugly theme code that I'm thrilled to remove!)

Meh...
Re: One theme to rule them all?
« Reply #18, on November 13th, 2013, 10:51 PM »
Update...

Everything is working, AFAIK. Skin selection probably fails; skin selector shows a flattened view.
There are probably tons of things to fix, but phase 1, "getting the HTML, CSS and JS to work", is pretty much done.

I had to add hacks to the skin parser, though, and I hate that. Hopefully, I won't keep that too long...
Re: One theme to rule them all?
« Reply #19, on November 14th, 2013, 12:49 PM »
Update.

Sadly, I've decided to throw away all my work (or close to), and start again from the original folder structure.

The main reason is that I was starting to turn crazy, with all of the code that needed to be removed.

So, I will instead:
- Do a slightly softer structure change (no renaming of Sources to sources, so that I can keep blaming these files without trouble; renaming of Themes/default/skins to Themes instead of skins),
- possibly give up on the term 'skins' to just use 'themes' instead (internally, I'll still have both), but the jury's still out on this one.
- And, still keeping, ONLY at the beginning, most theme code in. I need to be able to do incremental commits, otherwise I'll just turn crazy again. So, for instance, Wedge will simply consider default_theme_url and theme_url to be the same as skin_url, etc... Then, in the longer term, I'll just remove default_theme_url and theme_url, etc.

That's still a lot of work, but it'll be worth it. I'm sure it will. Seriously, theme code is incredibly confusing, it's nice that I'll be able to remove that.

Oh, and I've decided to drop <name> params in skins. The skin will now be named by its folder, so that people can easily rename their folders to rename their skins, and not risk name collisions when updating the site with a new zip.

Re: One theme to rule them all?
« Reply #20, on November 14th, 2013, 01:14 PM »
Y'know, I started something similar for Protendo, renaming and changing that is..but it was too much work lol.

But, I have actually made folders = name, same as you have done. Also, Protendo just reads all theme folders at startup, then check if its installed and show the thumbs so one can see what theme it is easily. Those that are not installed will have a install checkbox.

You are right - themes are a real confusing feature in SMF, even if I spent most of my time with them, I still have lots of things I want to change internally. It just shows that the theme feature was a highpoint from Unknown - but less attention have been given to it since(internally that is).

But I have not the patience for rewriting that from scratch, so change bits in turns. :)

On another note: I have installed and tried out Wedge latest. I have to be honest though, its quite another way to work for me. I am not sure where the border between whats user-adjustable, whats auto-generated and whats left to a themer in the skins/themes code. Of course, the skins and its css..but the skeleton, if you change that in a theme, what are the chances it will not be changed by a plugin or the core..or the user? It seems, to me, and pardon me again for being forward :) that theres less "to do" for a themer other than provide the "look" of it. Maybe shift things around - but thats as much the job for the admin as for a themer. This is a bit difficult atm..but I will persevere in it, although it may take some time to then come up with good designs - without being too much alike each other. ;) Thats my drive in it anyhow, it may not be that for others of course.

Nao

  • Dadman with a boy
  • Posts: 16,063
Re: One theme to rule them all?
« Reply #21, on November 14th, 2013, 02:54 PM »
Quote from Bloc on November 14th, 2013, 01:14 PM
Y'know, I started something similar for Protendo, renaming and changing that is..but it was too much work lol.
Yeah uh? ;)
But it's just a matter of taking the time to do it, and try to do it portion by portion, even if it means breaking everything for a while.
My original restructuring helped me see what should be done, and in what order, for a better result. Not that I'm going to achieve it this time, but... I'll do my best.
Quote
But, I have actually made folders = name, same as you have done. Also, Protendo just reads all theme folders at startup, then check if its installed and show the thumbs so one can see what theme it is easily. Those that are not installed will have a install checkbox.
See, themes need an ID, which is silly. There's not much of a need for that, except, maybe, for theme-specific options. I believe it's just simpler to get rid of these, and expect skins to simply hide things they don't want through CSS, and the extra HTML that doesn't show up... Well, the user can still force it to show up, through a custom local CSS file, but that's only for Opera and Firefox diehards... :lol:
Quote
You are right - themes are a real confusing feature in SMF, even if I spent most of my time with them, I still have lots of things I want to change internally.
Back in 2007, I was mostly a 'theme tweaker', that's how I learned to work with SMF, and I found it overwhelming. I appreciated that I could have my own theme folder, but that meant giving up on SMF updates, so it was a complicated relationship. Wedge skins are designed so that you don't HAVE to include an index template and redo everything. Well, I don't think SMF themes require an index template either, but anyway, all of the officially shipped themes are an index template, so it was confusing. Wedge will ship with just CSS files, and no custom templates. But to replace a template, you'll be able to simply add a 'templates' folder to your skin, and move any template file there. CSS files, though, need to remain in the root of the skin folder, because it's where the main attention is, really. For now. :P
Quote
It just shows that the theme feature was a highpoint from Unknown - but less attention have been given to it since(internally that is).
Certainly.
Quote
On another note: I have installed and tried out Wedge latest. I have to be honest though, its quite another way to work for me.
Yes, it sure is. But you can start by redoing templates (well... Once I get started on importing the ton of code I wrote yesterday for my restructured version), and then see where you get from there.
Quote
I am not sure where the border between whats user-adjustable, whats auto-generated and whats left to a themer in the skins/themes code.
It's designed not to have a clear border... :P
Auto-generated content, there's not much... A few callbacks in Subs-Cache (smileys, language flags, admin icons), and I think that's all. No more than 3 or 4 items.
Quote
Of course, the skins and its css..but the skeleton, if you change that in a theme, what are the chances it will not be changed by a plugin or the core..or the user?
There's always a chance, of course, but it's why I implemented a concept of priority. i.e., skeletons get to dictate the 'original' layout of blocks. Then, skins can also rewrite these with skeleton operations (see Subs-Cache, or just the Warm folder for a full documentation on all skin features -- it's the only thing that's thoroughly documented so far, so use and abuse it!), then plugins can also rewrite through the skeleton API (wetem::my_operation), and this is where it gets fun: either the plugin absolutely needs to do something in a certain place, and it says so (in which case, if the layer or block was removed, Wedge won't show anything), or it has a preference for a certain place, but wouldn't bother much if this was moved elsewhere, as long as it's shown, so it can specify multiple targets, and it should show up eventually.
That's the why I tried to satisfy both modders and themers, and believe me -- not easy.  I can still add steps to these, but I'm limited by what I'm actually using in my own system -- there are usually several ways to do a single thing, it's up to the author's preference. I do things my own way, but sometimes, sometimes I probably don't see the bigger picture. I'm flawed, but at least I know it.
Quote
It seems, to me, and pardon me again for being forward :) that theres less "to do" for a themer other than provide the "look" of it.
I don't know. Of course, being the author of this complicated system, I guess I can create a new skin and do something completely silly with it in less than 10 minutes, without modifying any CSS or HTML.
Quote
Maybe shift things around - but thats as much the job for the admin as for a themer.
And how does SMF fix that? They're not, AFAIK... The admin has to install a mod & a theme, and hope that they behave correctly together.
Quote
This is a bit difficult atm..but I will persevere in it, although it may take some time to then come up with good designs - without being too much alike each other. ;) Thats my drive in it anyhow, it may not be that for others of course.
As I said, I'm willing to have at least a skin of yours in Wedge core, and I'd be satisfied if it was as removed as possible from my own 'habits'. I've seen you experiment a lot, and I like the idea that skins are so short that you can afford to do strange things that won't systematically break.

Regarding core, Wedge will definitely ship with Weaving and Wilde. Wine will probably be distributed as a separate plugin 'for fun', as well as Warm. Wuthering will almost certainly be deleted entirely, because it was just a draft for Wilde, and originally a use case for 'nested skins', but Warm can do that as well. Regarding Weaving, I find it to be too complex, so I undertook a simplification of its CSS, got started a few days ago but stopped my work when I figured I should probably remove themes first. Weaving's goal is to remain 'usable', while refraining from using graphical additions to the DIVs around there. For instance, the linktree is very simple in Weaving, so I'm okay with that one, but the cat/title elements are already too 'busy'. This is actually the first thing I redid locally, lol... Removed a third of my cat/title CSS, just like that. I think Weaving can still look good as long as some care is given to the page header. It needs to be 'striking' in order to at least catch some attention. Maybe the Wine (or Warm) header is well suited for that. Or maybe Wilderless's. I don't know.

Anyway, just my 2 cents (and 2 years of work)... ;)
Re: One theme to rule them all?
« Reply #22, on November 15th, 2013, 12:20 AM »
I'm 95% finished with moving theme options to settings.

It's just funny that I realized only today that I'd completely forgotten about the difference between member options, theme settings and things like that.
Basically:
- the settings table has site-wide features. That, I know.
- the themes table has both theme-wide settings, and member-specific options. That, I knew enough.

Only, id_member in the theme table can be one of three:
- "-1" seems to be "guest options",
- "0" seems to be "default member options". It's also "theme-wide settings", such as theme URLs. This is a confusing aspect.
- id > 0 is "current options for this member ID".

I'm going through the code, trying to analyze it... There are things that leave me puzzled (for instance, Register.php has $_POST['options'] and $_POST['default_options'] handling, but I've failed to find anything like that being shown at registration), and others where I feel completely out of touch.
Another example... 'view_newest_pm_first' is set to 1 for the theme settings, i.e. id_member = 0, so I'm guessing that it becomes the default setting both for guests (which don't have PMs...) and users. There is no interface to change that setting that I know of, as it's not in Settings.template.php -- but it IS in Admin > Member Options > Options (or Settings, or Preferences, can't remember the English word), which is a page that lists the member defaults. Did I say confusing...?
Then how am I supposed to change the default, short from modifying it in the database?
And my favorite has to be 'posts_apply_ignore_list', which is applied to id_member = -1, that is, 'default for guests'. Guests can't have an ignore list... So this doesn't serve any purpose. Even SMF 2.1 and ElkArte still have this one.

I'd be very, very grateful if someone 'in the know' could share their thoughts about this system, and clear up any confusion I might have. It's really a good thing that I'm eliminating the 'theme settings' page, but I don't want to eliminate any possibility of setting 'default options' for members and/or guests.
Of course, you find another layer of complexity when you start moving show_avatars to the general settings, and modify the code to basically mean, "if I allow show_avatars in settings, the user can determine whether they want to see them or not through their profile. If I disallow show_avatars, then the user won't even see that option in their profile." It's 'working', but it's not really a generic setting any more, to me.

I really, really need to go to bed I think...... -_-
Re: One theme to rule them all?
« Reply #23, on November 15th, 2013, 11:13 AM »
It's a really, really good thing I decided to drop my ongoing work of changing folder structure, because I needed more work than I expected on the code side.
It's more than that, though. Just earlier, I had a look at the Noisen admin area (it's still running SMF 2.0), and was just 'thrilled'. It turns out that what I believed was true: there WAS a 'default member options' tab in SMF, it was just removed (quite certainly by Pete) in Wedge, and I don't know what the equivalent is.
As I told you, I never worked much on the admin area; I left it entirely in his hands while I was focusing on user experience. But now that I need to do this one admin experience thingy, I realize that the admin area went in a completely different direction that what I'd expected.
In fact, the real fun starts here: in the general settings area, Wedge has only a handful of options, while Noisen has tons of them. Pete actually moved them away, in the name of 'thematic grouping', while I consider that this area should hold everything that the admin might want to change as soon as they install the software. I guess it's a clash of concepts, but in my case, it's very bothersome.

I'm trying to think of what I could do about it all. But it's clear, by now, that neither the old SMF developers, nor Arantor, were thorough in their writes/rewrites. If anything, it's all very confusing, even for someone skilled in SMF/Wedge development like I am.
Perhaps I should remove the themes table entirely, and store user options in their members->data table. It would make it harder to force all member settings to something, but I'm not sure there's even a point in that. What would matter more, I think, is if I could enter someone's profile (on their behalf), and change some of their setting(s), if they requested it of me, the admin. Not ideal either, but what is?

Sara

  • Walking Contradiction
  • Posts: 41
Re: One theme to rule them all?
« Reply #24, on November 15th, 2013, 01:09 PM »
That sounds like one big, stinky kettle of fish. :(  There were only two times I ever had to "hard force" settings onto all members; one, change avatar size and two, changing a default theme to something else and wanted everyone using it.  I don't know if those are good examples in relation to your current conundrum or not.

Nao

  • Dadman with a boy
  • Posts: 16,063
Re: One theme to rule them all?
« Reply #25, on November 15th, 2013, 01:20 PM »
Avatar size isn't a theme option, it's a general setting, so that's okay.
Theme changing options, yep, that one's staying anyway... ;) It's in a different page, and it's handled differently.

Okay, I think I found out why I couldn't change member defaults. It's actually there in the code, but it doesn't execute on my local install. Something was broken in yesterday's update, and I haven't had time to look into it. It's just a JS issue, so don't bother with my remark about default options being f*cked up.
Re: One theme to rule them all?
« Reply #26, on November 15th, 2013, 04:04 PM »
So, err... Suggestion!

- Get rid of the themes table entirely.

- Turn the settings table from a (variable, value) table into a (variable, value, can_override) table where 'can_override' is an ENUM ('never', 'yes', 'no'), set by default to 'never'. 'never' means that it's a generic setting for the forum, while 'yes'/'no' is a setting that depends on the user's taste. If the admin decides that they want the forum to be as free as possible, they'll set all of these variables to 'yes'.

- User can then access settings that are flagged as 'yes' from their profile, and change these settings. These are then stored in a special variable in their data field of the members table.

- User then loads $settings from the file cache; then loads the data field, unserializes the variable lists, and quite simply replaces existing $settings variables with their overrides. That way, for instance, $settings['view_newest_pms_first']'s value would be set by the user. (Well, technically it'd probably be in $options, but I have yet to decide whether it's best to split {db_prefix}settings variables between two arrays depending on their can_override=never status, or if they should be grouped together.

What do you think, guys..?

The only place where I see potential problems is enabling users to change $settings from their profile, which means centralizing all of the ex-theme variables into one file. (I think most of these are/were in ManageSettings.language.php and Themes.language.php, so it's doable.)
Also, managing 'special' variables like anything that's not a textbox or a checkbox, of course... But I can look into that.

Oh, and the fact that it makes my 'get rid of themes' chore a little bit longer than expected, but... Then again, I've seen worse delays ;)
Re: One theme to rule them all?
« Reply #27, on November 15th, 2013, 04:46 PM »
I forgot to mention one other 'advantage' of this technique...
One could add an option to a specific skin, saying something like this.

<option><var override="view_newest_pms_first">1</var></option>

That would still allow a 'theme' to have theme variables. I'd have to decide whether they can override non-overridable variables, though, and if their own setting can be overridden by users later on. Fun times... :lol:

Still, I think it's an interesting implementation I'm going to have.

Sara

  • Walking Contradiction
  • Posts: 41

Re: One theme to rule them all?
« Reply #29, on November 16th, 2013, 12:08 PM »
Yes, the themes table have been troublesome for many..not the least when trying to figure out what setting is stored where.

I haven't done anything about it, in Protendo, but I use settings table for overall options and member options in the themes table, mostly due to the SMF functions putting them there. As long as themes are a vital part for me, I won't change it. I think lol.

Wedge clearly needs some cleaning up if skins are to be the "themes" so "go for it" from me 2. :)