public function frameResponse(\FrameResponseObject $frameResponseObject) { $rawHtml = new \Widgets\RawHtml(); $forumId = $this->forumId; $category_id = $this->id; $myExtension = \Forum::getInstance(); $myExtension->addCSS("style_topics.css"); //****************************************************** //** sTeam Server Connection //****************************************************** $steam = $GLOBALS["STEAM"]; /** log-in user */ $steamUser = \lms_steam::get_current_user(); /** id of the log-in user */ $steamUserId = $steamUser->get_id(); /** the login user name */ $steamUserLoginName = $steamUser->get_name(); $steamUserName = $steamUser->get_full_name(); /** the current category */ $category = \steam_factory::get_object($steam->get_id(), $category_id); /** additional required attributes */ $categoryAttributes = $category->get_attributes(array(OBJ_NAME, OBJ_DESC, OBJ_CREATION_TIME, "bid:description", "DOC_LAST_MODIFIED", "DOC_USER_MODIFIED"), 1); /** the content of the current category */ $categoryContent = $category->get_content(1); /** the creater of the current category */ $categoryCreator = $category->get_creator(1); /** the current forum */ $forum = $category->get_annotating(1); $category_allowed_write = $category->check_access_write($steamUser, 1); $category_allowed_read = $category->check_access_read($steamUser, 1); $category_allowed_annotate = $category->check_access_annotate($steamUser, 1); // flush the buffer $result = $steam->buffer_flush(); $categoryAttributes = $result[$categoryAttributes]; $categoryContent = $result[$categoryContent]; $categoryCreator = $result[$categoryCreator]; $categoryCreatorId = $categoryCreator->get_id(); $categoryAttributes["DOC_USER_MODIFIED"]->get_attributes(array(OBJ_NAME), 1); $forum = $result[$forum]; $category_allowed_write = $result[$category_allowed_write]; $category_allowed_read = $result[$category_allowed_read]; $category_allowed_annotate = $result[$category_allowed_annotate]; $category_allowed_sanction = $category->check_access(SANCTION_SANCTION); /** the environment of the forum object */ $forumEnvironment = $forum->get_environment(); /** additional required attributes */ $forumEnvironmentAttributes = $forumEnvironment->get_attributes(array(OBJ_NAME, OBJ_DESC), 1); /** additional required attributes */ $forumAttributes = $forum->get_attributes(array(OBJ_NAME, OBJ_DESC, "bid:description", "bid_forum_subtitle"), 1); /** the creator of the forum */ $forumCreator = $forum->get_creator(1); /** attributes of the creator of the category */ $categoryCreatorAttributes = $categoryCreator->get_attributes(array(OBJ_NAME, OBJ_DESC, OBJ_ICON), 1); $result = $steam->buffer_flush(); $forumAttributes = $result[$forumAttributes]; $forumCreator = $result[$forumCreator]; $categoryCreatorAttributes = $result[$categoryCreatorAttributes]; $forumEnvironmentAttributes = $result[$forumEnvironmentAttributes]; /** attributes of the creator of the forum object */ $forumCreatorAttributes = $forumCreator->get_attributes(array(OBJ_NAME, OBJ_DESC, OBJ_ICON), 1); $result = $steam->buffer_flush(); $forumCreatorAttributes = $result[$forumCreatorAttributes]; $forumCreatorId = $forumCreator->get_id(); //\Forum::getInstance()->addCSS(); if ($category_allowed_read) { $messages = $category->get_annotations(false, 1); $result = $steam->buffer_flush(); $messages = $result[$messages]; sort($messages); if (count($messages) > 0) { foreach ($messages as $message) { if (!empty($message)) { $id = $message->get_id(); $messageAttributes[$id] = $message->get_attributes(array(OBJ_NAME, OBJ_DESC, OBJ_CREATION_TIME, "DOC_LAST_MODIFIED", "DOC_USER_MODIFIED"), 1); $messageAccessWrite[$id] = $message->check_access_write($steamUser, 1); $messageContent[$id] = $message->get_content(1); $messageCreator[$id] = $message->get_creator(1); } } $result = $steam->buffer_flush(); foreach ($messages as $message) { $id = $message->get_id(); $messageAttributes[$id] = $result[$messageAttributes[$id]]; $messageContent[$id] = $result[$messageContent[$id]]; $messageCreator[$id] = $result[$messageCreator[$id]]; $messageCreator[$id]->get_attributes(array(OBJ_NAME), 1); $messageAttributes[$id]["DOC_USER_MODIFIED"]->get_attributes(array(OBJ_NAME), 1); $messageAccessWrite[$id] = $result[$messageAccessWrite[$id]]; } $result = $steam->buffer_flush(); } } //START CHECK RIGHTS OF THE CURRENT USER //$isReplyEditable= $category->get_attribute("bid:forum:is_editable"); //if(trim($isReplyEditable) == "checked"){ // $isReplyEditable=true; //} else{ // $isReplyEditable=false; //} $isForumCreator = false; $isTopicCreator = false; $canAnnotate = $category_allowed_write || $category_allowed_annotate; $canRead = $category_allowed_read; $hasSanctionRights = $category_allowed_sanction; if ($forumCreatorId == $steamUserId) { $isForumCreator = true; $isTopicCreator = true; $canAnnotate = true; $canRead = true; } elseif ($categoryCreatorId == $steamUserId) { $isTopicCreator = true; $canAnnotate = true; $canRead = true; } elseif ($canAnnotate) { $canRead = true; } //END CHECK RIGHTS OF THE CURRENT USER $content = \Forum::getInstance()->loadTemplate("forumShowTopic.template.html"); $addIcon = \Forum::getInstance()->getAssetUrl() . "icons/new.gif"; $editIcon = \Forum::getInstance()->getAssetUrl() . "icons/message_edit.gif"; $deleteIcon = \Forum::getInstance()->getAssetUrl() . "icons/message_delete.gif"; if ($category_allowed_read) { $content->setVariable("FORUM_NAME", $forumAttributes["OBJ_DESC"]); $content->setVariable("CATEGORIE_NAME", $categoryAttributes[OBJ_DESC]); $content->setVariable("FORUM_OWNER", $forumCreator->get_full_name()); $content->setVariable("FORUM_OWNER_URL", PATH_URL . "profile/index/" . $forumCreator->get_name()); $content->setVariable("CATEGORIE_DESCRIPTION", $categoryAttributes["bid:description"]); $content->setVariable("CATEGORIE_CREATOR", $categoryCreator->get_full_name()); $content->setVariable("CATEGORIE_CREATION_TIME", date("j.m.Y G:i", $categoryAttributes['OBJ_CREATION_TIME'])); $content->setVariable("CATEGORIE_CREATOR_URL", PATH_URL . "profile/index/" . $categoryCreator->get_name()); $content->setVariable("CATEGORIE_CONTENT", $categoryContent); if ($canAnnotate) { $popupMenu = new \Widgets\PopupMenu(); $popupMenu->setData($category); $popupMenu->setElementId("overlay_menu"); $popupMenu->setParams(array(array("key" => "forum", "value" => $forumId), array("key" => "category", "value" => $category_id))); $content->setVariable("POPUP_MENU", $popupMenu->getHtml()); $rawHtml->addWidget($popupMenu); } if ($categoryAttributes[OBJ_CREATION_TIME] != $categoryAttributes["DOC_LAST_MODIFIED"]) { if (strlen(trim($categoryContent)) > 0) { $content->setVariable("AUTHOR_EDIT", $categoryAttributes["DOC_USER_MODIFIED"]->get_full_name()); $content->setVariable("TIMESTAMP_EDIT", date("j.m.Y G:i", $categoryAttributes["DOC_LAST_MODIFIED"])); } else { $content->setVariable("AUTHOR_DELETE", $categoryAttributes["DOC_USER_MODIFIED"]->get_full_name()); $content->setVariable("TIMESTAMP_DELETE", date("j.m.Y G:i", $categoryAttributes["DOC_LAST_MODIFIED"])); } } $column_width = 763; if ($category->get_attribute("bid:forum:category:picture_id") !== 0) { $picture_width = $category->get_attribute("bid:forum:category:picture_width") != 0 ? $category->get_attribute("bid:forum:category:picture_width") : ""; if (extract_percentual_length($picture_width) == "") { $bare_picture_width = extract_length($picture_width); if ($bare_picture_width == "") { $picture_width = ""; } else { if ($bare_picture_width > $column_width - 25) { $picture_width = $column_width - 25; } } } $content->setVariable("MESSAGE_PICTURE_URL1", getDownloadUrlForObjectId($category->get_attribute("bid:forum:category:picture_id"))); if ($category->get_attribute("bid:forum:category:picture_alignment") !== "none") { $content->setVariable("MESSAGE_PICTURE_ALIGNMENT1", $category->get_attribute("bid:forum:category:picture_alignment")); } else { $content->setVariable("MESSAGE_PICTURE_ALIGNMENT1", ""); } $content->setVariable("MESSAGE_PICTURE_WIDTH1", $picture_width); } if (is_array($messages) && isset($messages)) { if (count($messages) > 0) { $content->setVariable("EXISTS_REPLY", "Antworten"); } foreach ($messages as $message) { $id = $message->get_id(); $content->setCurrentBlock("message"); $content->setVariable("MESSAGE_CONTENT", $messageContent[$id]); $content->setVariable("MESSAGE_CREATOR", $messageCreator[$id]->get_full_name()); $content->setVariable("MESSAGE_CREATOR_PROFILE", PATH_URL . "profile/index/" . $messageCreator[$id]->get_name()); $content->setVariable("MESSAGE_CREATION_TIME", date("j.m.Y G:i", $messageAttributes[$id][OBJ_CREATION_TIME])); $content->setVariable("MESSAGE_NAME", $messageAttributes[$id][OBJ_DESC]); $content->setVariable("MES_ID", "message_" . $id); if ($messageAttributes[$id][OBJ_CREATION_TIME] != $messageAttributes[$id]["DOC_LAST_MODIFIED"]) { if (strlen(trim($messageContent[$id])) > 0) { $content->setVariable("AUTHOR_MES_EDIT", $messageAttributes[$id]["DOC_USER_MODIFIED"]->get_full_name()); $content->setVariable("TIMESTAMP_MES_EDIT", date("j.m.Y G:i", $messageAttributes[$id]["DOC_LAST_MODIFIED"])); } else { $content->setVariable("AUTHOR_MES_DELETE", $messageAttributes[$id]["DOC_USER_MODIFIED"]->get_full_name()); $content->setVariable("TIMESTAMP_MES_DELETE", date("j.m.Y G:i", $messageAttributes[$id]["DOC_LAST_MODIFIED"])); } } if ($canAnnotate) { $popupMenu2 = new \Widgets\PopupMenu(); $popupMenu2->setData($message); $popupMenu2->setElementId("overlay_menu2"); $popupMenu2->setParams(array(array("key" => "forum", "value" => $forumId), array("key" => "category", "value" => $category_id))); $content->setVariable("POPUP_MENU2", $popupMenu2->getHtml()); $rawHtml->addWidget($popupMenu2); } if ($message->get_attribute("bid:forum:category:picture_id") !== 0) { $content->setCurrentBlock("BLOCK_MESSAGE_PICTURE"); $picture_width = $message->get_attribute("bid:forum:category:picture_width") != "0" ? trim($message->get_attribute("bid:forum:category:picture_width")) : ""; if (extract_percentual_length($picture_width) == "") { $bare_picture_width = extract_length($picture_width); if ($bare_picture_width == "") { $picture_width = ""; } else { if ($bare_picture_width > $column_width - 25) { $picture_width = $column_width - 25; } } } $content->setVariable("MESSAGE_PICTURE_URL", getDownloadUrlForObjectId($message->get_attribute("bid:forum:category:picture_id"))); if ($message->get_attribute("bid:forum:category:picture_alignment") !== "none") { $content->setVariable("MESSAGE_PICTURE_ALIGNMENT", $message->get_attribute("bid:forum:category:picture_alignment")); } else { $content->setVariable("MESSAGE_PICTURE_ALIGNMENT", ""); } $content->setVariable("MESSAGE_PICTURE_WIDTH", $picture_width); } $content->parse("message"); } } } else { $content->setVariable("NO_ACCESS", "Sie haben keine Berechtigung diesen Inhalt zu betrachten!\n\t\t\tBitte wenden Sie sich an die Forumsverwaltung!"); } $rawHtml->setHtml($content->get()); $actions = array(); if ($canAnnotate) { $actions[] = array("name" => "Antworten", "ajax" => array("onclick" => array("command" => "newReply", "params" => array("id" => $this->id, "forum" => $forumId), "requestType" => "popup"))); } if ($isForumCreator) { //$actions[] = array("name" => "Eigenschaften", "ajax"=>array("onclick"=>array("command"=>"EditTopic", "params"=>array("id"=>$this->id ,"forum" => $forumId), "requestType"=>"popup"))); } //if($category->check_access(SANCTION_SANCTION,$steamUser)){ //if($isForumCreator || $hasSanctionRights){ // $actions[] = array("name"=>"Rechte", "ajax"=>array("onclick"=>array("command"=>"Sanctions", "params"=>array("id"=>$this->id) , "requestType"=>"popup", "namespace"=>"explorer"))); //} $frameResponseObject->setTitle("Forum - " . $forumAttributes["OBJ_DESC"] . " - Thema - " . $categoryAttributes["OBJ_DESC"] . " "); $parent = $forum->get_environment(); if ($parent instanceof \steam_container) { $parentLink = PATH_URL . "explorer/Index/" . $parent->get_id(); } else { $parentLink = ""; } $title = $categoryAttributes[OBJ_DESC]; // $breadcrumb = new \Widgets\Breadcrumb(); // $breadcrumb->setData(array($parentLink, array("name" => "<img src=\"".PATH_URL."explorer/asset/icons/mimetype/".deriveIcon(\Explorer::getInstance())."\"></img> " . $title . " " . \Explorer\Model\Sanction::getMarkerHtml(\Explorer::getInstance(), false)))); $actionbar = new \Widgets\ActionBar(); $actionbar->setActions($actions); // $explorerId=$forum->get_environment()->get_id(); //$frameResponseObject->setHeadline(array(array("name" =>"Zurück zu ". $forumAttributes["OBJ_DESC"], "link" => PATH_URL ."forum/index/". $forumId))); $widget = new \Widgets\RawHtml(); $html = '<div id="backToForum">Zurück zu '; $html1 = '<a href="' . PATH_URL . "forum/index/" . $forumId . '">'; $html2 = $forum->get_name() . '</a></div>'; $widget->setHtml($html . $html1 . $html2); $frameResponseObject->addWidget($widget); $frameResponseObject->addWidget($actionbar); $frameResponseObject->addWidget($rawHtml); return $frameResponseObject; }
private function getImagePath($id, $portlet = "") { if ($portlet != "") { $inventory = $portlet->get_inventory(); foreach ($inventory as $object) { //TODO: return url by name } } return getDownloadUrlForObjectId($id); }