WIP AddressDB + api
This commit is contained in:
@@ -20,6 +20,7 @@ class mfRouter {
|
||||
|
||||
|
||||
public function __construct($request) {
|
||||
//var_dump($request);exit;
|
||||
// set default route, in case no default route is defined in configfile.
|
||||
$this->default['mod']="Application";
|
||||
$this->default['action']="Index";
|
||||
@@ -29,73 +30,125 @@ class mfRouter {
|
||||
}
|
||||
|
||||
if(defined("DEFAULT_ROUTE") && strlen(DEFAULT_ROUTE)) {
|
||||
$defroute=explode("_",DEFAULT_ROUTE);
|
||||
$this->default['mod']=$defroute[0];
|
||||
if(count($defroute) == 2 && $defroute[1]) {
|
||||
$this->default['action']=$defroute[1];
|
||||
$defroute = explode("_",DEFAULT_ROUTE);
|
||||
$this->default['mod'] = $defroute[0];
|
||||
if(count($defroute) > 1 && $defroute[1]) {
|
||||
$this->default['action'] = $defroute[1];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(defined("MFSESSION") && MFSESSION === true) {
|
||||
session_name(MFAPPNAME."_session");
|
||||
session_start();
|
||||
}
|
||||
|
||||
|
||||
// set parameters supplied in url
|
||||
$umod = "";
|
||||
$uaction = "";
|
||||
|
||||
// get mod and action
|
||||
if(preg_match('/^([^_]+)(?:_(.+)?)?$/',$request['action'],$m)) {
|
||||
$m = [];
|
||||
if(array_key_exists("action", $request) && preg_match('/^([^_]+)(?:_(.+)?)?$/',$request['action'],$m)) {
|
||||
$umod = $m[1];
|
||||
$this->mod = $m[1];
|
||||
$this->action = "Index";
|
||||
if(count($m) == 3 && $m[2]) {
|
||||
if(count($m) > 2 && $m[2]) {
|
||||
$uaction = $m[2];
|
||||
$this->action=$m[2];
|
||||
$this->action = $m[2];
|
||||
}
|
||||
} else {
|
||||
$this->mod=$this->default['mod'];
|
||||
$this->action=$this->default['action'];
|
||||
$this->mod = $this->default['mod'];
|
||||
$this->action = $this->default['action'];
|
||||
}
|
||||
|
||||
// if login request, redirect to mfLoginController
|
||||
if(array_key_exists("mfLogin_action", $request) && $request['mfLogin_action'] == "mfLogin_Login") {
|
||||
$this->mod = "mfLogin";
|
||||
$this->action = "Login";
|
||||
$classname = "mfLoginController";
|
||||
} else {
|
||||
// set classname of controller to load
|
||||
$classname = $this->mod."Controller";
|
||||
}
|
||||
|
||||
|
||||
// get baseurl from fancy urls if used
|
||||
if(MFUSEFANCYURLS) {
|
||||
if(!$umod) {
|
||||
$baseurl = $_SERVER['REQUEST_URI'];
|
||||
}
|
||||
if($umod && !$uaction) {
|
||||
if(preg_match("#^(.+)/$umod/?\\??#",$_SERVER['REQUEST_URI'],$m)) {
|
||||
if(preg_match("#^(.+)/$umod/?\\??#i",$_SERVER['REQUEST_URI'],$m)) {
|
||||
$baseurl = $m[1];
|
||||
}
|
||||
}
|
||||
if($umod && $uaction) {
|
||||
if(preg_match("#^(.+)/$umod/$uaction/?\\??#",$_SERVER['REQUEST_URI'],$m)) {
|
||||
if(preg_match("#^(.+)/$umod/$uaction/?\\??#i",$_SERVER['REQUEST_URI'],$m)) {
|
||||
$baseurl = $m[1];
|
||||
}
|
||||
}
|
||||
define("MFFANCYBASEURL",$baseurl);
|
||||
}
|
||||
|
||||
$request['mod']=ucfirst($this->mod);
|
||||
$request['action']=ucfirst($this->action);
|
||||
|
||||
// api call handling
|
||||
if(ucfirst($this->mod) == "Api") {
|
||||
//var_dump($request);exit;
|
||||
$apiversion = API_VERSION;
|
||||
$apicall = false;
|
||||
$apimod = "";
|
||||
$apiaction = "";
|
||||
|
||||
if($request["apiv"]) {
|
||||
$apiversion = $request["apiv"];
|
||||
}
|
||||
if(!defined("CURRENT_API_VERSION")) {
|
||||
define("CURRENT_API_VERSION", $apiversion);
|
||||
}
|
||||
|
||||
if($request['apicall']) {
|
||||
$apicall = $request['apicall'];
|
||||
|
||||
$m = [];
|
||||
if(preg_match('/^([^_]+)(?:_(.+)?)?$/',$apicall,$m)) {
|
||||
$apimod = $m[1];
|
||||
$apiaction = "Call";
|
||||
if(array_key_exists(2, $m) && $m[2]) {
|
||||
$apiaction = $m[2];
|
||||
}
|
||||
}
|
||||
$this->mod = ucfirst($apimod);
|
||||
$this->action = $apiaction;
|
||||
|
||||
// set classname to apropriate Api Controller
|
||||
$classname = $this->mod."Apicontroller";
|
||||
}
|
||||
} else {
|
||||
// session only for non-api requests
|
||||
if(defined("MFSESSION") && MFSESSION === true) {
|
||||
session_name(MFAPPNAME."_session");
|
||||
session_start();
|
||||
}
|
||||
}
|
||||
|
||||
$request['mod'] = ucfirst($this->mod);
|
||||
$request['action'] = ucfirst($this->action);
|
||||
$request['http_method'] = $_SERVER['REQUEST_METHOD'];
|
||||
|
||||
define('MFROUTER_MOD',$this->mod);
|
||||
define('MFROUTER_ACTION',$this->action);
|
||||
|
||||
// initiate layout instance
|
||||
$Layout=Layout::singleton();
|
||||
$Layout = Layout::singleton();
|
||||
$Layout->setTemplate($this->mod."/".$this->action);
|
||||
$Layout->set("Mod",$this->mod);
|
||||
$Layout->set("Action",$this->action);
|
||||
|
||||
// load the appropriate Controller
|
||||
$classname=$this->mod."Controller";
|
||||
|
||||
try {
|
||||
$page=new $classname($request);
|
||||
$page = new $classname($request);
|
||||
} catch(Exception $e) {
|
||||
require_once(LIBDIR."/mvcfronk/mfExceptionhandler/mfExceptionhandlerController.php");
|
||||
$exhc=new mfExceptionhandlerController($e);
|
||||
$exhc = new mfExceptionhandlerController($e);
|
||||
}
|
||||
|
||||
$Layout->display();
|
||||
|
||||
Reference in New Issue
Block a user