Beispiel #1
0
 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;
     }
 }
Beispiel #2
0
 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();
 }