Jump to content

Theme system: Feedback and issues


ehren.
 Share

Recommended Posts

Hello,

Due to the absence of a bug tracker, I figured the feedback area was appropriate.

I've been using the 4.x theme system ever since the 4.x beta's and have come across bugs that are seemingly fixed in one version, but broken a few updates later. After working with xenforo's theme system recently and failing to come across a single bug, I figured I'd report on issues with the IPS system so it can be brought inline with xenforo's success.

My theme setup is a standard Parent/Child setup. I have one main parent theme which includes all of my standard code found throughout my themes. I then create child themes which inherit all of the customized code, and occasionally have their own modified globalTemplate file and "theme.css" file, which is a custom css file. All other files remain untouched, which means I simply need to edit the Parent theme and all child themes inherit the updated code automatically.

 

Inherited template files:

The first bug I've found is related to unmodified template files in a Child theme, as shown in the following screenshot. All template files are untouched except for globalTemplate, however the icons indicate that numerous template files have been modified instead of inherited. Opening these "modified" files shows a revert button. Once clicked, it reverts the Parent file back to the default IPS code, which certainly isn't the expected result. Clicking the revert button (which technically shouldn't even be shown since the file is inherited) should revert the template file in the Child theme, so it matches its Parent. Put simply, from my understanding, those red icons should be green.

1437576885_ScreenShot2018-04-29at11_52_07am.thumb.png.2df8497a0fb07516a2f6fb1651b7ee9b.png

 

Upload new version:

Another issue which is constantly reported by my customers is the "Upload new version" feature. I have recently tried this myself and also came across the same issues as my customers. From what I understand, this feature should replace the currently installed theme with the freshly installed version, while retaining theme settings and any code inside custom.css. All other files (including custom HTML or custom css files) should be replaced with the new code. Reports from my customers indicate that some template files aren't replaced, which results in a broken theme and means a fresh theme install is the only solution. This is quite frustrating for my customers since they must reapply all of their old settings (colours, logos, etc), and their members need to reselect the theme from the bottom Theme menu if they've modified their choice in the past.

My experience of this issue happened a few moments ago, however it varies slightly to my customers. I was working on two forums:

  1. Site A has my Parent theme installed.
  2. Site B also has an identical version of the Parent theme, but it also contains a Child theme. The Child theme has a modified globalTemplate file and a modified theme.css file. For the sake of this example, lets assume I have removed the logo from globalTemplate, and I have added a red background to the site using theme.css
  3. I then edited one HTML file in the Parent theme on Site A. I wanted to transfer those changes to Site B, so I exported the theme from A and used the "Upload new version" feature on B.
  4. The Parent theme on B was replaced successfully (as expected). I then checked the Child theme. The globalTemplate file had correctly retained it's modifications (the logo was still removed - all good), however the theme.css file had been reverted back to the Parent theme.css file which means I had lost all of my previous (red background) customizations. Referring to my example from above: instead of having a Child theme with no logo and a red background, I now have a Child theme with no logo and a white background because my theme.css file was reverted after installing the updated Parent theme.

That may sound a little confusing to read but if you break it down step by step, it should be easy enough to understand. There seems to be a few issues with Parent/Child relationships and these issues may all be related in one way or another.

 

Designers Mode:

The requirement of enabling Designers Mode to create new theme settings is something which is unfortunately no longer a friendly option for me. My demo board had well over 100 themes at one stage, which means that enabling and disabling DM could potentially take hours, especially when all official IPS addons are installed. This means that even though I'd love to create new theme settings for my customers, it's no longer ideal due to the extremely time consuming nature. Contrary with xenforo, I simply enable their DM with one line of code and a "New setting" button appears in the ACP. If I add a new setting to the Parent theme, every Child theme also inherits the new setting. No template rebuilding is necessary, no time consuming processes, just a very easy way to add new settings - as it should be. Removing the line turns off DM, and everything is back to normal.

 

Export Child theme:

One final thought is the lack of an "Export child theme" option. IPB 3.x had this feature which was extremely helpful when managing a large amount of themes. Xenforo has this in both 1.x and 2.x, yet it has been removed ever since the initial 4.0 release for some reason. This means that once a Child theme is exported from a site, it can never be used as a Child theme again since it essentially becomes a Parent theme.

 

If any of the IPS developers have any questions, or if I've incorrectly reported something, please let me know. The IPS theme system has silently struggled with these issues for a while and these small fixes would be a good start in helping to push the theme system back on its feet.

Link to comment
Share on other sites

Was just about to post a topic very similar to this! I thought I'd add my own thoughts regarding parent/child inheritance.

When working, the inheritance model for HTML/CSS is pretty nice to deal with, but I'm disappointed that other aspects of the theme system don't have practical inheritance built in. This is relevant for settings and permissions, but particularly for resources.

The theme system copies over the parent's resources when the child is created, and then considers the job done. This means, if I later want to change a resource in my parent skin, that change will not filter down to any of the children, regardless of whether they've been modified on the children or not. Once you have more than a few skins, doing the legwork required to update resources in every skin individually gets old very quickly. The settings have a (not great) option to copy over to other themes, but resources has nothing as far as I know, and it (among other issues the early 4-series had with themes) has contributed to us having to remake themes after they go out of sync and things break.

I like the way the HTML/CSS system does inheritance, and I think it'd be really powerful to have fully-featured inheritance built into other theme stuff to really keep parents and children in sync with each other.

Link to comment
Share on other sites

On 4/28/2018 at 10:22 PM, ehren. said:

Upload new version:

Another issue which is constantly reported by my customers is the "Upload new version" feature. I have recently tried this myself and also came across the same issues as my customers. From what I understand, this feature should replace the currently installed theme with the freshly installed version, while retaining theme settings and any code inside custom.css. All other files (including custom HTML or custom css files) should be replaced with the new code. Reports from my customers indicate that some template files aren't replaced, which results in a broken theme and means a fresh theme install is the only solution. This is quite frustrating for my customers since they must reapply all of their old settings (colours, logos, etc), and their members need to reselect the theme from the bottom Theme menu if they've modified their choice in the past.

My experience of this issue happened a few moments ago, however it varies slightly to my customers. I was working on two forums:

  1. Site A has my Parent theme installed.
  2. Site B also has an identical version of the Parent theme, but it also contains a Child theme. The Child theme has a modified globalTemplate file and a modified theme.css file. For the sake of this example, lets assume I have removed the logo from globalTemplate, and I have added a red background to the site using theme.css
  3. I then edited one HTML file in the Parent theme on Site A. I wanted to transfer those changes to Site B, so I exported the theme from A and used the "Upload new version" feature on B.
  4. The Parent theme on B was replaced successfully (as expected). I then checked the Child theme. The globalTemplate file had correctly retained it's modifications (the logo was still removed - all good), however the theme.css file had been reverted back to the Parent theme.css file which means I had lost all of my previous (red background) customizations. Referring to my example from above: instead of having a Child theme with no logo and a red background, I now have a Child theme with no logo and a white background because my theme.css file was reverted after installing the updated Parent theme.

That may sound a little confusing to read but if you break it down step by step, it should be easy enough to understand. There seems to be a few issues with Parent/Child relationships and these issues may all be related in one way or another.

 

Designers Mode:

The requirement of enabling Designers Mode to create new theme settings is something which is unfortunately no longer a friendly option for me. My demo board had well over 100 themes at one stage, which means that enabling and disabling DM could potentially take hours, especially when all official IPS addons are installed. This means that even though I'd love to create new theme settings for my customers, it's no longer ideal due to the extremely time consuming nature. Contrary with xenforo, I simply enable their DM with one line of code and a "New setting" button appears in the ACP. If I add a new setting to the Parent theme, every Child theme also inherits the new setting. No template rebuilding is necessary, no time consuming processes, just a very easy way to add new settings - as it should be. Removing the line turns off DM, and everything is back to normal.

These 2 issues are one in the same. If you run designers mode all your changes need to be done in that specific 1st time. If you come back and run designers mode again, that changes which files was edited last. That's where the issue is. If you get it all right the first run, your customers will be able to use the up-grader but if you didn't and needed to go back, your customers changed files will then read it was not edited because it was not edited the last designers mode run. I've explained this several times. Unless IPB can figure out a way for designers mode to remember the changes in that specific version then we'd be good to go but DM is not remembering by version but by designers mode run.

 

On 4/28/2018 at 10:22 PM, ehren. said:

The requirement of enabling Designers Mode to create new theme settings is something which is unfortunately no longer a friendly option for me. My demo board had well over 100 themes at one stage

Yep.... tried to get someone to hear me on this also. I have a blazing very powerful local server, I can run through themes pretty quick, but not quick enough imo and now the converter has been added into the file dump and replace during designers mode runs adding more to the time yet.

As far as the parent child theme issue, that's a real issue and here's why imo. This is the way I want to go however, I like to install a new local version every time one comes out and transfer my themes all to that new version. I do not upgrade my local versions. That means I will lose all my parent child permissions and they no longer exist. When you transfer the themes into a new local version, they all act independent at that point instead of having a parent and the last time I tried this I couldn't even edit any custom html files because the theme was not the parent.

As far as time consumption, this is a very big issue for me. Waiting time and time gain to run my themes and wait is a pita to be honest. 

 

Link to comment
Share on other sites

On 4/29/2018 at 5:22 AM, ehren. said:

 

Upload new version:

 

I've also encountered some weird behaviour here, although I dont have any child/parent themes. I haven't really cared to investigate it much, but it seems that the first theme upload new version (after an upgrade) usually misses some things, especially if it does that thing where it asks you which version you want to keep... (even when no changes have been done between the previous upload and the new one)

So after every upgrade where I've made updates to the installed theme, I usually just upload as new version twice and then reset all cache. When I havent done that it has usually resulted in problems, but when I do it twice like that, it seems to go okay.

Edited by TSP
Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...