- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
<?php
class Router {
private $available_pages = array('index',
'contacts',
'about',
'clients' => array('index',
'howto',
'register',
'faq'),
'experts' => array('index',
'why',
'howto',
'register',
'faq')
);
function __construct()
{
if(!isset($_GET['act'])) $act = "index";
else $act=$_GET['act'];
$path = pathinfo($act);
if($path["filename"] == "experts" || $path["filename"] == "clients")
{
$path['dirname'] = $path["filename"];
$path['filename'] = "index";
}
if($this->isAvailablePage($path))
{
$controllerPath = FRONT_TPL.$path['dirname'].'/'.$path['filename'].'.php';
$controllerName = $path['filename'];
if(file_exists($controllerPath))
{
include(FRONT_TPL."header.php");
include($controllerPath);
include(FRONT_TPL."footer.php");
}
else $this->error404();
}
else $this->error404();
}
function error404()
{
include(FRONT_TPL."header.php");
include(FRONT_TPL."404.php");
include(FRONT_TPL."footer.php");
}
function isAvailablePage($path)
{
if($path["dirname"] == ".")
{
reset($this->available_pages);
if(in_array($path['filename'], $this->available_pages)) return true;
}
else if($path["dirname"] == "experts" || $path["dirname"] == "clients")
{
reset($this->available_pages);
if(in_array($path['filename'], $this->available_pages[$path["dirname"]])) return true;
}
else return false;
}
}