Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. <?php
  2.  
  3. require_once('../config/bootstrap.php');
  4.  
  5. if (DEBUG) {
  6. error_reporting(E_ALL);
  7. ini_set('display_errors', 'On');
  8. } else {
  9. error_reporting(E_ALL);
  10. ini_set('display_errors', 'Off');
  11. }
  12.  
  13. // autoload from composer
  14. require_once('../vendor/autoload.php');
  15.  
  16. // init log
  17. AI\Lib\Log::init();
  18.  
  19. if (WIP_ACTIVE && !in_array(trim(AI\Lib\Net::getIP()), $DEBUG_IPS)) {
  20. if (!Net::isAPICall()) {
  21. echo file_get_contents('offline.html');
  22. exit();
  23. } else {
  24. die(json_encode(array('error' => 'forbidden', 'error_code' => '403')));
  25. }
  26. }
  27.  
  28. // URL Mapper
  29. $mapper = AI\Core\MultiLanguageMapper::getInstance();
  30. if (PREFIX) {
  31. $mapper->setPrefix(PREFIX);
  32. }
  33.  
  34. require_once(DOCUMENT_ROOT . 'config/routes.php');
  35.  
  36. $route = $mapper->match($_SERVER['REQUEST_URI'], array('controller' => 'pages', 'action' => 'home', 'args' => array()));
  37.  
  38. $controllerClass = ucfirst(strtolower($route['controller'])) . 'Controller';
  39. $controllerAction = strtolower(str_replace('-', '_', $route['action']));
  40.  
  41. // Check if the desired view is in the admin area
  42. define('ADMINVIEW', (isset($route['admin']) && $route['admin']) ? true : false);
  43.  
  44. // Set session ID if is set from Flash call
  45. if ($controllerClass == 'UploadController' && isset($_GET['sessionCookie']) && Net::isFlash()) {
  46. session_id($_GET['sessionCookie']);
  47. }
  48.  
  49. // Start session
  50. AI\Lib\PDOSession::init();
  51.  
  52. // Get controller path from route
  53. $controller_path = (ADMINVIEW) ? DOCUMENT_ROOT . 'controller/admin/' . $route['controller'] . '.php' : DOCUMENT_ROOT . 'controller/' . $route['controller'] . '.php';
  54.  
  55. // Try initializing controller
  56. if (!file_exists($controller_path)) {
  57. AI\Lib\Error::redirect(404);
  58. }
  59. require_once($controller_path);
  60. $controller = new $controllerClass;
  61.  
  62. // Try running method
  63. if (!method_exists($controller, $controllerAction)) {
  64. AI\Lib\Error::redirect(404);
  65. }
  66. // Call before method in controller
  67. $controller->methodRequest = $controllerAction;
  68. $controller->requestRoute = $route;
  69. $controller->before();
  70.  
  71. // Call method in controller
  72. call_user_func_array(array($controller, $controllerAction), $route['args']);
  73.  
  74. // Call after method in controller
  75. $controller->after();
  76.  
  77. // Check if the call is an AJAX call
  78. if ($controller->isAjaxCall) {
  79. if (!DEBUG && !(AI\Lib\Net::isFlash() || AI\Lib\Net::isAjax() || AI\Lib\Net::isAPICall())) {
  80. die(json_encode(array('error' => 'forbidden', 'error_code' => '403')));
  81. } else {
  82. // set view vars as
  83. foreach ($controller->viewVars as $k => $v) {
  84. $$k = $v;
  85. }
  86. }
  87. } else {
  88. // set view vars as
  89. foreach ($controller->viewVars as $k => $v) {
  90. $$k = $v;
  91. }
  92.  
  93. // Auth instance for view
  94. $Auth = \AI\Core\AuthController::getInstance();
  95.  
  96. // Determine view
  97. $showView = ($controller->view == '') ? $controllerAction : $controller->view;
  98. $view_path = (ADMINVIEW) ? DOCUMENT_ROOT . 'view/' . strtolower($route['controller']) . '/admin/' . $showView . '.php' : DOCUMENT_ROOT . 'view/' . strtolower($route['controller']) . '/' . $showView . '.php';
  99. if (!file_exists($view_path)) {
  100. AI\Lib\Log::error("View not found: " . $view_path);
  101. AI\Lib\Error::redirect(404);
  102. }
  103.  
  104.  
  105. // Set Javascript vars
  106. $javascriptConfig = [
  107. 'ROOT_URL' => ROOT_URL,
  108. 'debug' => DEBUG,
  109. 'locale' => $controller->locale
  110. ];
  111.  
  112. if (isset($_SESSION['notify']) && sizeof($_SESSION['notify']) > 0) {
  113. $javascriptConfig['notify'] = $_SESSION['notify'];
  114. unset($_SESSION['notify']);
  115. }
  116.  
  117. // set data in controller
  118. $layoutVars = $controller->getlayoutVars();
  119. $javascripts = $controller->getJavascripts(); // check for any flash messages
  120.  
  121. if (method_exists($controller, '__')) {
  122.  
  123. function __()
  124. {
  125. global $controller; // not very pretty
  126. return call_user_func_array(array($controller, '__'), func_get_args());
  127. }
  128.  
  129. }
  130.  
  131.  
  132. ob_start();
  133.  
  134. include($view_path);
  135.  
  136. $body_content = ob_get_contents();
  137. ob_end_clean();
  138. }
  139.  
  140. // show layout
  141. include(DOCUMENT_ROOT . 'view/layout/' . $controller->layout . '.php');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement