예제 #1
0
 /**
  * @param $array_url retorno da Navigation::getUri
  * @param $_startFolder string passe o caminho da view
  * @return ReturnSearchClassVO
  */
 private static function searchFile($array_url, $_startFolder = "")
 {
     //iniciando o objeto de retorno
     $returnReturnSearchClassVO = new ReturnSearchClassVO();
     $searchFileOrFolderName = "";
     //($searchFileOrFolderName != "")?"/".DataHandler::removeSpecialCharacters($searchFileOrFolderName):"";
     //array completa sem a parte filtrada da url
     $array = $array_url;
     //Navigation::getURI($_urlToIgnore, Navigation::URI_RETURN_TYPE_ARRAY);
     $contador = 0;
     //varredura de hierarquia invertida
     for ($i = count($array) - 1; $i >= 0; $i--) {
         //pegando o string path, tirando o ultimo folder, pois estara no lastFolder
         $stringPath = implode("/", array_slice($array, 0, $i));
         $stringPath = DataHandler::removeLastBar($stringPath);
         $lastFolder = DataHandler::removeSpecialCharacters($array[$i]);
         //criando a array (além dos limites) - que não foi tratada
         $contador++;
         $arrayRestFolder = array_slice($array, count($array) - $contador, count($array));
         $returnReturnSearchClassVO->arrayRestFolder = $arrayRestFolder;
         //echo Debug::li("<b>{$i}</b>[11] Navigation::SEARCH_FILE_MODE_FILE : ".$_startFolder."----".$stringPath." ");
         $searchFileOrFolderName = "";
         //verifica se tem CAMINHO/ultimaPasta.php
         $caminhoBase = $_startFolder . "/" . trim($stringPath) . "/" . $lastFolder;
         $caminhoBase = DataHandler::removeDobleBars(DataHandler::removeDobleBars($caminhoBase));
         if (file_exists($caminhoBase . ".php")) {
             $returnReturnSearchClassVO->success = TRUE;
             $returnReturnSearchClassVO->className = "";
             $returnReturnSearchClassVO->folder = "";
             $returnReturnSearchClassVO->urlToInclude = $caminhoBase . ".php";
             $returnReturnSearchClassVO->file = $lastFolder . ".php";
             $returnReturnSearchClassVO->arrayRestFolder = $arrayRestFolder;
             return $returnReturnSearchClassVO;
         }
         //verifica se existe CAMINHO/ultimaPasta/index.php
         if (file_exists($caminhoBase . "/index.php")) {
             $returnReturnSearchClassVO->success = TRUE;
             $returnReturnSearchClassVO->className = "";
             $returnReturnSearchClassVO->folder = "";
             $returnReturnSearchClassVO->urlToInclude = $caminhoBase . "/index.php";
             $returnReturnSearchClassVO->file = "index.php";
             $returnReturnSearchClassVO->arrayRestFolder = $arrayRestFolder;
             //echo Debug::li("<b>{$i}</b>[11] Navigation::SEARCH_FILE_MODE_FILE : ". $_startFolder.$stringPath."/index.php");
             return $returnReturnSearchClassVO;
         }
     }
     // end for($i = count($array)-1; $i >= 0; $i--){
     return $returnReturnSearchClassVO;
 }
