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.
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:
Site A has my Parent theme installed.
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
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.
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.
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.