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