예제 #2
0
 /**
  * Retorna apenas 1 resultado dentro do ReturnSearchFileVO, os dados em ReturnSearchFileVO são todos referentes ao mesmo resultado
  * @param $_startFolder 	string
  * @param $searchClass 		string
  * @return ReturnSearchClassVO
  */
 public static function searchFileOrFolder($_urlToIgnore = "", $_startFolder = "", $search_file_mode = Navigation::SEARCH_FILE_MODE_FILE, $searchFileOrFolderName = "", $autoInclude = FALSE)
 {
     //iniciando o objeto de retorno
     $returnReturnSearchClassVO = new ReturnSearchClassVO();
     $searchFileOrFolderName = $searchFileOrFolderName != "" ? "/" . DataHandler::removeSpecialCharacters($searchFileOrFolderName) : "";
     //array completa sem a parte filtrada da url
     $array = Navigation::getURI($_urlToIgnore, Navigation::URI_RETURN_TYPE_ARRAY);
     //Debug::print_r($array);
     $contador = 0;
     //varredura de hierarquia invertida
     for ($i = count($array) - 1; $i >= 0; $i--) {
         //echo Debug::li($i." = valor de i ", FALSE, "FFFF00");
         switch ($search_file_mode) {
             case Navigation::SEARCH_FILE_MODE_CLASS_AND_METHOD:
                 $arrayRestFolder = Navigation::getURI($_urlToIgnore, Navigation::URI_RETURN_TYPE_ARRAY, FALSE, $i + 1);
                 //echo " valor de arrayRestFolder ";
                 //echo Debug::print_r($arrayRestFolder);
                 $stringPath = "";
                 if ($i > 0) {
                     $stringPath = Navigation::getURI($_urlToIgnore, Navigation::URI_RETURN_TYPE_STRING, $i - 1);
                 }
                 //echo Debug::li($stringPath." = valor de stringPath ", FALSE, "FFFF55");
                 $currentFolder = "";
                 if ($i < count($array)) {
                     $currentFolder = DataHandler::removeSpecialCharacters($array[$i]);
                 }
                 //echo Debug::li($currentFolder." = valor de currentFolder ", FALSE, "FFFF55");
                 $currentFolder = str_replace("/", "", $currentFolder);
                 //echo Debug::li($currentFolder." = valor de currentFolder ", FALSE, "FFFF55");
                 //procurando folder
                 $searchFileOrFolderName = DataHandler::urlFolderNameToClassName($currentFolder);
                 //echo " valor de searchFileOrFolderName ";
                 //echo Debug::print_r($searchFileOrFolderName);
                 //echo "<br>";
                 $tempMetodo = "init";
                 if ($i + 1 < count($array)) {
                     $tempMetodo = DataHandler::urlFolderNameToMethodName($array[$i + 1]);
                 }
                 //echo Debug::li("<b>tempMetodo:".$tempMetodo."</b>", false, NULL, NULL, "0000ff");
                 //echo $_startFolder.$stringPath."/".$searchFileOrFolderName.".php";
                 if (file_exists($_startFolder . $stringPath . "/" . $searchFileOrFolderName . ".php")) {
                     //echo Debug::li("<b>A classe:".$_startFolder.$stringPath."/".$searchFileOrFolderName.".php </b>");
                     $returnReturnSearchClassVO->success = TRUE;
                     $returnReturnSearchClassVO->file = $searchFileOrFolderName . ".php";
                     $returnReturnSearchClassVO->folder = DataHandler::removeDobleBars($_startFolder . $stringPath . "/");
                     $returnReturnSearchClassVO->urlToInclude = DataHandler::removeDobleBars($_startFolder . $stringPath . "/" . $searchFileOrFolderName . ".php");
                     $returnReturnSearchClassVO->className = $searchFileOrFolderName;
                     $returnReturnSearchClassVO->methodName = $tempMetodo;
                     $returnReturnSearchClassVO->arrayRestFolder = $arrayRestFolder;
                     $className = $returnReturnSearchClassVO->className;
                     if ($autoInclude) {
                         include_once $_startFolder . $stringPath . "/" . $searchFileOrFolderName . ".php";
                         //echo $className;
                         $classe = new $className();
                         //inicia o metodo como vazio
                         $returnReturnSearchClassVO->methodName = "init";
                         //Se existir uma pasta acima dessa, ve qual é pois pode ser tentativa de acessar metodo
                         if ($i + 1 < count($array)) {
                             //echo Debug::li(" >>>>> ".$array[$i+1]);
                             $tempMetodo = DataHandler::urlFolderNameToMethodName($array[$i + 1]);
                             //verifica se o metodo existe
                             if (ClassHandler::isMethodPublic($classe, $tempMetodo)) {
                                 $returnReturnSearchClassVO->methodName = $tempMetodo;
                             }
                         }
                         $metodo = $returnReturnSearchClassVO->methodName;
                         //echo $metodo;
                         return $classe->{$metodo}();
                     }
                     return $returnReturnSearchClassVO;
                 }
                 break;
             case Navigation::SEARCH_FILE_MODE_FILE:
             default:
                 $stringPath = Navigation::getURI($_urlToIgnore, Navigation::URI_RETURN_TYPE_STRING, $i + 1);
                 //echo Debug::li($stringPath." = valor de stringPath ", FALSE, "FFFF00");
                 $stringPath = DataHandler::removeLastBar($stringPath);
                 //echo Debug::li($stringPath." = valor de stringPath ", FALSE, "FFFF00");
                 $lastFolder = "";
                 if ($i + 1 < count($array)) {
                     $lastFolder = "/" . DataHandler::removeSpecialCharacters($array[$i + 1]);
                 }
                 //echo Debug::li($lastFolder." = valor de lastFolder ", FALSE, "FFFF00");
                 $currentFolder = "";
                 if ($i < count($array)) {
                     $currentFolder = DataHandler::removeSpecialCharacters($array[$i]);
                 }
                 //echo Debug::li($currentFolder." = valor de currentFolder ", FALSE, "FFFF00");
                 //criando a array (além dos limites) - que não foi tratada
                 $contador++;
                 //echo Debug::li($contador." = valor de contador ", FALSE, "FFFF00");
                 $arrayRestFolder = Navigation::getURI($_urlToIgnore, Navigation::URI_RETURN_TYPE_ARRAY, count($array), count($array) - $contador);
                 //echo " valor de arrayRestFolder ";
                 //echo Debug::print_r($arrayRestFolder);
                 $returnReturnSearchClassVO->arrayRestFolder = $arrayRestFolder;
                 $stringPath = "";
                 if ($i + 1 >= 1) {
                     $stringPath = Navigation::getURI($_urlToIgnore, Navigation::URI_RETURN_TYPE_STRING, $i);
                 }
                 //echo Debug::li("<b>{$i}</b>[11] Navigation::SEARCH_FILE_MODE_FILE : ".$_startFolder."----".$stringPath." ");
                 $searchFileOrFolderName = "";
                 if (file_exists($_startFolder . $stringPath . ".php")) {
                     $returnReturnSearchClassVO->success = TRUE;
                     $returnReturnSearchClassVO->className = "";
                     $returnReturnSearchClassVO->folder = "";
                     $returnReturnSearchClassVO->urlToInclude = $_startFolder . $stringPath . ".php";
                     $returnReturnSearchClassVO->file = $lastFolder . ".php";
                     $returnReturnSearchClassVO->arrayRestFolder = $arrayRestFolder;
                     return $returnReturnSearchClassVO;
                 }
                 //echo Debug::li("<b>AAA{$i}</b>[11] Navigation::SEARCH_FILE_MODE_FILE : ".$_startFolder.$stringPath."/index.php"." ");
                 if (file_exists($_startFolder . $stringPath . "/index.php")) {
                     $returnReturnSearchClassVO->success = TRUE;
                     $returnReturnSearchClassVO->className = "";
                     $returnReturnSearchClassVO->folder = "";
                     $returnReturnSearchClassVO->urlToInclude = $_startFolder . $stringPath . "/index.php";
                     $returnReturnSearchClassVO->file = "index.php";
                     $returnReturnSearchClassVO->arrayRestFolder = $arrayRestFolder;
                     //echo Debug::li("<b>{$i}</b>[11] Navigation::SEARCH_FILE_MODE_FILE : ". $_startFolder.$stringPath."/index.php");
                     return $returnReturnSearchClassVO;
                 }
                 break;
         }
         //end switch($search_file_mode){
     }
     // end for($i = count($array)-1; $i >= 0; $i--){
     return $returnReturnSearchClassVO;
 }