<?php
/***********************
Nikházy Ákos
index.php
The idea is keeping PHP clean from HTML and text.
This small framework does just that. It is pretty
good for small sites.
***********************/
require 'require/head.php';
// ****************
// ini cache
//
// Caching for 10 seconds. If there is a cache that is younger than
// 10 seconds this is the last line that runs in this script.
// You can test this by changing the loop to 100, render the page then
// turn it back to 10 and try rendering it again you will see the 100
// lines in 10 seconds window. Also when you change your code you should
// delete cache files if you work with long Caching times.
//
// If you want to calculate POSTs, GETs or other dynamic stuff you better
// do it before the Cache class. Also based on you dynamic content you
// can do a Cache(0) to re-cache the content at that point.
// ****************
$cache = new Cache(10); // keep cache for X seconds
// $cache = new Cache(0); this effectively turns off caching for this page
// ****************
// ini template class
//
// Template('the name of template file')
// in the template file you find {{something}}. you can replace
// {{something}} with value by using the tagList[] property
// $template -> tagList['something'] = value property
// ****************
$template = new Template('index'); // this will template the index.html file in the templates folder
$listLineTemplate = new Template('listItem'); // this will template the listItem.html file in the templates folder
$rawTextTemplate = new Template('',' {{texthere}} at rendering'); // This will template that string. The file must be NULL
// ****************
// ini text class
//
// Text('the name of the text file')
// $text->PrintText('textID') method
// returns the text
// ****************
$text = new Text('index');
// ****************
// Calculating stuff before using the main template.
// this is where you put the content together for
// the template
// ****************
$list = '';
for($i = 1; $i<=10; $i++)
{
// you can use smaller templates. This one keeps a simple <li>{{listItemText}}</li> HTML line
// also here we use the Text class, that loads text from a .json file by id, instead putting text
// in PHP code.
$listLineTemplate -> tagList['item'] = $text->PrintText('listItemText') . $i;
// ****************
// We collect the list items as a string in a variable.
// This line returns the templated HTML string (first paramater is true), but do not work on
// one lineing it (second parameter is false) as at the end it will be one lined anyway.
// ****************
$list .= $listLineTemplate->Templating(true,false);
}
/*
// a better way for list or even tables. Instead of connecting strings, you put them in an array
// the Templating method will implode it like this implode('',$array);
$list = array();
for($i = 1; $i<=10; $i++)
{
// you can use smaller templates. This one keeps a simple <li>{{listItemText}}</li> HTML line
// also here we use the Text class, that loads text from a .json file by id, instead putting text
// in PHP code.
$listLineTemplate -> tagList['item'] = $text->PrintText('listItemText') . $i;
// ****************
// We collect the list items as a string in a variable.
// This line returns the templated HTML string (first paramater is true), but do not work on
// one lineing it (second parameter is false) as at the end it will be one lined anyway.
// ****************
$list[] = $listLineTemplate->Templating(true,false);
}
*/
// ****************
// Populate the template here
// Examples:
// ****************
$template -> tagList['someText'] = $text->PrintText('someText');
$template -> tagList['content'] = 'This is the content. You should use the Text.class to put text in these parts,
but for the example I write this here. Also this only makes sense if you see
it in the PHP code in index.php';
$template -> tagList['aList'] = $list;
$template -> tagList['otherHTML'] = NULL; // this will replace the {{otherHTML}} tag to the otherHTML file's content
// we templating string same way as files
$rawTextTemplate -> tagList['texthere'] = $text -> PrintText('complete');
$template -> tagList['rawStringExample'] = $rawTextTemplate -> Templating();
$template -> tagList['formatedText'] = $text -> PrintText('formatedText','string',3,3.3);
// ****************
// Show filled template for user and putting it in a cache
// we never reach this point if cache already exists.
// here we use the basic parameters (both true) so we return the templated HTML string in one line.
// then cache it and print it with exit() (happens in the Cache class.
// ****************
$cache -> cache($template -> Templating());
// ****************
// check out the index_no_comment.php file to see how little code does
// how much, to present content to the user.
// ****************
|