superMicro CMS load order
Version 5.3, February 2024
superMicro CMS does not use a database. It works like this:
Every page begins with a small PHP file named with the title of the page when it's first created. An example might be mypage.php. The file is an 'object' for the page. It loads html.php and creates a 'class' which (i) references it as the template with (ii) a text file of the same name – the 'property'. The text file contains all the content and there is one per page. The file load order (the 'template') assumes mypage.php and mypage.txt exist. This same template is used by every page you make. The load order is:
mypage.php loads html.php
[ start html.php ]
(1) error-reporting.php (optionally reports errors) loads:
— inc/settings.php
— inc/functions.php
(2) Gets pages/mypage.txt (output in content.php)
(3) lang.php loads:
— inc/languages/en.php (French, German & Spanish dropped)
(4) top.php loads:
— ppp.php (if passworded)
— stylesheets.php which loads:
—— css/common-g.css
—— css/stylesheet.css
—— css/mobile.css
—— css/extra.css
— extra-head.php (Open Graph etc)
(5) extra-body.php (Facebook Share etc)
(6) menu.php loads:
— inmenu.txt
(7) content.php after login-form.php if passworded
content.php does a lot of filtering with functions.php and settings.php
content.php loads:
— pages/mypage.txt (main page content from html.php)
— extra-content.php which loads:
—— js/slides.js
—— js/simpleToggle.js
—— js/read-more.js
—— extras/mypage.txt (if extras)
—— comments/mypage.txt (if comments)
—— form.php (if commenting open) which loads:
——— filter-email.php (if commenting open) which loads:
———— stopwords.php
— history.php (if history)
(8) footer.php loads:
— tracking.php
(9) 404.php (if pages/mypage.txt not found)
[ end html.php ]
All the PHP files in /inc/ are referred to above except prelims.php which is loaded in e.php (the optional contact form) and s.php (the optional search page), mainly to efficiently load error-reporting.php and lang.php for those two pages.