public function frameResponse(\FrameResponseObject $frameResponseObject) { $portal = \lms_portal::get_instance(); $lms_user = $portal->get_user(); $content = \Startpage::getInstance()->loadTemplate("startpage.template.html"); if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["portal_values"])) { $portal_user = $GLOBALS["STEAM"]->get_current_steam_user(); $portal_user->set_attribute("USER_LANGUAGE", $_POST["portal_values"]["USER_LANGUAGE"]); $lang_index = language_support::get_language_index(); language_support::choose_language($lang_index[$_POST["portal_values"]["USER_LANGUAGE"]]); $cache = get_cache_function($portal_user->get_name()); $cache->drop("lms_steam::user_get_profile", $portal_user->get_name()); $cache->drop("lms_portal::get_menu_html", $portal_user->get_name(), TRUE); header("Location: " . $_POST["portal_values"]["redirect"]); } if ($lms_user->is_logged_in()) { header("Location: " . PATH_URL . "home/"); exit; } else { $content->setCurrentBlock("BLOCK_SIGN_IN"); $content->setVariable("LOGIN_FORM_ACTION", URL_SIGNIN); $content->setVariable("LABEL_LOGIN", gettext("Login")); $content->setVariable("LABEL_PASSWORD", gettext("Password")); $content->setVariable("SIGN_IN_BUTTON_TEXT", gettext("Sign in")); $content->parse("BLOCK_SIGN_IN"); if (STARTPAGE_AS_PORTAL) { $rawHtml = new \Widgets\RawHtml(); $rawHtml->setHtml($content->get()); $urlRequestObject = new \UrlRequestObject(); $urlRequestObject->setNamespace("Portal"); $urlRequestObject->setCommand("Index"); $urlRequestObject->setParams(array(STARTPAGE_AS_PORTAL_ID)); $command = new \Portal\Commands\Index(); if ($command->validateData($urlRequestObject)) { $command->processData($urlRequestObject); $portalFrameResponeObject = $command->frameResponse(new \FrameResponseObject()); } $frameResponseObject->addWidget($rawHtml); $frameResponseObject->addWidget($portalFrameResponeObject->getWidgets()); } else { $startpage_text_path = "./styles/" . STYLE . "/etc/startpage_text.xml"; if (file_exists($startpage_text_path)) { $startpage_text = simplexml_load_file($startpage_text_path, null, LIBXML_NOCDATA); $content->setVariable("STARTPAGE_TEXT_LEFT", $startpage_text->left); $content->setVariable("STARTPAGE_TEXT_CENTER", $startpage_text->center); $content->setVariable("STARTPAGE_TEXT_RIGHT", $startpage_text->right); } else { $content->setVariable("STARTPAGE_TEXT_LEFT", "Konnte startpage_text.xml nicht finden."); $content->setVariable("STARTPAGE_TEXT_CENTER", ""); $content->setVariable("STARTPAGE_TEXT_RIGHT", ""); } $rawHtml = new \Widgets\RawHtml(); $code = \Startpage::getInstance()->readJS(); $code = str_replace("{STARTPAGE_IMAGE_TEXT_LONG}", STARTPAGE_IMAGE_TEXT_LONG, $code); $code = str_replace("{STARTPAGE_IMAGE_TEXT_MEDIUM}", STARTPAGE_IMAGE_TEXT_MEDIUM, $code); $code = str_replace("{STARTPAGE_IMAGE_TEXT_SHORT}", STARTPAGE_IMAGE_TEXT_SHORT, $code); $rawHtml->setJs($code); $rawHtml->setHtml($content->get()); $frameResponseObject->addWidget($rawHtml); } $frameResponseObject->setTitle(""); return $frameResponseObject; } }
public function handleRequest($pathArray) { // handel Frame Requests $urlRequestObject = new UrlRequestObject(); if (isset($pathArray[0])) { $urlRequestObject->setNamespace($pathArray[0]); } if (isset($pathArray[1])) { $urlRequestObject->setCommand($pathArray[1]); } if (count($pathArray) > 2) { $params = array(); for ($i = 2; $i < count($pathArray); $i++) { $params[] = $pathArray[$i]; } $urlRequestObject->setParams($params); } $namespaceExtension = ExtensionMaster::getInstance()->getExtensionForNamespace($urlRequestObject->getNamespace()); if (isset($namespaceExtension)) { if ($urlRequestObject->getCommand() == "") { $urlRequestObject->setCommand($namespaceExtension->getDefaultCommandName($urlRequestObject->getNamespace())); } $command = $namespaceExtension->getCommand($urlRequestObject->getCommand()); if ($command == null) { if (strtolower($urlRequestObject->getCommand()) == "asset") { $command = new Asset(); } else { if (strtolower($urlRequestObject->getCommand()) == "css") { $command = new Css(); } else { if (strtolower($urlRequestObject->getCommand()) == "js") { $command = new Js(); } } } } if ($command == null) { if (DEVELOPMENT_MODE) { throw new Exception("Command {$urlRequestObject->getCommand()} not found."); } else { ExtensionMaster::getInstance()->send404Error(); } } //init commands extension $command->getExtension(); if ($command->httpAuth($urlRequestObject)) { include_once PATH_LIB . "http_auth_handling.inc.php"; if (!http_auth()) { die("Bitte anmelden."); } } $frame = lms_portal::get_instance(); if ($command instanceof IResourcesCommand) { if ($command->validateData($urlRequestObject)) { if ($command->isGuestAllowed($urlRequestObject)) { $frame->initialize(GUEST_ALLOWED, $command->workOffline($urlRequestObject)); } else { $frame->initialize(GUEST_NOT_ALLOWED, $command->workOffline($urlRequestObject)); } ExtensionMaster::getInstance()->getExtensionById("Chronic")->setCurrentObject($namespaceExtension->getCurrentObject($urlRequestObject)); $command->processData($urlRequestObject); $command->resourcesResponse(); die; } } else { if ($command instanceof IFrameCommand) { if ($command->validateData($urlRequestObject)) { if ($command->isGuestAllowed($urlRequestObject)) { $frame->initialize(GUEST_ALLOWED, $command->workOffline($urlRequestObject)); } else { $frame->initialize(GUEST_NOT_ALLOWED, $command->workOffline($urlRequestObject)); } ExtensionMaster::getInstance()->getExtensionById("Chronic")->setCurrentObject($namespaceExtension->getCurrentObject($urlRequestObject)); $command->processData($urlRequestObject); $frameResponeObject = $command->frameResponse(new FrameResponseObject()); if ($command->embedContent($urlRequestObject)) { $data = \Widgets\Widget::getData($frameResponeObject->getWidgets()); $frame->add_css_style($data["css"]); $frame->add_javascript_code("Widgets", $data["js"]); $frame->set_page_main($frameResponeObject->getHeadline(), $data["html"] . "<script type=\"text/javascript\">{$data["postjs"]}</script>", ""); $frame->set_page_title($frameResponeObject->getTitle()); $frame->set_confirmation($frameResponeObject->getConfirmText()); $frame->set_problem_description($frameResponeObject->getProblemDescription(), $frameResponeObject->getProblemSolution()); $frame->show_html(); die; } else { $data = \Widgets\Widget::getData($frameResponeObject->getWidgets()); echo $data["html"]; die; } } } } if (DEVELOPMENT_MODE) { throw new Exception("Command {$urlRequestObject->getCommand()} execution error."); } else { ExtensionMaster::getInstance()->send404Error(); } } ExtensionMaster::getInstance()->send404Error(); }