Estudiando como implementar subfolders

This commit is contained in:
Jaime Jimenez
2023-04-27 21:53:41 +02:00
parent c1bef7a7ed
commit 688642f5ea
6 changed files with 100 additions and 57 deletions

View File

@ -28,7 +28,7 @@ $routes->setAutoRoute(true);
* Route Definitions
* --------------------------------------------------------------------
*/
// JJO $routes->get('cliente', 'Impresion\Cliente::index');
// We get a performance increase by specifying the default
// route since we don't have to scan directories.

View File

@ -3,7 +3,8 @@
namespace App\Controllers\Impresion;
use App\Controllers\BaseController;
class Clientes extends BaseController
class Cliente extends BaseController
{
function __construct()
{
@ -13,7 +14,7 @@ class Clientes extends BaseController
public function index()
{
echo 'Hola2';
}
}

View File

@ -0,0 +1,20 @@
<?php
namespace App\Controllers;
use App\Controllers\BaseController;
class Tarifas extends BaseController
{
function __construct()
{
}
public function index()
{
echo 'Hola';
}
}

View File

@ -13,60 +13,72 @@ class Test extends BaseController
public function index()
{
try {
helper('filesystem');
helper('directory');
if(strtolower(PHP_OS) == 'linux'){
$compatibility = '/';
}else{
$compatibility = '\\';
$request = \Config\Services::request();
$uri = 'https://sk-jjo.imnavajas.es/tarifas';
$language = \Config\Services::language();
$language->setLocale(session()->lang);
$getWhiteList = $this->whiteListController();
foreach ($getWhiteList as $item){
if(strtolower($item) == $uri->getSegment(1)){
return true;
}
}
if(empty($controller)){
$map = directory_map(APPPATH.'Controllers');
foreach ($map as $key=>$item)
{
if(!strpos(strtolower($key),$compatibility)){
var_dump($key);
$name = str_replace('.php', '', $item);
if(!getIgnoreController($name)){
$controllers[] = [
'name' => $name,
'path' => '',
'methods' => get_class_methods('App\Controllers\\'.$name)
];
$getRules = json_decode(session()->get('rules')??'[]');
foreach ($this->whiteListMethod() as $item){
if(strtolower($item) == $uri->getSegment(2)){
return true;
}
}else{
foreach ($item as $subitem){
$name = str_replace('.php', '', $subitem);
if(!getIgnoreController($name)) {
$controllers[] = [
'name' => $name,
'path' => $key,
'methods' => get_class_methods('App\Controllers\\' . str_replace('/', '\\', $key) . $name)
];
}
foreach ($getRules as $key=>$value){
if(strtolower($key) == $uri->getSegment(1)){
if($uri->getTotalSegments() <= 1){
return true;
}
foreach ($value as $item){
if(strtolower($item) == $uri->getSegment(2)){
return true;
}
}
}
}
}else{
$array = explode('/',$controller);
$dir = count($array) > 1 ? $array[0] : '';
$name = count($array) > 1 ? '\\'.$array[1] : $array[0];
$controllers[] = [
'name' => $name,
'path' => $dir,
'methods' => get_class_methods('App\Controllers\\'.str_replace('/','\\',$dir).$name)
];
}
/*echo '<pre>';
var_dump($controllers);
session()->setFlashdata('sweet', ['error',lang("App.dashboard_alert_rules")]);
header('Location: /home');
exit();
echo '<pre>';
dd();
*/
} catch (Exception $e) {
return [];
}
var_dump($controllers);
echo '</pre>';
}
/**
* Returns the white list of allowed controllers.
*/
public function whiteListController(){
return [
'',
'BaseController',
'Home',
'Login',
'Oauth',
'Language',
'Api',
'Cron',
'lang',
'Ajax',
'Integration',
'Migrate',
'Test',
];
}
}

View File

@ -66,12 +66,22 @@ class LoginAuthFilter implements FilterInterface
if($uri->getTotalSegments() <= 1){
return true;
}
foreach ($value as $item){
echo '<pre>';
var_dump($value);
/*var_dump($uri->getSegment(0));
var_dump($uri->getSegment(1));
var_dump($uri->getSegment(2));
var_dump($uri->getTotalSegments());*/
echo '</pre>';
/*foreach ($value as $item){
if(strtolower($item) == $uri->getSegment(2)){
return true;
}
}*/
}
}
dd();
}
session()->setFlashdata('sweet', ['error',lang("App.dashboard_alert_rules")]);
header('Location: /home');
@ -84,8 +94,6 @@ class LoginAuthFilter implements FilterInterface
public function whiteListController(){
return [
'',
'Clientes',
'BaseController',
'Home',
'Login',

View File

@ -155,6 +155,8 @@ function getDictionary($word=''){
'view' => lang("App.group_rules_label_view"),
'oauth_store' => lang("App.group_rules_label_oauth_store"),
'template_store' => lang("App.group_rules_label_template_store"),
'Tarifas' => 'Tarifas',
'Cliente' => 'Cliente'
];
return array_key_exists($word,$dictionary)?$dictionary[$word] : $word;
} catch (Exception $e) {