The basics
Let's have quick glance at how a simple site is created.
Define a site structure
Let's assume you have already set-up and configured your webserver in the basic configuration, see setup. A single file is used to define the entire site structure - the menu.ini
located in the /include
folder.
menu = {
index = 1 // state this page is an index page
id = index // page unique id
page = html // name of the page template (assumes .html extension)
container = index // name of the governing container (assumes .php7 extension)
}
The above is everything you need to create a working website from a programming standpoint, in this case an one-page website, using a generic html.html
file as a global template and index.php7
as a container script.
Create an overall html template
The page parameter in menu.ini
defines a name of a governing html template for a given page. In most of the cases, it will be a html.html
file located in /include/html
folder. In the most basic way, it will look like this:
<html>
<head>
...
</head>
<body>
<main>
[main]
</main>
</body>
</html>
Note the [main]
pseudo-code. This is one of the main building blocks of the entire framework and it's called a placement or a placement location. In this example, there is only one placement inside the main element, but you can have an endless number of placement locations for various purposes, allowing you to place any content to any location within your template structure.
Configure page container
A container is a file located in the /include
folder and it defines the functionality of any given page. A container can be as simple as a single line or as complex as a huge code with a complex functionality.
It is indeed possible to nest containers to keep the markup simple and use shorthands
<?
$this->StaticHTML(["html"=>"intro","placement"=>"main"]);
$this->index_features(); //include the functionality defined in the container "index_features" here
?>
In the above example, we have included two elements in the container. A static html element intro.html
placed into the [main]
display location and a shorthand calling the index_features.php7
container with extra functionality
Use pre-made functions or write your own
In the aforementioned example, we called the index_features.php7
container using a shorthand function. The container then includes simple plugin which parses a .txt file, creates a list of items based on that file and is placed in to the [main]
display location. Again, it is possible to endlessly configure / enhance each container or plugin, write your own etc.
<?
$this->rotate_file("features.ini");
//features.ini ===============================================
file=index_features.txt
html=index_features
items=index_features_items
placement = main
//features.ini ===============================================
?>