예제 #1
0
 /**
  * @param array $matches
  *
  * @return string
  */
 private function rewriteInternalUriCallback(array $matches)
 {
     if ($this->internalUriValidationRule->isValid($matches[7]) === true) {
         $resourceParts = explode('/', $matches[7]);
         $path = $this->getResourcePath($resourceParts);
         if ($this->controllerActionExists->controllerActionExists($path) === true) {
             return '<a' . $matches[1] . 'href="' . $this->router->route($matches[7]) . '"';
         }
     }
     return $matches[0];
 }
예제 #2
0
 /**
  * @param string $mode
  * @param string $moduleName
  * @param string $uri
  * @param int    $articleId
  *
  * @return bool
  */
 protected function isValidLink($mode, $moduleName, $uri, $articleId)
 {
     switch ($mode) {
         case 1:
             return $this->modules->isActive($moduleName);
         case 2:
             return $this->internalUriValidationRule->isValid($uri);
         case 3:
             return !empty($uri);
         case 4:
             if ($this->modules->isActive('articles')) {
                 return $this->articleExistsValidationRule->isValid($articleId);
             }
     }
     return false;
 }