Each theme has its own folder.
One theme could contains a file named "theme.xml".
This file contains only some meta-data about the theme :
- Theme full name
- Author, version, etc...
The "theme chooser" only list the themes folder and, except for the folder named "admin", creates a select box with all the themes.
The theme chooser can read the theme.xml file and print the real name of the theme in the selectbox.
When the user choose a theme, the folder name of the theme will be stored in the settings table.
The current theme is a settings data alway accessible.
Each theme folder contains assets and views.
Yes.
When the user install Ionize, the DB stored theme is "default".
This default theme folder exists and is provided as example with Ionize.
The user can also choose "install example data" during the install process, so the theme will show some data.