This CMS model represents way how will be created page content and sent to user internet browser when CMS receives HTTP request URI:
-
Route.
CMS receives request URI and HTTP method (GET, POST, etc.). Route process selects matching page item from list by URL and HTTP method.
Route invokes selected page authorization process. Page URL may contain RESTful paramters, ex. /some-url/:id - where :id is parameter.
Actual URI for this page will be /some-url/55 - where id=55. GET and POST variables are supported too.
KUSoftas CMS uses Slim as framework for router implementation.
-
Authorize. There may be logged on user or not in current internet browser session. Every logged user has its user ID and may have assigned groups (roles).
CMS have ability to assign special groups for logged on and logged off session state. Every page has permission attributes (read, write, exece, manage) defined via assigned user ID and assigned groups.
Authorization process compares current internet browser session user ID and assigned groups with page permissions.
If there is no sufficient permissions and user is not logged it will be used HTTP basic authentication form. Else message "Authorization denied" will be sent to internet browser as response.
Page permissions further will be used to authorize objects included into page,
ex. file manager folders and files will inherit permissions from page containing this file manager.
-
Include. Page has assigned to it main template. Each page may have different main templates assigned.
KUSoftas CMS uses Smarty as template engine.
If page have not assigned main template - default CMS template will be auto assigned.
Include process gets some predefined template variables which may be included into templates. Ex.: page title, page language code, user ID, request URI and etc.
KUSoftas CMS generate a number of CMS template variables to be used in page templates.
There are folowing items that can be included into page:
KUSoftas CMS will not pass include process for matching URI if CMS configuration have setting api="1". In this case attached to URL PHP function will execute instead.
It is suitable for RESTful API implementation.
You can start with KUSoftas sample site template prepared to be suitable for business company.