private function _decodeName($name) { $data = AppTools::decodeUri($name, $this->app, $this->defaultModule ? $this->defaultModule : $this->app->currentTask->module, $this->defaultPlugin ? $this->defaultPlugin : $this->app->currentTask->plugin); if ($data[1]) { $template = $data[1]->path . 'templates/' . $data[2] . '.php'; } else { $template = $data[0]->path . 'templates/' . $data[2] . '.php'; } return $template; }
public function a($uri, $parameters = null) { if ($this->publicAssetUrl !== null && strpos($uri, ':') === false) { return $this->publicAssetUrl . $uri; } else { $data = AppTools::decodeUri($uri, $this->_app, $this->_app->currentTask->module, $this->_app->currentTask->plugin); if ($data[0]) { /** @var Module $m */ $m = $data[0]; return $m->getPublicUrl($data[2], true, $parameters); } elseif ($data[1]) { /** @var Plugin $p */ $p = $data[1]; return $p->getPublicUrl($data[2], true, $parameters); } return null; } }
/** @param $task Task * @param $route Route */ public function redirectTaskToRoute($task, $route) { $task->setRoute($route); if (strpos($task->route->page, '@')) { $type = explode('@', $task->route->page, 2); $class = $type[0]; $action = $type[1]; } else { $class = $task->route->page; $action = 'parseTask'; } $classData = AppTools::decodeUri($class, $this, $task->route->module, $task->route->plugin); if ($classData[1]) { $class = NamespaceTools::getNamespaceOfInstance($classData[1]) . '\\' . $classData[2]; } elseif ($classData[0]) { $class = NamespaceTools::getNamespaceOfInstance($classData[0]) . '\\' . $classData[2]; } else { trigger_error('No page class found for "' . $task->request->url . '" with "' . $task->route->page . '"'); $class = null; } $task->setPage(new $class()); if (!$task->page) { trigger_error('No page was set', E_USER_ERROR); } $task->page->task = $task; $task->page->beforeParsing(); $task->page->{$action}(); $task->page->afterParsing(); }
public function setMatchUrl($url) { if (preg_match('!^([a-zA-Z,]+)@!', $url, $urlData)) { $url = substr($url, strlen($urlData[0])); $this->methods = ArrayTools::convertToKeyArray(explode(',', strtoupper($urlData[1]))); } $data = AppTools::decodeUri($url, $this->module->app, $this->module, $this->plugin); $url = ''; if ($data[1]) { $url .= $data[1]->urlPrefix; } elseif ($data[0]) { $url .= $data[0]->urlPrefix; } $this->matchUrl = $url . $data[2]; $this->_matchData = null; }