<?php require "requires.php"; // Se inician las variables $url = $_GET['url']; Moe::start(); Moe::redirect($url);
<?php Moe::routes(array("/" => "person@index", "edit" => "person@edit", "update" => "person@update", "insert" => "person@insert", "aggregate" => "person@aggregate", "delete" => "person@delete"));
public static function redirect($url) { $post = $_POST; $get = $_GET; unset($_POST); unset($_GET); $class = ""; $function = ""; $parametros = array(); $urlArray = explode("/", $url); $estadoClassFunction = false; $arrKeysLength = array_map('strlen', array_keys(self::$routes)); array_multisort($arrKeysLength, SORT_DESC, self::$routes); // comparamos routes con la url y si es igual se le da valores a la clase y la funcion foreach (self::$routes as $route => $classFunction) { // Si la ruta es igual a la url $classFunction = explode("@", $classFunction); $lenRoute = strlen($route); $lenUrl = strlen($url); printVar($url); printVar(substr($url, 0, $lenRoute)); if ($route == substr($url, 0, $lenRoute)) { self::$myRoute = $route; $class = $classFunction[0]; $function = $classFunction[1]; //Se crean los parametros if ($lenUrl > $lenRoute && substr($url, $lenRoute, $lenUrl - $lenRoute) != "/") { if (substr($url, $lenRoute, 1) == "/") { $lenRoute++; } $urlParametros = substr($url, $lenRoute, $lenUrl - $lenRoute); $urlArrayParametros = explode("/", $urlParametros); foreach ($urlArrayParametros as $idVar => $valueVar) { $parametros['var' . ($idVar + 1)] = decrypt($valueVar); } } break 1; // si la url es igual al la clase y a la función, agragamos un elemento a la url array para que no tomen valores en el siguiente paso } else { if ($urlArray[0] == $classFunction[0] && $urlArray[1] == $classFunction[1]) { $estadoClassFunction = true; } } } $parametros = count($parametros) == 0 && count($post) > 0 ? $post : $parametros; // Si en el paso anterior no hubo una ruta igual a la de la url y la url es de dos parametros, le damos valor a class y function if ($class == "" || $function == "") { if ($estadoClassFunction == false) { $class = $urlArray[0]; $function = isset($urlArray[1]) ? $urlArray[1] : ""; //Se crean los parametros $urlArrayParametros = $urlArray; // Se eliminan los dos primeros array_shift($urlArrayParametros); array_shift($urlArrayParametros); if (count($urlArray) > 2 && $urlArrayParametros[0] != "") { // Se crea arreglo de urlParametros foreach ($urlArrayParametros as $idVar => $valueVar) { $parametros['var' . ($idVar + 1)] = decrypt($valueVar); } } } } foreach ($parametros as $key => $value) { CleanDoor::allClean($value); } // si la class es igual a generate y la function es igual a models if ($class == "generate" && $function == "models") { regenerateDataObject(); exit; } // Si la clase y el metodo existe, instanciamos el metodo if (method_exists($class, $function)) { $class = new $class(); if (count($parametros) > 0) { $class->{$function}($parametros); } else { $class->{$function}(); } } else { // la pagina es incorrecta view()->display("errorUrl.html"); exit; } }
<?php Moe::config(array('DEBUG_PHP' => 0, 'DEBUG_PEAR' => 0, 'TIMEZONE' => 'America/Bogota', 'DATABASE' => array('SERVER' => '127.0.0.1', 'DBNAME' => 'lataberna', 'USER' => 'root', 'PASSWORD' => '1nt3r4ct1v3')));
public static function routes($routes) { self::$routes = $routes; }
//ini_set('display_errors',1); $rutaArray = array(); $rutaArray['admSecciones/'] = "Seccion@listaSecciones"; $rutaArray['admEditSecciones/'] = "Seccion@editaSecciones"; $rutaArray['agrSecciones/'] = "Seccion@agregarSeccion"; $rutaArray['grdSecciones/'] = "Seccion@grdSeccion"; $rutaArray['agrContenido/'] = "Contenido@creaContenido"; $rutaArray['grdContenido/'] = "Contenido@grdContenido"; $rutaArray['agrMultimedia/'] = "Contenido@creaMultimedia"; $rutaArray['grdMultmedia/'] = "Contenido@grdMultmedia"; $seccion = model("LallamaradaSeccion"); $seccions = $seccion->getData(); foreach ($seccions as $seccionGet) { // Cuando el nombre de la ruta es distinta a "/" agrega un / al final $ruta = $seccionGet['nombre'] == "/" ? $seccionGet['nombre'] : $seccionGet['nombre'] . "/"; if (isset($seccionGet['idPadre']) && $seccionGet['idPadre'] != 0) { $idPadre = $seccionGet['idPadre']; do { $padre = $seccion->getData(array("fields" => array("id", "nombre", "idPadre"), 'conditions' => array("id" => $idPadre))); $ruta = $padre[0]['nombre'] . "/" . $ruta; $idPadre = $padre[0]['idPadre']; } while ($idPadre > 0); } $ruta = substr($ruta, 0, 1) == "/" && strlen($ruta) > 1 ? substr($ruta, 2) : $ruta; $rutaArray[$ruta] = "Contenido@getContent"; } Moe::routes($rutaArray); /*Moe::routes(array( "/"=>"Seccion@index", ));*/
public static function redirect($url) { $post = $_POST; $get = $_GET; unset($_POST); unset($_GET); $class = ""; $function = ""; $parametros = array(); $urlArray = explode("/", $url); $nUrl = count($urlArray); $estadoClassFunction = 0; $routes = self::$routes; $arrKeysLength = array_map('strlen', array_keys($routes)); array_multisort($arrKeysLength, SORT_DESC, $routes); // comparamos routes con la url y si es igual se le da valores a la clase y la funcion foreach ($routes as $route => $classFunction) { // Si la ruta es igual a la url $routeArray = explode("/", $route); if (count($routeArray) == count($urlArray)) { $nRoute = count($routeArray); for ($i = 0; $i < $nRoute; $i++) { if (substr($routeArray[$i], 0, 1) != '$' && $urlArray[$i] == $routeArray[$i]) { $estadoClassFunction++; } else { if (substr($routeArray[$i], 0, 1) == '$') { $keyParametro = substr($routeArray[$i], 1); $value = CleanDoor::allClean($urlArray[$i]); $parametros[$keyParametro] = $value; $estadoClassFunction++; } else { $estadoClassFunction = 0; break; } } } } else { $estadoClassFunction = 0; } if ($nUrl == $estadoClassFunction) { self::$myRoute = $route; $classFunction = explode("@", $classFunction); $class = $classFunction[0]; $function = $classFunction[1]; break; } } $parametros = count($parametros) == 0 && count($post) > 0 ? $post : $parametros; // Si en el paso anterior no hubo una ruta igual a la de la url y la url es de dos parametros, le damos valor a class y function /* if($class=="" || $function==""){ if ($estadoClassFunction==false) { $class=$urlArray[0]; $function=(isset($urlArray[1])) ? $urlArray[1] : ""; //Se crean los parametros $urlArrayParametros=$urlArray; // Se eliminan los dos primeros array_shift($urlArrayParametros); array_shift($urlArrayParametros); if (count($urlArray)>2 && $urlArrayParametros[0]!="") { // Se crea arreglo de urlParametros foreach ($urlArrayParametros as $idVar => $valueVar) { $parametros['var'.($idVar+1)]=decrypt($valueVar); } } } } */ // si la class es igual a generate y la function es igual a models if ($class == "generate" && $function == "models") { regenerateDataObject(); exit; } // Si la clase y el metodo existe, instanciamos el metodo if (method_exists($class, $function)) { $class = new $class(); if (count($parametros) > 0) { $class->{$function}($parametros); } else { $class->{$function}(); } } else { // la pagina es incorrecta view()->display("errorUrl.html"); exit; } }