<?php 

//error_reporting(E_ALL);
//ini_set("display_errors", "On");
 error_reporting(0);
 ini_set("display_errors","off");

(session_status() === PHP_SESSION_ACTIVE) ? '' : session_start();

date_default_timezone_set('US/Eastern');

$url_input = isset($_GET["url"]) ? $_GET["url"] : "public/page/home";

$url = preg_replace('/[^A-Za-z0-9-_.\/]/', '', $url_input);

$url = rtrim($url, '/');

$url_part = explode("/", $url);

//echo print_r($url_part);

if(count($url_part) == 2) {

   // echo "Not public";

    $section = "page";  // public, student, college, university, admin

    $controller = isset($url_part[0]) ? $url_part[0] : "page";
    
    $function = isset($url_part[1]) ? $url_part[1] : "admin_login";
    
    $perameters = array();
   // echo "<br>".$section."<br>".$controller."<br>".$function."<br>";
    // exit();
    if(isset($url_part[2])){
        
        for($i = 2; $i < count($url_part); $i++){
            
            $perameters[] = $url_part[$i];
        }
    }
    else {
        $perameters[] = 0;
    }


} else {
   
    

$section = isset($url_part[0]) ? $url_part[0] : "public";  // public, student, college, university, admin

$controller = isset($url_part[1]) ? $url_part[1] : "authentication";

$function = isset($url_part[2]) ? $url_part[2] : "admin_login";

$perameters = array();
// echo $_GET["url"]."<br>";
// exit();
if(isset($url_part[3])){
    
    for($i = 3; $i < count($url_part); $i++){
        
        $perameters[] = $url_part[$i];
    }
}
else {
    $perameters[] = 0;
}
}


//echo print_r($perameters);

require_once "library/const_lib.php";

require_once "library/database_lib.php";

require_once "library/methods_lib.php";


require_once "controllers/base_controller.php";

require_once "library/DataValidator.php";

require_once "library/datatable_lib.php";


if(file_exists("controllers/".$controller."_controller.php")){
    
    require_once "controllers/".$controller."_controller.php";
}



$database = new Database();

$db_con = $database->getConnection();

$chk_exist = new $controller($db_con);

if (!method_exists($chk_exist,$function)){ 
    
    $section = "public";
    
    $controller = "base";
    
    $function = "errors";
    
    unset($perameters);
    
    $perameters = array(404);
}

$do = new $controller($db_con);

$do->$function($perameters);

?>
