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