Ejemplo n.º 1
0
 /**
  * Lokalizuje command, za predpokladu, ze preklad existuje.
  *
  * @param string $link
  * @return string
  */
 public static function build($link, $isStatic = FALSE)
 {
     if (FALSE === $isStatic) {
         // Nactem si lokalizovane linky a jejich matchovaci protejsky
         $linkCreator = new Lib_LinkCreator();
         // @todo logovat ktere linky se na dane pageId pouzivaji a cechovat to
         // at se neprovadi tento proces neustale dokola.
         $linkCreator->load();
         foreach ($linkCreator->getLinkPatterns() as $pattern) {
             if (0 < preg_match('@' . $pattern['pattern'] . '@i', $link, $matches)) {
                 array_shift($matches);
                 return self::getWebRoot() . Lib_Tools::mergeCommand($pattern['localize'], $matches);
             }
         }
         return 'Link neni lokalizovan';
     } else {
         return self::getWebRoot() . $link;
     }
 }
Ejemplo n.º 2
0
 /**
  * Pokud se jedna o dynamickou routu nastavi ji a vrati TRUE.
  *
  * @return boolean
  */
 private function checkDynamicRoute()
 {
     $dynamicRoute = new Bobr_Request_DynamicRoute($this->lang);
     $uri = Bobr_Request_HttpRequest::uri();
     foreach ($dynamicRoute->items as $route) {
         // Pokud se to projde regularem mame lokalizovanou dinamickou routu.
         // Routa se ale jeste musi projet command validatorem. Jestli na ni ma user pravo.
         if (0 < preg_match('@' . $route->command . '@', $uri, $matches)) {
             $commandValidator = new Bobr_CommandValidator();
             $command = $commandValidator->getCommand($route->moduleFunctionId);
             // Pokud by byl command null znamenalo by to, ze uzivatel nema pravo na dany command.
             if (NULL !== $command) {
                 // Zjistime jestli jsme na spravne webInstanci
                 $webInstanceValidator = new Bobr_WebInstanceValidator();
                 if (FALSE === $webInstanceValidator->isCurrent($route->getWebInstanceId())) {
                     var_dump($webInstanceValidator->isCurrent($route->getWebInstanceId()));
                     Lib_Messanger::addNote('Url byla zadana chybne, presvedcte se zda-li jste na spravne strance.');
                     Bobr_Request_HttpRequest::redirect($this->webRoot);
                 }
                 // Pokud se uri neshoduje je v ni neco navic
                 if ($uri !== $matches[0]) {
                     Lib_Messanger::addNote('Url byla zadana chybne, presvedcte se zda-li jste na spravne strance.');
                     Bobr_Request_HttpRequest::redirect($this->webRoot . $matches[0]);
                 }
                 // Odstranime prvni polozku z pole, ta nas nezajima.
                 array_shift($matches);
                 // Mergneme lokalizovany command za vychozi.
                 $command = Lib_Tools::mergeCommand($command, $matches);
                 // A nastavime hodnoty pro dalsi praci.
                 $this->setCommand($command);
                 $this->setPageId($route->pageId);
                 return TRUE;
             } else {
                 Lib_Messanger::addNote('Nemate pravo na pristup na tuto stranku.');
                 Bobr_Request_HttpRequest::redirect($this->webRoot);
                 return FALSE;
             }
         }
     }
     return FALSE;
 }