mirror of
https://github.com/Aviortheking/DeltaCMS.git
synced 2025-04-23 19:32:13 +00:00
Modifications aand started working on adminBundle
This commit is contained in:
parent
73a8455cba
commit
fafe29f42d
@ -11,7 +11,8 @@
|
||||
],
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"AdminPanel\\": "src/"
|
||||
"AdminPanel\\": "src/AdminPanel",
|
||||
"": "src/Modules"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
19
src/AdminPanel/Classes/Controller.php
Normal file
19
src/AdminPanel/Classes/Controller.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace AdminPanel\Classes;
|
||||
|
||||
class Controller {
|
||||
|
||||
protected $urlArguments = array();
|
||||
|
||||
public function setUrlArguments($args) {
|
||||
$this->urlArguments = $args;
|
||||
}
|
||||
|
||||
protected function getUrlArguments() {
|
||||
return $this->urlArguments;
|
||||
}
|
||||
|
||||
//TODO implements functions and variables to add functionnalities to controllers
|
||||
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace AdminPanel\Classes;
|
||||
|
||||
class Controller {
|
||||
|
||||
|
||||
//TODO implements functions and variables to add functionnalities to controllers
|
||||
|
||||
}
|
10
src/Modules/AdminLib/Classes/AdminController.php
Normal file
10
src/Modules/AdminLib/Classes/AdminController.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace AdminLib\Classes;
|
||||
|
||||
use AdminPanel\Classes\Controller;
|
||||
|
||||
|
||||
class AdminController extends Controller {
|
||||
|
||||
}
|
13
src/Modules/AdminLib/Controller/IndexController.php
Normal file
13
src/Modules/AdminLib/Controller/IndexController.php
Normal file
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace AdminLib\Controller;
|
||||
|
||||
use AdminLib\Classes\AdminController;
|
||||
|
||||
class IndexController extends AdminController {
|
||||
|
||||
public function index() {
|
||||
return "Hello Administrator!";
|
||||
}
|
||||
|
||||
}
|
9
src/Modules/AdminLib/adminlib.json
Normal file
9
src/Modules/AdminLib/adminlib.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"routes": {
|
||||
"adminIndex": {
|
||||
"path": "/admin/",
|
||||
"controller": "\\AdminLib\\Controller\\IndexController",
|
||||
"function": "index"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace AdminPanel\Modules\Index\Controller;
|
||||
namespace Index\Controller;
|
||||
|
||||
use AdminPanel\Classes\Controller;
|
||||
|
||||
@ -11,6 +11,7 @@ class IndexController extends Controller {
|
||||
}
|
||||
|
||||
public function test() {
|
||||
var_dump($this->getUrlArguments());
|
||||
return "test working!";
|
||||
}
|
||||
}
|
||||
|
@ -2,12 +2,12 @@
|
||||
"routes": {
|
||||
"route_name": {
|
||||
"path": "/",
|
||||
"controller": "\\AdminPanel\\Modules\\Index\\Controller\\IndexController",
|
||||
"controller": "\\Index\\Controller\\IndexController",
|
||||
"function": "index"
|
||||
},
|
||||
"route_name2": {
|
||||
"path": "/test/{slug}/",
|
||||
"controller": "\\AdminPanel\\Modules\\Index\\Controller\\IndexController",
|
||||
"controller": "\\Index\\Controller\\IndexController",
|
||||
"function": "test",
|
||||
"args": {
|
||||
"slug": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace AdminPanel\Modules\ModuleName\Controller;
|
||||
namespace ModuleName\Controller;
|
||||
|
||||
use AdminPanel\Classes\Controller;
|
||||
|
||||
|
@ -1,9 +1,14 @@
|
||||
{
|
||||
"routes": {
|
||||
"route_name": {
|
||||
"path": "/example",
|
||||
"path": "/example/test-{arg}",
|
||||
"controller": "\\AdminPanel\\Modules\\ModuleName\\Controller\\ExampleController",
|
||||
"function": "example"
|
||||
"function": "example",
|
||||
"args": {
|
||||
"arg": {
|
||||
"regex": "/[a-z]+/"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
ini_set('display_errors', 'On');
|
||||
|
||||
define("ROOT", __DIR__);
|
||||
@ -20,11 +21,14 @@ foreach ($modules as $module) {
|
||||
$json = json_decode(file_get_contents($moduleDIR . "/" . strtolower($module) . ".json"));
|
||||
foreach ($json->routes as $routeName => $routeArgs) {
|
||||
$args = isset($routeArgs->args) ? $routeArgs->args : new stdClass();
|
||||
|
||||
if(slugEqualToURI($routeArgs->path, $_SERVER["REQUEST_URI"], $args)) {
|
||||
$composants = slugEqualToURI($routeArgs->path, $_SERVER["REQUEST_URI"], $args);
|
||||
if($composants !== false) {
|
||||
$loader->loadClass($routeArgs->controller);
|
||||
$function = $routeArgs->function;
|
||||
echo (new $routeArgs->controller)->$function();
|
||||
/** @var AdminPanel\Classes\Controller $controller */
|
||||
$controller = new $routeArgs->controller;
|
||||
$controller->setUrlArguments($composants);
|
||||
echo $controller->$function();
|
||||
die;
|
||||
}
|
||||
}
|
||||
@ -48,11 +52,12 @@ function startsWith($haystack, $needle)
|
||||
* @param string $slug
|
||||
* @param object $options options->regex &| options->setting
|
||||
*
|
||||
* @return bool
|
||||
* @return bool|array
|
||||
*/
|
||||
function slugEqualToURI($slug, $uri, $options) {
|
||||
$uri = explode("/", trim($uri, "\/"));
|
||||
$slug = explode("/", trim($slug, '\/'));
|
||||
$return = array();
|
||||
|
||||
if(count($uri) != count($slug)) return false;
|
||||
|
||||
@ -61,7 +66,10 @@ function slugEqualToURI($slug, $uri, $options) {
|
||||
if(preg_match("/{.+}/", $value)) {
|
||||
$elemnt = preg_replace("/{|}/", "", $value);
|
||||
$elOptions = $options->$elemnt;
|
||||
if($elOptions->regex != null && preg_match($elOptions->regex, $uri[$key])) continue;
|
||||
if($elOptions->regex != null && preg_match($elOptions->regex, $uri[$key])) {
|
||||
$return[$elemnt] = $uri[$key];
|
||||
continue;
|
||||
}
|
||||
else return false;
|
||||
//TODO correspond with module settings
|
||||
} else {
|
||||
@ -69,5 +77,5 @@ function slugEqualToURI($slug, $uri, $options) {
|
||||
else return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return $return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user