/** *@desc Build URL link based on xmlnuke model. *@desc Note: target must be the follow values: *@desc - site if URLTYPE is equal to ENGINE or ADMIN *@desc - module is URLTYPE is equal to MODULE *@desc - Full URL (without protocol) if any other. *@return string */ public function getUrl() { if ($this->_urltype == URLTYPE::ENGINE || $this->_urltype == URLTYPE::ADMINENGINE) { $url = $this->_urltype; } else { $url = $this->_target; if ($this->_urltype == URLTYPE::MODULE || $this->_urltype == URLTYPE::JAVASCRIPT || $this->_urltype == URLTYPE::ADMIN) { if (strpos($this->_target, $this->_urltype) === false) { $url = $this->_urltype . $url; } } } $separator = strpos($this->_target, "?") === false ? '?' : "&"; $count = 0; foreach ($this->_parameters as $param => $value) { if ($count > 0) { $separator = '&'; } $count++; $url .= $separator . $param . '=' . XmlnukeManageUrl::encodeParam($value); } //return $url; return str_replace('&', '&', $url); }
/** * */ function processModule() { $context = Context::getInstance(); //IModule $module = null; $moduleName = $context->getModule(); if ($moduleName == "") { // Experimental... Not finished... $moduleName = $context->getVirtualCommand(); if ($moduleName == 'admin') { $moduleName = 'Xmlnuke.Admin.ControlPanel'; } } $firstError = null; $debug = $context->getDebugStatus(); // Try load modules // Catch errors from permissions and so on. $writeResult = $this->getProcessResult(); try { $module = ModuleFactory::GetModule($moduleName); $engine = $this->createXmlnukeEngine(); $writeResult->SearchAndReplace($engine->TransformDocumentFromModule($module)); } catch (ModuleNotFoundException $ex) { $module = ModuleFactory::GetModule('Xmlnuke.HandleException', array('TYPE' => 'NOTFOUND', 'MESSAGE' => 'The module "' . $moduleName . '" was not found.', 'OBJECT' => $moduleName)); $engine = $this->createXmlnukeEngine(); $writeResult->SearchAndReplace($engine->TransformDocumentFromModule($module)); } catch (NotAuthenticatedException $ex) { $s = XmlnukeManageUrl::encodeParam($_SERVER["REQUEST_URI"]); $url = $context->bindModuleUrl($context->get("xmlnuke.LOGINMODULE")) . "&ReturnUrl=" . $s; // Do not leave empty spaces at begin or end of modules // Não deixe espaços em branco no início ou fim dos módulos $context->redirectUrl($url); } }