1. PHP / Говнокод #13109

    +150

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 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;
        }
    }

    Небольшой роутинг

    Запостил: varg242, 04 Июня 2013

    Комментарии (8) RSS

    Добавить комментарий