public function frameResponse(\FrameResponseObject $frameResponseObject) { /* if (isset($this->params[1])) { $object = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id); $parent = $object->get_environment(); if ($parent instanceof \steam_container) { $doc = $parent->get_object_by_name($this->params[1]); if ($doc instanceof \steam_document) { header("location: " . PATH_URL . "Download/Document/" . $doc->get_id()); exit; } } \ExtensionMaster::getInstance()->send404Error(); exit; }*/ if (isset($this->id)) { $object = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id); $objName = $object->get_name(); if ($object instanceof \steam_docextern) { $actionBar = new \Widgets\ActionBar(); $actionBar->setActions(array(array("name" => "URL in neuem Fenster öffnen", "link" => "javascript:window.open('{$object->get_attribute("DOC_EXTERN_URL")}');"))); $rawHtml = new \Widgets\RawHtml(); $rawHtml->setHtml("<iframe height=\"800px\" width=\"100%\" src=\"{$object->get_attribute("DOC_EXTERN_URL")}\" scrolling=\"yes\"></iframe>"); $frameResponseObject->setTitle($objName); $frameResponseObject->addWidget($actionBar); $frameResponseObject->addWidget($rawHtml); return $frameResponseObject; } else { if ($object instanceof \steam_document) { $mimetype = $object->get_attribute(DOC_MIME_TYPE); $objDesc = trim($object->get_attribute(OBJ_DESC)); $actionBar = new \Widgets\ActionBar(); $actionBar->setActions(array(array("name" => "Herunterladen", "link" => PATH_URL . "Download/Document/" . $this->id . "/" . $objName), array("name" => "Eigenschaften", "ajax" => array("onclick" => array("command" => "properties", "params" => array("id" => $this->id), "requestType" => "popup"))), array("name" => "Rechte", "ajax" => array("onclick" => array("command" => "Sanctions", "params" => array("id" => $this->id), "requestType" => "popup"))))); if ($objDesc === 0 || $objDesc === "") { $name = $objName; } else { $name = $objDesc . " (" . $objName . ")"; } $html = ""; if ($mimetype == "image/png" || $mimetype == "image/jpeg" || $mimetype == "image/jpg" || $mimetype == "image/gif") { // Image $html = "<div style=\"text-align:center\"><img style=\"max-width:100%\" title=\"{$name}\" alt=\"Bild: {$name}\" src=\"" . PATH_URL . "Download/Document/" . $this->id . "/\"></div>"; } else { if ($mimetype == "text/html") { $actionBar->setActions(array(array("name" => "Bearbeiten", "link" => PATH_URL . "Explorer/EditDocument/" . $this->id . "/"), array("name" => "Quelltext", "link" => PATH_URL . "Explorer/CodeEditDocument/" . $this->id . "/"), array("name" => "Eigenschaften", "ajax" => array("onclick" => array("command" => "properties", "params" => array("id" => $this->id), "requestType" => "popup"))), array("name" => "Rechte", "ajax" => array("onclick" => array("command" => "Sanctions", "params" => array("id" => $this->id), "requestType" => "popup"))))); //$html = "<B>Hello</I> How are <U> you?</B>"; $html = cleanHTML($object->get_content()); $dirname = dirname($object->get_path()) . "/"; preg_match_all('/href="([%a-z0-9.-_\\/]*)"/iU', $html, $matches); $orig_matches = $matches[0]; $path_matches = $matches[1]; foreach ($path_matches as $key => $path) { $path = urldecode($path); if (parse_url($path, PHP_URL_SCHEME) != null) { continue; } $ref_object = \steam_factory::get_object_by_name($GLOBALS["STEAM"]->get_id(), $dirname . $path); if ($ref_object instanceof \steam_object) { $new_path = PATH_URL . "explorer/index/" . $ref_object->get_id(); } else { $new_path = PATH_URL . "404/"; } $html = str_replace($orig_matches[$key], "href=\"" . $new_path . "\"", $html); } preg_match_all('/src="([%a-z0-9.\\-_\\/]*)"/iU', $html, $matches); $orig_matches = $matches[0]; $path_matches = $matches[1]; foreach ($path_matches as $key => $path) { $path = urldecode($path); if (parse_url($path, PHP_URL_SCHEME) != null) { continue; } $ref_object = \steam_factory::get_object_by_name($GLOBALS["STEAM"]->get_id(), $dirname . $path); if ($ref_object instanceof \steam_object) { $new_path = PATH_URL . "Download/Document/" . $ref_object->get_id(); } else { $new_path = PATH_URL . "styles/standard/images/404.jpg"; } $html = str_replace($orig_matches[$key], "src=\"" . $new_path . "\"", $html); } // die; // $html = preg_replace('/href="([a-z0-9.-_\/]*)"/iU', 'href="' . $config_webserver_ip . '/tools/get.php?object=' . $current_path . '$1"', $html); // $html = preg_replace('/src="([a-z0-9.\-_\/]*)"/iU', 'src="' . $config_webserver_ip . '/tools/get.php?object=' . $current_path . '$1"', $html); } else { if (strstr($mimetype, "text")) { $bidDokument = new \BidDocument($object); $actionBar->setActions(array(array("name" => "Bearbeiten", "link" => PATH_URL . "Explorer/EditDocument/" . $this->id . "/"), array("name" => "Herunterladen", "link" => PATH_URL . "Download/Document/" . $this->id . "/"), array("name" => "Eigenschaften", "ajax" => array("onclick" => array("command" => "properties", "params" => array("id" => $this->id), "requestType" => "popup"))), array("name" => "Rechte", "ajax" => array("onclick" => array("command" => "Sanctions", "params" => array("id" => $this->id), "requestType" => "popup"))))); //$html = "<pre>{$object->get_content()}</pre>"; $html = $bidDokument->get_content(); } else { header("location: " . PATH_URL . "Download/Document/" . $this->id . "/"); } } } $rawHtml = new \Widgets\RawHtml(); $rawHtml->setHtml($html); //$rawHtml->addWidget($breadcrumb); //$rawHtml->addWidget($environment); //$rawHtml->addWidget($loader); $frameResponseObject->setTitle($name); $frameResponseObject->addWidget($actionBar); $frameResponseObject->addWidget($rawHtml); return $frameResponseObject; } } } else { header("location: " . PATH_URL . "404/"); } }
public function frameResponse(\FrameResponseObject $frameResponseObject) { if (isset($this->id)) { $object = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id); if ($object instanceof \steam_exit) { $object = $object->get_exit(); $this->id = $object->get_id(); } } else { $currentUser = $GLOBALS["STEAM"]->get_current_steam_user(); $object = $currentUser->get_workroom(); $this->id = $object->get_id(); } if (!$object instanceof \steam_object) { \ExtensionMaster::getInstance()->send404Error(); die; } $objectModel = \AbstractObjectModel::getObjectModel($object); if ($object && $object instanceof \steam_container) { $count = $object->count_inventory(); if ($count > 150) { die("Es befinden sich {$count} Objekte im diesem Ordner. Das Laden ist nicht möglich."); } $objects = $object->get_inventory(); } else { $objects = array(); } $objectType = getObjectType($object); switch ($objectType) { case "document": header("location: " . PATH_URL . "explorer/ViewDocument/" . $this->id . "/"); die; break; case "forum": header("location: " . PATH_URL . "forum/Index/" . $this->id . "/"); die; break; case "referenceFolder": $exitObject = $object->get_exit(); header("location: " . PATH_URL . "explorer/Index/" . $exitObject->get_id() . "/"); die; break; case "referenceFile": $linkObject = $object->get_link_object(); header("location: " . PATH_URL . "explorer/Index/" . $linkObject->get_id() . "/"); die; break; case "user": header("location: " . PATH_URL . "user/Index/" . $object->get_name() . "/"); die; break; case "group": \ExtensionMaster::getInstance()->send404Error(); die; break; case "trashbin": \ExtensionMaster::getInstance()->send404Error(); die; break; case "portal_old": $rawHtml = new \Widgets\RawHtml(); //$rawHtml->setHtml("Dies ist ein \"altes\" Portal und kann nicht mehr angezeigt werden. Bitte umwandeln."); $frameResponseObject->addWidget($rawHtml); $frameResponseObject->setProblemDescription("Dies ist ein \"altes\" Portal und kann nicht mehr angezeigt werden."); $frameResponseObject->setProblemSolution("Bitte umwandeln."); return $frameResponseObject; break; case "gallery": header("location: " . PATH_URL . "gallery/Index/" . $this->id . "/"); die; break; case "portal": header("location: " . PATH_URL . "portal/Index/" . $this->id . "/"); die; break; case "portalColumn": \ExtensionMaster::getInstance()->send404Error(); die; break; case "portalPortlet": \ExtensionMaster::getInstance()->send404Error(); die; break; case "userHome": //ok break; case "groupWorkroom": //ok break; case "room": //ok break; case "container": //ok break; case "unknown": \ExtensionMaster::getInstance()->send404Error(); die; break; } $title = getCleanName($object); $parent = $object->get_environment(); if ($parent instanceof \steam_container) { //$parentLink = array("name"=>"nach oben", "link"=>PATH_URL . "explorer/Index/" . $parent->get_id() . "/"); $parentLink = ""; } else { $parentLink = ""; } $breadcrumb = new \Widgets\Breadcrumb(); $breadcrumb->setData(array($parentLink, array("name" => "<img src=\"" . PATH_URL . "explorer/asset/icons/mimetype/" . deriveIcon($object) . "\"></img> " . $title . " " . \Explorer\Model\Sanction::getMarkerHtml($object, false)))); $this->getExtension()->addJS(); $this->getExtension()->addCSS(); $actionBar = new \Widgets\ActionBar(); $actionBar->setActions(array(array("name" => "Neu", "ajax" => array("onclick" => array("command" => "newElement", "params" => array("id" => $this->id), "requestType" => "popup"))), array("name" => "Eigenschaften", "ajax" => array("onclick" => array("command" => "properties", "params" => array("id" => $this->id), "requestType" => "popup"))), array("name" => "Rechte", "ajax" => array("onclick" => array("command" => "Sanctions", "params" => array("id" => $this->id), "requestType" => "popup"))))); //$actionBar->setActions(array(array("name"=>"Neu", "ajax"=>array("onclick"=>array("command"=>"newelement"))), array("name"=>"Eigenschaften", "link"=>PATH_URL."explorer/properties/"), array("name"=>"Rechte", "link"=>PATH_URL."explorer/rights/"))); $presentation = $object->get_attribute("bid:presentation"); $preHtml = ""; if ($presentation === "head") { $objects = $object->get_inventory(); if (count($objects) > 0) { $first = $objects[0]; $mimetype = $first->get_attribute(DOC_MIME_TYPE); if ($mimetype == "image/png" || $mimetype == "image/jpeg" || $mimetype == "image/gif") { // Image $preHtml = "<div style=\"text-align:center\"><img style=\"max-width:100%\" src=\"" . PATH_URL . "Download/Document/" . $first->get_id() . "/\"></div>"; } else { if ($mimetype == "text/html") { $preHtml = strip_tags($first->get_content(), "<h1><h2><h3><h4><h5><p><a><div><style><b><i><strong><img><hr><table><tr><th><td><ul><ol><li>"); } else { if (strstr($mimetype, "text")) { $bidDokument = new \BidDocument($first); $preHtml = $bidDokument->get_content(); } } } } } else { if ($presentation === "index" && !(isset($_GET["view"]) && $_GET["view"] === "list")) { $objects = $object->get_inventory(); if (count($objects) > 0) { $first = $objects[0]; $url = \ExtensionMaster::getInstance()->getUrlForObjectId($first->get_id(), "view"); header("location: {$url}"); exit; } } } if ($preHtml !== "") { $preHtml = "<div style=\"border-bottom: 1px solid #ccc; padding-bottom:10px; margin-bottom:10px\">{$preHtml}</div>"; } $environment = new \Widgets\RawHtml(); $environment->setHtml("{$preHtml}<input type=\"hidden\" id=\"environment\" name=\"environment\" value=\"{$this->id}\">"); $loader = new \Widgets\Loader(); $loader->setWrapperId("explorerWrapper"); $loader->setMessage("Lade Dokumente ..."); $loader->setCommand("loadContent"); $loader->setParams(array("id" => $this->id)); $loader->setElementId("explorerWrapper"); $loader->setType("updater"); $rawHtml = new \Widgets\RawHtml(); $rawHtml->setHtml("<div id=\"explorerContent\">" . $breadcrumb->getHtml() . $environment->getHtml() . $loader->getHtml() . "</div>"); $rawHtml->addWidget($breadcrumb); $rawHtml->addWidget($environment); $rawHtml->addWidget($loader); $frameResponseObject->setTitle($title); $frameResponseObject->addWidget($actionBar); $frameResponseObject->addWidget($rawHtml); return $frameResponseObject; }