Ejemplo n.º 1
0
 /**
  * @param string $internalUrl
  * @return mixed The URL to access the target file from outside, if available, or FALSE.
  */
 public static function toExternalUrl($internalUrl)
 {
     $currentProc = ProcManager::getInstance()->getCurrentProcess();
     if ($currentProc) {
         $checknum = $currentProc->getChecknum();
     } else {
         $checknum = -1;
     }
     $urlParts = AdvancedPathLib::parse_url($internalUrl);
     if ($urlParts === false) {
         return $internalUrl;
     }
     if ($urlParts['scheme'] === EyeosAbstractVirtualFile::URL_SCHEME_SYSTEM) {
         // EXTERN
         try {
             $externPath = AdvancedPathLib::resolvePath($urlParts['path'], '/extern', AdvancedPathLib::OS_UNIX | AdvancedPathLib::RESOLVEPATH_RETURN_REFDIR_RELATIVE);
             return 'index.php?extern=' . $externPath;
         } catch (Exception $e) {
         }
         // APPS
         try {
             $appPath = AdvancedPathLib::resolvePath($urlParts['path'], '/apps', AdvancedPathLib::OS_UNIX | AdvancedPathLib::RESOLVEPATH_RETURN_REFDIR_RELATIVE);
             $appName = utf8_substr($appPath, 1, utf8_strpos($appPath, '/', 1));
             $appFile = utf8_substr($appPath, utf8_strlen($appName) + 1);
             return 'index.php?checknum=' . $checknum . '&appName=' . $appName . '&appFile=' . $appFile;
         } catch (Exception $e) {
         }
         return $internalUrl;
     }
     //TODO
     return $internalUrl;
 }
Ejemplo n.º 2
0
 public function testResolvePath()
 {
     $refDir = EYEOS_TESTS_TMP_PATH;
     $this->assertEquals(EYEOS_TESTS_TMP_PATH . '/path/myDir', AdvancedPathLib::resolvePath('/path/to/../myDir', $refDir));
     $this->assertEquals('/path/myDir', AdvancedPathLib::resolvePath('/path/to/../myDir', $refDir, AdvancedPathLib::RESOLVEPATH_RETURN_REFDIR_RELATIVE));
     $this->assertEquals('/path/myDir', AdvancedPathLib::resolvePath(EYEOS_TESTS_TMP_PATH . '/path/to/../myDir', $refDir, AdvancedPathLib::RESOLVEPATH_RETURN_REFDIR_RELATIVE));
     $this->assertEquals('/path/myDir', AdvancedPathLib::resolvePath(realpath(EYEOS_TESTS_TMP_PATH) . '/path/to/../myDir', $refDir, AdvancedPathLib::RESOLVEPATH_RETURN_REFDIR_RELATIVE));
     try {
         AdvancedPathLib::resolvePath(EYEOS_TESTS_TMP_PATH . '/path/to/../../my/../incorrectDir/../..', $refDir, AdvancedPathLib::RESOLVEPATH_RETURN_REFDIR_RELATIVE);
         $this->fail();
     } catch (InvalidArgumentException $e) {
         // normal situation
     }
 }