Author Topic: A brief look into theme_info.xml  (Read 57621 times)

Offline BryanD

  • SMF Friend
  • SMF Super Hero
  • *
  • Posts: 22,149
  • Gender: Male
A brief look into theme_info.xml
« on: January 21, 2012, 08:53:53 AM »
After a recent discussion in the team boards we realised that the theme_info.xml has never truelly been explained.

A lot of what some people thought others thought differently.  So with this we make this post.

First of all we have the name element:


Hopefully this does not need too much explanation, this is where you place the name of your theme, not your name but the themename.

The author element is next (<author></author>) in themes from the team we see it as:

Code: [Select]
    <author name="Simple Machines"></author>
You do not need to include the name attribute but it is a nice cosmetic thing, and if you don't have a website or email you wish to advertise, well your profile link on Theme Site is always a nice place as people can see what other themes you have done.

Website is next, this is more cosmetic one (<website></website>) if you don't have a website of your own then you are more than welcome to keep it as default value.

So far all the above are the same no matter what SMF version you code for, but the next element is layers (<layers></layers>) this is the only element that varies depending on the smf version.  So as per the layers topic that I created in 2008 (Theme Authors:SMF 2 Layers for Theme_Info.xml)

for 1.0.x to 1.1.x  the layers must say:
Code: [Select]
   <layers>main</layers>and in 2.0.x the layers must be:
Code: [Select]
This is luckily never much an issue but it's still an important one for those updating themes to 2.0, whats also important is that if you are clever enough that you can add more layers you should know this.  However it would require source coding changes to make new layers.

Ok now we are at the final 3 and 2 of these are the most common ones with issues, so lets take the less common one first (out of the common 2).  We shall look at the version element (<version></version>).

The version element is designed to show what version of SMF the theme is designed for, not what theme version it is. Theme version unfortunatley is not a feature we have but it is one we are looking into. 

The most common one is the id element (<id></id>) this should be in form of username:themename so if I were to create theme called Remote Control I would have runic:remotecontrol

Note here we have no spacing, no caps just plain simple text, ok capitals are fine, but spaces, these are no no in this element, system doesn't like them, so you could do runic:remote_control or similar.  Just no spaces  One thing that people forget is that when you create a new theme via admin panel it creates the id element with the username as smf.  Please can we ask that if you wish submit a theme then look at this will stop one issue being brought up.

Finally we have based on (<based-on></based-on>), firstly this one has caused a lot of scratching heads specially recently in the uber top secret world domination meetings.  This has been an interesting one, until recently we were under the impression that this was more to do with creditation, however with thanks to new eyes it has been brought to our attention it actually does more and will call on files from the theme mentioned in the based-on tag if its installed.  This we do wish to apologise on, as this was never realised until now. This also shows you on why proper documentation is important.

Thank you for reading if you have any questions please do not hesitate in asking.
Former Project Manager and Customizer of SMF
Former Marketing and Vice-President of Simple Machines