- 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;
    }
}
                                    
 Follow us!