Patrick's CMS

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.

Information

Page last modified: 10 February, 2024