public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PAKAGE END $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PAKAGE END $compare = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->params[1]); $to = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->params[2]); $wiki_html_handler = new \lms_wiki($wiki_container); //$wiki_html_handler->set_admin_menu( "versions", $wiki_doc ); $content = \Wiki::getInstance()->loadTemplate("wiki_version_compare.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "wiki_version_compare.template.html" ); $difftext = wiki_diff_html($to, $compare); $content->setVariable("DIFF_TEXT", $difftext); $wiki_html_handler->set_main_html($content->get()); $rootlink = \lms_steam::get_link_to_root($wiki_container); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => PATH_URL . "wiki/versionoverview/" . $wiki_doc->get_id(), "name" => gettext("Version management")), array("link" => "", "name" => gettext("Version compare") . " (" . $compare->get_version() . " " . gettext("to") . " " . $to->get_version() . ")")) : ($headline = array(array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => PATH_URL . "wiki/versionoverview/" . $wiki_doc->get_id() . "/versions/", "name" => gettext("Version management")), array("link" => "", "name" => gettext("Version compare") . " (" . $compare->get_version() . " " . gettext("to") . " " . $to->get_version() . ")"))); /*$portal->set_page_main( $headline, $wiki_html_handler->get_html() ); $portal->show_html(); */ $frameResponseObject->setHeadline($headline); $widget = new \Widgets\RawHtml(); $widget->setHtml($wiki_html_handler->get_html()); $frameResponseObject->addWidget($widget); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PAKAGE END $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PAKAGE END defined("OBJ_ID") or define("OBJ_ID", $wiki_container->get_id()); $content = \Wiki::getInstance()->loadTemplate("wiki_edit.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "wiki_edit.template.html" ); $wiki_entries = $wiki_container->get_inventory(CLASS_DOCUMENT); foreach ($wiki_entries as $wiki_entry) { if ($wiki_entry->get_attribute(DOC_MIME_TYPE) === "text/wiki") { $name = $wiki_entry->get_name(); $content->setCurrentBlock("BLOCK_WIKI_ENTRY_OPTION"); $content->setVariable("WIKI_ENTRY_OPTION", "<option value=\"{$name}\">{$name}</option>"); $content->parse("BLOCK_WIKI_ENTRY_OPTION"); } } $problems = ""; if (!isset($create)) { $create = FALSE; } if ($_SERVER["REQUEST_METHOD"] == "POST") { $values = $_POST["values"]; if (get_magic_quotes_gpc()) { if (!empty($values['title'])) { $values['title'] = stripslashes($values['title']); } if (!empty($values['body'])) { $values['body'] = stripslashes($values['body']); } } if (empty($values["title"])) { $problems = gettext("Please enter a subject for your message."); } if (empty($values["body"])) { $problems .= empty($problems) ? gettext("Please enter your message.") : "<br>" . gettext("Please enter your message."); } if (strpos($values["title"], "/")) { if (!isset($problems)) { $problems = ""; } $problems .= gettext("Please don't use the \"/\"-char in the subject of your post."); } if (empty($problems)) { $wiki_content = str_replace("@", "@", $values["body"]); if (!empty($values['save'])) { if ($create) { $wiki_doc = \steam_factory::create_document($GLOBALS["STEAM"]->get_id(), $values["title"] . ".wiki", $wiki_content, "text/wiki", $wiki_container, ""); } else { // PRUEFEN, OB ALLES OK, DANN NEUE WERTE SPEICHERN $wiki_doc->set_name($values['title'] . ".wiki"); $wiki_doc->set_content($wiki_content); } // Clean cache for wiki_entries $cache = get_cache_function($wiki_container->get_id(), 600); $cache->clean($wiki_container->get_id()); // clean rsscache $rcache = get_cache_function("rss", 600); $feedlink = PATH_URL . "services/feeds/wiki_public.php?id=" . $wiki_container->get_id(); $rcache->drop("lms_rss::get_items", $feedlink); header("Location: " . PATH_URL . "wiki/editentry/" . $wiki_doc->get_id() . "/"); exit; } else { // PREVIEW $content->setCurrentBlock("BLOCK_PREVIEW"); $content->setVariable("LABEL_PREVIEW_EDIT", gettext("Preview the description")); $content->setVariable("PREVIEW_EDIT", get_formatted_output($values["desc"])); $content->parse("BLOCK_PREVIEW"); $headline = gettext("Change it?"); $content->setVariable("TEXT_DSC", h($values["desc"])); $content->setVariable("TITLE_COMMENT", h($values["title"])); } } else { $frameResponseObject->setProblemDescription($problems); //$portal->set_problem_description( $problems ); } } if (empty($values)) { $wikicontent = ""; $wikiname = ""; if (!$create) { $wikicontent = $wiki_doc->get_content(); $wikicontent = str_replace("@", "@", $wikicontent); $wikiname = $wiki_doc->get_name(); } if (WIKI_WYSIWYG) { //TODO $content->setVariable("TEXT_DSC", h($wikicontent)); //$content->setVariable( "TEXT_DSC", wikitext_to_html( h($wikicontent), $wiki_container->get_id() ) ); //$content->setVariable( "NIC_SCRIPT", PATH_JAVASCRIPT . "niceditor/nicEdit.js"); } else { $content->setVariable("TEXT_DSC", h($wikicontent)); } $content->setVariable("TITLE_COMMENT", str_replace(".wiki", "", h($wikiname))); $content->setVariable("BACK_LINK", $_SERVER["HTTP_REFERER"]); } else { $content->setVariable("TITLE_COMMENT", h($values["title"])); if (isset($values["body"])) { $content->setVariable("TEXT_DSC", h($values["body"])); } } $content->setVariable("LABEL_HERE_IT_IS", ""); $content->setVariable("LABEL_TITLE", gettext("Title")); $content->setVariable("LABEL_BODY", gettext("Body")); //$content->setVariable( "LABEL_WIKI_H2", gettext( "H2" ) ); //$content->setVariable( "HINT_WIKI_H2", gettext( "heading (level 2)" ) ); //$content->setVariable( "LABEL_WIKI_H3", gettext( "H3" ) ); //$content->setVariable( "HINT_WIKI_H3", gettext( "heading (level 3)" ) ); //$content->setVariable( "LABEL_WIKI_BOLD", gettext( "'''B'''" ) ); //$content->setVariable( "HINT_WIKI_BOLD", gettext( "boldface" ) ); //$content->setVariable( "LABEL_WIKI_ITALIC", gettext( "''I''" ) ); //$content->setVariable( "HINT_WIKI_ITALIC", gettext( "italic" ) ); //$content->setVariable( "LABEL_WIKI_BULLET_LIST", gettext( "* list" ) ); //$content->setVariable( "HINT_WIKI_BULLET_LIST", gettext( "bullet list" ) ); //$content->setVariable( "LABEL_WIKI_NUMBERED_LIST", gettext( "# list" ) ); //$content->setVariable( "HINT_WIKI_NUMBERED_LIST", gettext( "numbered list" ) ); //$content->setVariable( "LABEL_WIKI_LINE", gettext( "-----" ) ); //$content->setVariable( "HINT_WIKI_LINE", gettext( "horizontal line" ) ); //$content->setVariable( "LABEL_WIKI_LINK", gettext( "[[wiki]]" ) ); //$content->setVariable( "HINT_WIKI_LINK", gettext( "wiki link" ) ); //$content->setVariable( "LABEL_WIKI_URL", gettext( "[URL]" ) ); //$content->setVariable( "HINT_WIKI_URL", gettext( "web link" ) ); //$content->setVariable( "LABEL_WIKI_IMAGE", gettext( "IMG" ) ); //$content->setVariable( "HINT_WIKI_IMAGE", gettext( "image" ) ); $content->setVariable("LABEL_PREVIEW", gettext("Preview")); $content->setVariable("LABEL_SAVE_CHANGES", gettext("Save changes")); $content->setVariable("LABEL_RETURN", gettext("back")); $content->setVariable("JS_NOTICE", '"' . gettext("Warning!\\nYou have edited your entry!\\nIf you proceed, all changes will be lost!\\nDo you really want to proceed?") . '"'); // widget: Images //$widget = new HTML_TEMPLATE_IT(); //$widget->loadTemplateFile( PATH_TEMPLATES . "widget_wiki_images.template.html" ); $inventory = $wiki_container->get_inventory(); if (!is_array($inventory)) { $inventory = array(); } if (sizeof($inventory) > 0) { \steam_factory::load_attributes($GLOBALS["STEAM"]->get_id(), $inventory, array(OBJ_NAME, OBJ_DESC, DOC_MIME_TYPE)); $images = array(); foreach ($inventory as $object) { $mime = strtolower($object->get_attribute(DOC_MIME_TYPE)); if ($mime === "image/jpg" || $mime === "image/jpeg" || $mime === "image/gif" || $mime === "image/png") { $images[] = $object; } } if (empty($images)) { $content->setCurrentBlock("BLOCK_WIKI_ENTRY_NOIMAGE"); $content->setVariable("WIKI_ENTRY_NOIMAGE", "Es befinden sich keine Bilder in der Mediathek."); $content->parse("BLOCK_WIKI_ENTRY_NOIMAGE"); } else { $i = 0; foreach ($images as $image) { $path = PATH_URL . "download/image/" . $image->get_id() . "/40/80/"; $content->setCurrentBlock("BLOCK_WIKI_ENTRY_IMAGE"); $content->setVariable("WIKI_ENTRY_IMAGE", <<<END <table style="float:left"> \t<tr> \t\t<td> \t\t\t<input id="image{$i}" type="radio" name="images" value="{$image->get_name()}"/> \t\t</td> \t\t<td> \t\t\t<img src="{$path}" title="{$image->get_name()}"> \t\t</td> \t</tr> </table> \t END ); $content->parse("BLOCK_WIKI_ENTRY_IMAGE"); $i++; //$widget->setCurrentBlock("BLOCK_IMAGE"); //$widget->setVariable("WIKI_IMAGE_NAME", $image->get_name()); //$widget->setVariable("WIKI_IMAGE_ADD_LINK", "javascript:insert('[[Image:" . $image->get_identifier() . "]]', '', 'formular', 'values[body]')"); //$widget->setVariable("WIKI_IMAGE_LINK", PATH_URL . "get_document.php?id=" . $image->get_id() . "&width=40&height=80"); //$widget->setVariable("WIKI_IMAGE_VIEW_LINK", PATH_URL . "doc/" . $image->get_id() . "/"); //$widget->setVariable("WIKI_IMAGE_TITLE", $image->get_name()); //$widget->setVariable("WIKI_IMAGE_ADD", gettext("Insert")); //$widget->setVariable("WIKI_IMAGE_VIEW", gettext("View")); //$widget->parse("BLOCK_IMAGE"); } } } //$widget->setVariable("UPLOAD_TEXT", gettext("Upload an image")); //$widget->setVariable("UPLOAD_LINK", PATH_URL . "upload/?env=" . $wiki_container->get_id()); //$widget->setVariable("WIKI_IMAGE_EXTERNAL", gettext("External image")); //$widget->setVariable("WIKI_IMAGE_EXTERNAL_LINK", "javascript:insert('[[Image:http://', ']]', 'formular', 'values[body]')"); //$content->setCurrentBlock("BLOCK_WIDGET"); //$content->setVariable("WIDGET_TITLE", gettext("Images")); //$content->setVariable("WIDGET_HTML_CODE", $widget->get()); //$content->parse("BLOCK_WIDGET"); if ($create) { $pagetitle = gettext("New Article"); } else { $pagetitle = str_replace("%NAME", h(substr($wiki_doc->get_name(), 0, -5)), gettext("Edit '%NAME'?")); } $rootlink = \lms_steam::get_link_to_root($wiki_container); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => "", "name" => $pagetitle)) : ($headline = array(array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => "", "name" => $pagetitle))); /*$portal->set_page_main( $headline, $content->get() ); $portal->show_html(); */ $frameResponseObject->setHeadline($headline); $rawHtml = new \Widgets\RawHtml(); $rawHtml->setHtml($content->get()); $frameResponseObject->addWidget($rawHtml); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PAKAGE END $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PAKAGE END $version_doc = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->params[1]); if ($_SERVER["REQUEST_METHOD"] == "POST") { $problems = ""; try { $new_content = $version_doc->get_content(); $wiki_doc->set_content($new_content); } catch (Exception $ex) { $problems = $ex->get_message(); } if (empty($problems)) { $_SESSION["confirmation"] = str_replace("%VERSION", $version_doc->get_version(), gettext("Version %VERSION recovered.")); header("Location: " . PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/"); exit; } else { $frameResponseObject->setProblemDescription($problems); //$portal->set_problem_description( $problems, $hints ); } } $backlink = PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/"; $content = \Wiki::getInstance()->loadTemplate("wiki_recover_version.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "wiki_recover_version.template.html" ); $content->setVariable("BACK_LINK", $backlink); $content->setVariable("INFO_TEXT", gettext("A new version will be created from the one you are recovering. The actual version will not be lost. Is that what you want?")); $content->setVariable("LABEL_OK", gettext("Yes, Recover version")); $content->setVariable("BACKLINK", "<a href=\"{$backlink}\">" . gettext("back") . "</a>"); $rootlink = \lms_steam::get_link_to_root($wiki_container); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => "", "name" => str_replace("%VERSION", $version_doc->get_version(), gettext("Recover version %VERSION")))) : ($headline = array(array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => "", "name" => str_replace("%VERSION", $version_doc->get_version(), gettext("Recover version %VERSION"))))); $frameResponseObject->setHeadline($headline); $widget = new \Widgets\RawHtml(); $widget->setHtml($content->get()); $frameResponseObject->addWidget($widget); return $frameResponseObject; /*$portal->set_page_main( $headline, $content->get() ); $portal->show_html(); */ }
private function getAllExtensionIds() { $result = array(); $paths = $this->getExtensionPaths(); $cache_status = CacheSettings::caching_enabled(); CacheSettings::enable_caching(); $cache = get_cache_function("extensionmaster", 3600); foreach ($paths as $path) { $result += $cache->call(array($this, "searchForExtensions"), $path); //$result += $this->searchForExtensions($path); } if (!$cache_status) { CacheSettings::disable_caching(); } if (defined("EXTENSIONS_WHITELIST") && EXTENSIONS_WHITELIST != "") { $whitelist = explode(",", EXTENSIONS_WHITELIST); $whitelist = array_trim($whitelist); $result = array_intersect($whitelist, $result); } if (BLACKLISTED_EXTENSIONS != "") { $parts = explode(",", BLACKLISTED_EXTENSIONS); $parts = array_trim($parts); } else { $parts = array(); } $result = array_diff($result, array_intersect($parts, $result)); return $result; }
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PACKAGE START $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PACKAGE END $env = $wiki_container->get_environment(); $grp = $env->get_creator(); if ($grp->get_name() == "learners" && $grp->get_attribute(OBJ_TYPE) == "course_learners") { $grp = $grp->get_parent_group(); } if (!isset($wiki_container) || !is_object($wiki_container)) { if (!($env = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $_GET["env"]))) { throw new Exception("Environment unknown."); } if (!($grp = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $_GET["group"]))) { throw new Exception("Group unknown"); } } $accessmergel = FALSE; if (isset($wiki_container) && is_object($wiki_container)) { $creator = $wiki_container->get_creator(); if ($wiki_container->get_attribute(KOALA_ACCESS) == PERMISSION_UNDEFINED && \lms_steam::get_current_user()->get_id() != $creator->get_id() && !\lms_steam::is_koala_admin(\lms_steam::get_current_user())) { $accessmergel = TRUE; } } $backlink = empty($_POST["values"]["backlink"]) ? $_SERVER["HTTP_REFERER"] : $_POST["values"]["backlink"]; if ($_SERVER["REQUEST_METHOD"] == "POST") { $values = $_POST["values"]; if (get_magic_quotes_gpc()) { if (!empty($values['name'])) { $values['name'] = stripslashes($values['name']); } if (!empty($values['dsc'])) { $values['dsc'] = stripslashes($values['dsc']); } } if (empty($values["name"])) { $problems = gettext("The name of new wiki is missing."); $hints = gettext("Please type in a name."); } if (strpos($values["name"], "/")) { if (!isset($problems)) { $problems = ""; } $problems .= gettext("Please don't use the \"/\"-char in the name of the wiki."); } if (empty($problems)) { $group_members = $grp; $group_admins = 0; $group_staff = 0; // check if group is a course $grouptype = (string) $grp->get_attribute("OBJ_TYPE"); if ($grouptype == "course") { $group_staff = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), $grp->get_groupname() . ".staff"); $group_admins = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), $grp->get_groupname() . ".admins"); $group_members = \steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), $grp->get_groupname() . ".learners"); $workroom = $group_members->get_workroom(); } else { $workroom = $grp->get_workroom(); } if (!isset($wiki_container) || !is_object($wiki_container)) { $new_wiki = \steam_factory::create_room($GLOBALS["STEAM"]->get_id(), $values["name"], $env, $values["dsc"]); $new_wiki->set_attribute("OBJ_TYPE", "container_wiki_koala"); $_SESSION["confirmation"] = str_replace("%NAME", $values["name"], gettext("New wiki '%NAME' created.")); } else { $wiki_container->set_attribute(OBJ_NAME, $values["name"]); if ($values["wiki_startpage"] == gettext("Glossary")) { $values["wiki_startpage"] = "glossary"; } $wiki_container->set_attribute("OBJ_WIKI_STARTPAGE", $values["wiki_startpage"]); $wiki_container->set_attribute(OBJ_DESC, $values["dsc"]); //$portal->set_confirmation(gettext( "The changes have been saved." )); $new_wiki = $wiki_container; } $koala_wiki = new \lms_wiki($new_wiki); $access = (int) $values["access"]; $access_descriptions = \lms_wiki::get_access_descriptions($grp); if (!$accessmergel) { $koala_wiki->set_access($access, $access_descriptions[$access]["members"], $access_descriptions[$access]["steam"], $group_members, $group_staff, $group_admins); } $GLOBALS["STEAM"]->buffer_flush(); $cache = get_cache_function(\lms_steam::get_current_user()->get_name()); $cache->drop("lms_steam::get_inventory_recursive", $workroom->get_id(), CLASS_CONTAINER, array("OBJ_TYPE", "WIKI_LANGUAGE")); $cache->drop("lms_steam::get_group_communication_objects", $workroom->get_id(), CLASS_MESSAGEBOARD | CLASS_CALENDAR | CLASS_CONTAINER | CLASS_ROOM); if (!isset($wiki_container) || !is_object($wiki_container)) { header("Location: " . $backlink); exit; } } else { $frameResponseObject->setProblemDescription($problems); $frameResponseObject->setProblemSolution(isset($hints) ? $hints : ""); } } $content = \Wiki::getInstance()->loadTemplate("object_new.template.html"); //$content = new HTML_TEMPLATE_IT( PATH_TEMPLATES ); //$content->loadTemplateFile( "object_new.template.html" ); if (isset($wiki_container) && is_object($wiki_container)) { $content->setVariable("INFO_TEXT", str_replace("%NAME", h($wiki_container->get_name()), gettext("You are going to edit the wiki '<b>%NAME</b>'."))); $content->setVariable("LABEL_CREATE", gettext("Save changes")); $pagetitle = gettext("Preferences"); if (empty($values)) { $values = array(); $values["name"] = $wiki_container->get_name(); $values["dsc"] = $wiki_container->get_attribute(OBJ_DESC); $values["wiki_startpage"] = $wiki_container->get_attribute("OBJ_WIKI_STARTPAGE"); $values["access"] = $wiki_container->get_attribute(KOALA_ACCESS); } $breadcrumbheader = gettext("Preferences"); $content->setVariable("OPTION_WIKI_GLOSSARY", gettext("Glossary")); $wiki_entries = $wiki_container->get_inventory(CLASS_DOCUMENT); $wiki_entries_sorted = array(); foreach ($wiki_entries as $wiki_entry) { if ($wiki_entry->get_attribute(DOC_MIME_TYPE) === "text/wiki") { $wiki_entries_sorted[] = str_replace(".wiki", "", $wiki_entry->get_name()); } } sort($wiki_entries_sorted); $startpageFound = false; foreach ($wiki_entries_sorted as $wiki_entry) { $content->setCurrentBlock("BLOCK_WIKI_STARTPAGE_OPTION"); $content->setVariable("OPTION_WIKI_STARTPAGE", $wiki_entry); if ($values["wiki_startpage"] == $wiki_entry) { $content->setVariable("WIKI_STARTPAGE_SELECTED", "selected"); $startpageFound = true; } $content->parse("BLOCK_WIKI_STARTPAGE_OPTION"); } if (!$startpageFound) { $content->setVariable("OPTION_WIKI_GLOSSARY_SELECTED", "selected"); } } else { $grpname = $grp->get_attribute(OBJ_NAME); if ($grp->get_attribute(OBJ_TYPE) == "course") { $grpname = $grp->get_attribute(OBJ_DESC); } $content->setVariable("OPTION_WIKI_GLOSSARY", gettext("Glossary")); $content->setVariable("OPTION_WIKI_GLOSSARY_SELECTED", "selected"); $content->setVariable("INFO_TEXT", str_replace("%ENV", h($grpname), gettext("You are going to create a new wiki in '<b>%ENV</b>'."))); $content->setVariable("LABEL_CREATE", gettext("Create wiki")); $pagetitle = gettext("Create wiki"); $breadcrumbheader = gettext("Add new wiki"); } if (!empty($values)) { if (!empty($values["name"])) { $content->setVariable("VALUE_NAME", h($values["name"])); } if (!empty($values["dsc"])) { $content->setVariable("VALUE_DSC", h($values["dsc"])); } if (!empty($values["wiki_startpage"])) { $content->setVariable("VALUE_WIKI_STARTPAGE", h($values["wiki_startpage"])); } } $content->setVariable("VALUE_BACKLINK", $backlink); $content->setVariable("LABEL_NAME", gettext("Name")); $content->setVariable("LABEL_DSC", gettext("Description")); $content->setVariable("LABEL_WIKI_STARTPAGE", gettext("Startpage")); $content->setVariable("LABEL_ACCESS", gettext("Access")); $content->setVariable("LABEL_BB_BOLD", gettext("B")); $content->setVariable("HINT_BB_BOLD", gettext("boldface")); $content->setVariable("LABEL_BB_ITALIC", gettext("I")); $content->setVariable("HINT_BB_ITALIC", gettext("italic")); $content->setVariable("LABEL_BB_UNDERLINE", gettext("U")); $content->setVariable("HINT_BB_UNDERLINE", gettext("underline")); $content->setVariable("LABEL_BB_STRIKETHROUGH", gettext("S")); $content->setVariable("HINT_BB_STRIKETHROUGH", gettext("strikethrough")); $content->setVariable("LABEL_BB_IMAGE", gettext("IMG")); $content->setVariable("HINT_BB_IMAGE", gettext("image")); $content->setVariable("LABEL_BB_URL", gettext("URL")); $content->setVariable("HINT_BB_URL", gettext("web link")); $content->setVariable("LABEL_BB_MAIL", gettext("MAIL")); $content->setVariable("HINT_BB_MAIL", gettext("email link")); if ($accessmergel) { $mailto = "mailto:'.SUPPORT_EMAIL.'?subject=KoaLA:%20Invalid%20Access%20Rights&body=" . rawurlencode("\nLink: " . get_current_URL() . "\nCreator: " . $creator->get_identifier() . "\n"); $content->setCurrentBlock("BLOCK_ACCESSMERGEL"); $content->setVariable("LABEL_ACCESSMERGEL", str_replace("%MAILTO", $mailto, gettext("There is a problem with the access settings. Please <a href=\"%MAILTO\">contact the support team</a> to fix it by setting the access rights again."))); $content->parse("BLOCK_ACCESSMERGEL"); } else { $access = \lms_wiki::get_access_descriptions($grp); if ((string) $grp->get_attribute("OBJ_TYPE") == "course") { $access_default = PERMISSION_PUBLIC; } else { $access_default = PERMISSION_PUBLIC_READONLY; if (isset($wiki_container) && is_object($wiki_container) && $creator->get_id() != \lms_steam::get_current_user()->get_id()) { $access[PERMISSION_PRIVATE_READONLY] = str_replace("%NAME", $creator->get_name(), $access[PERMISSION_PRIVATE_READONLY]); } else { $access[PERMISSION_PRIVATE_READONLY] = str_replace("%NAME", "you", $access[PERMISSION_PRIVATE_READONLY]); } } if (is_array($access)) { $content->setCurrentBlock("BLOCK_ACCESS"); foreach ($access as $key => $array) { if ($key != PERMISSION_UNDEFINED || isset($values) && (int) $values["access"] == PERMISSION_UNDEFINED) { $content->setCurrentBlock("ACCESS"); $content->setVariable("LABEL", $array["summary_short"] . ": " . $array["label"]); $content->setVariable("VALUE", $key); if (isset($values) && $key == (int) $values["access"] || empty($values) && $key == $access_default) { $content->setVariable("CHECK", "checked=\"checked\""); } $content->parse("ACCESS"); } } $content->parse("BLOCK_ACCESS"); } } $content->setVariable("BACKLINK", "<a href=\"{$backlink}\">" . gettext("back") . "</a>"); $rootlink = \lms_steam::get_link_to_root($grp); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication"))) : ""; if (isset($wiki_container) && is_object($wiki_container)) { $headline[] = array("link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/", "name" => h($wiki_container->get_name())); } $headline[] = array("link" => "", "name" => $breadcrumbheader); $frameResponseObject->setTitle($pagetitle); $frameResponseObject->setHeadline($headline); $widget = new \Widgets\RawHtml(); $widget->setHtml($content->get()); $frameResponseObject->addWidget($widget); return $frameResponseObject; /*$portal->set_page_main( $headline, $content->get() ); $portal->set_page_title( $pagetitle ); $portal->show_html();*/ }
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PAKAGE END $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PAKAGE END $wiki_html_handler = new \lms_wiki($wiki_container); $wiki_html_handler->set_admin_menu("mediathek", $wiki_container); $content = \Wiki::getInstance()->loadTemplate("wiki_mediathek.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "wiki_mediathek.template.html" ); // get images $inventory = $wiki_container->get_inventory(); if (!is_array($inventory)) { $inventory = array(); } if (sizeof($inventory) > 0) { \steam_factory::load_attributes($GLOBALS["STEAM"]->get_id(), $inventory, array(OBJ_NAME, OBJ_DESC, DOC_MIME_TYPE)); $images = array(); foreach ($inventory as $object) { $mime = strtolower($object->get_attribute(DOC_MIME_TYPE)); if ($mime === "image/jpg" || $mime === "image/jpeg" || $mime === "image/gif" || $mime === "image/png") { $images[] = $object; } } foreach ($images as $image) { $actions = '<a href="' . PATH_URL . 'doc/' . $image->get_id() . '/">' . gettext("show properties") . '</a><br>'; $actions .= '<a href="' . PATH_URL . 'doc/' . $image->get_id() . '/edit/">' . gettext("edit properties") . '</a><br>'; $actions .= '<a href="' . PATH_URL . 'doc/' . $image->get_id() . '/deleteImage/" onclick="return confirmDeletion();">' . gettext("delete image") . '</a>'; $imageData = imagecreatefromstring($image->get_content()); $width = $newWidth = imagesx($imageData); $height = $newHeight = imagesy($imageData); if ($width > 160) { $newHeight = (int) ($height * 160 / $width); $newWidth = 160; } if ($newHeight > 80) { $newWidth = (int) ($newWidth * 80 / $newHeight); $newHeight = 80; } $content->setCurrentBlock("BLOCK_IMAGE"); $content->setVariable("IMAGE_NAME", $image->get_name()); $content->setVariable("IMAGE_ID", $image->get_id()); $content->setVariable("IMAGE_DESCRIPTION", $image->get_attribute('OBJ_DESC')); $content->setVariable("IMAGE_LINK", PATH_URL . "download/image/" . $image->get_id() . "/" . $newWidth . "/" . $newHeight . "/"); $content->setVariable("PREVIEW_LINK", "javascript:showBox(" . $image->get_id() . "," . $width . "," . $height . ");"); $content->setVariable("IMAGE_ACTIONS", $actions); $content->parse("BLOCK_IMAGE"); } } $question = gettext("Do you really want to delete this image?"); $note = gettext("NOTE: All wiki-entries containing this image have to be updated manually!"); $content->setVariable("QUESTION", $question); $content->setVariable("NOTE", $note); $content->setVariable("LABEL_CLOSE", gettext("close")); $content->setVariable("BACK_LINK", PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"); $content->setVariable("BACK_LABEL", gettext("back")); $wiki_html_handler->set_main_html($content->get()); // breadcrumbs $rootlink = \lms_steam::get_link_to_root($wiki_container); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => "", "name" => gettext("Mediathek"))) : ($headline = array(array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => "", "name" => gettext("Mediathek")))); /*$portal->set_page_main( $headline, $wiki_html_handler->get_html() ); $portal->show_html(); */ $frameResponseObject->setHeadline($headline); $widget = new \Widgets\RawHtml(); $widget->setHtml($wiki_html_handler->get_html()); $frameResponseObject->addWidget($widget); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PAKAGE END $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PAKAGE END if ($wiki_doc != null) { if (@$_REQUEST["force_delete"]) { // is deleted entry wiki startpage ? $entryName = $wiki_doc->get_name(); $startpage = $wiki_container->get_attribute("OBJ_WIKI_STARTPAGE") . ".wiki"; if ($entryName == $startpage) { $wiki_container->set_attribute("OBJ_WIKI_STARTPAGE", "glossary"); } \lms_steam::delete($wiki_doc); // clean wiki cache (not used by wiki) $cache = get_cache_function($wiki_container->get_id(), 600); $cache->clean("lms_wiki::get_items", $wiki_container->get_id()); $_SESSION["confirmation"] = gettext("Wiki entry deleted sucessfully"); // clean rsscache $rcache = get_cache_function("rss", 600); $feedlink = PATH_URL . "services/feeds/wiki_public.php?id=" . $wiki_container->get_id(); $rcache->drop("lms_rss::get_items", $feedlink); header("Location: " . PATH_URL . "wiki/deleteentry/" . $wiki_container->get_id() . "/"); } else { $wiki_name = h(substr($wiki_doc->get_name(), 0, -5)); $content = \Wiki::getInstance()->loadTemplate("wiki_delete.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "wiki_delete.template.html" ); $content->setVariable("LABEL_ARE_YOU_SURE", str_replace("%NAME", h($wiki_name), gettext("Are you sure you want to delete the wiki page '%NAME' ?"))); $content->setVariable("LABEL_DELETE", gettext('Delete')); $content->setVariable("LABEL_OR", gettext('or')); $content->setVariable("LABEL_CANCEL", gettext('Cancel')); $content->setVariable("FORM_ACTION", $_SERVER["REQUEST_URI"]); $content->setVariable("BACK_LINK", PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/"); //Breadcrumbs $rootlink = \lms_steam::get_link_to_root($wiki_container); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => "", "name" => gettext("Delete"))) : ($headline = array(array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => "", "name" => gettext("Delete")))); /*$portal->set_page_main($headline, $content->get(), ""); $portal->show_html();*/ $frameResponseObject->setHeadline($headline); $widget = new \Widgets\RawHtml(); $widget->setHtml($content->get()); $frameResponseObject->addWidget($widget); return $frameResponseObject; } } }
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PAKAGE END $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PAKAGE END $version_doc = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->params[1]); defined("OBJ_ID") or define("OBJ_ID", $wiki_doc->get_id()); $is_prev_version = isset($version_doc) && is_object($version_doc) && $version_doc instanceof \steam_document ? TRUE : FALSE; $wiki_html_handler = new \lms_wiki($wiki_container); if (!$is_prev_version) { $wiki_html_handler->set_admin_menu("entry", $wiki_doc); $attributes = $wiki_doc->get_attributes(array("DOC_VERSION", "DOC_AUTHORS", "OBJ_LAST_CHANGED", "DOC_USER_MODIFIED", "DOC_TIMES_READ", "DOC_LAST_MODIFIED", "OBJ_WIKILINKS")); //TODO: check if sourcecode can be deleted //$wiki_html_handler->set_widget_links( $wiki_doc ); //$wiki_html_handler->set_widget_previous_versions( $wiki_doc ); } else { $wiki_html_handler->set_admin_menu("version", $version_doc); $attributes = $version_doc->get_attributes(array("DOC_VERSION", "DOC_AUTHORS", "OBJ_LAST_CHANGED", "DOC_USER_MODIFIED", "DOC_TIMES_READ", "DOC_LAST_MODIFIED", "OBJ_WIKILINKS")); } $last_author = $attributes["DOC_USER_MODIFIED"]->get_attributes(array("USER_FIRSTNAME", "USER_FULLNAME")); $content = \Wiki::getInstance()->loadTemplate("wiki_entry.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "wiki_entry.template.html" ); $content->setVariable("LABEL_CLOSE", gettext("close")); if (!$is_prev_version) { $content->setVariable("VALUE_ENTRY_TEXT", wiki_to_html_plain($wiki_doc)); } else { $content->setVariable("VALUE_ENTRY_TEXT", wiki_to_html_plain($wiki_doc, $version_doc)); } $content->setVariable("IMAGE_SRC", PATH_URL . "download/image/" . $attributes["DOC_USER_MODIFIED"]->get_attribute("OBJ_ICON")->get_id() . "/60/70/"); $content->setVariable("AUTHOR_LINK", PATH_URL . "user/index/" . $attributes["DOC_USER_MODIFIED"]->get_name() . "/"); $content->setVariable("VALUE_POSTED_BY", h($last_author["USER_FIRSTNAME"]) . " " . h($last_author["USER_FULLNAME"])); $content->setVariable("LABEL_BY", gettext("created by")); $content->setVariable("VALUE_VERSION", h($attributes["DOC_VERSION"])); $content->setVariable("VALUE_DATE_TIME", strftime("%x %X", $attributes["DOC_LAST_MODIFIED"])); /* if(!$is_prev_version) { $content->setVariable( "POST_PERMALINK", PATH_URL . "wiki/" . $wiki_doc->get_id() . "/" ); $content->setVariable( "POST_PERMALINK_LABEL", "(" . gettext( "permalink" ) . ")"); } */ if ($wiki_doc->check_access_write($user)) { $content->setCurrentBlock("BLOCK_ACCESS"); $content->setVariable("POST_LABEL_DELETE", gettext("delete")); $content->setVariable("POST_LABEL_EDIT", gettext("edit")); $content->parse("BLOCK_ACCESS"); } $versions = $wiki_doc->get_previous_versions(); $no_versions = is_array($versions) ? count($versions) : 0; $content->setVariable("VERSION_MANAGEMENT", gettext("Version Management")); if ($no_versions > 0) { $content->setVariable("NUMBER_VERSIONS", "<li>" . $no_versions . " " . gettext("previous version(s) available") . "</li>"); $content->setVariable("LINK_VERSION_MANAGEMENT", "<li><a href=\"" . PATH_URL . "wiki/versionoverview/" . $wiki_doc->get_id() . "/\">» " . gettext("enter version management") . "</a></li>"); } else { $content->setVariable("NUMBER_VERSIONS", "<li>" . gettext("no previous versions available") . "</li>"); } $content->setVariable("LINKS", gettext("Wiki Links")); $links = $wiki_doc->get_attribute("OBJ_WIKILINKS_CURRENT"); $found_doc = false; if (is_array($links)) { foreach ($links as $doc) { if ($doc instanceof \steam_document) { $found_doc = true; break; } } } if (!$found_doc) { $content->setCurrentBlock("BLOCK_LINKS"); $content->setVariable("LINK", gettext("no links available")); $content->parse("BLOCK_LINKS"); } else { foreach ($links as $doc) { if ($doc instanceof \steam_document) { $name = str_replace(".wiki", "", h($doc->get_name())); $link = PATH_URL . "wiki/viewversion/" . $wiki_doc->get_id() . "/" . $doc->get_identifier(); $content->setVariable("LINK", '<li>» <a href="' . $link . '">' . $name . '</a></li>'); $content->parse("BLOCK_LINKS"); } } } $wiki_html_handler->set_main_html($content->get()); $rootlink = \lms_steam::get_link_to_root($wiki_container); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/")) : ($headline = array(array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"))); if (!$is_prev_version) { $headline[] = array("link" => "", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))); } else { $headline[] = array("link" => PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))); $headline[] = array("link" => PATH_URL . "wiki/versionoverview/" . $wiki_doc->get_id() . "/", "name" => gettext("Version management")); $headline[] = array("link" => "", "name" => "Version" . " " . $version_doc->get_version() . " (" . gettext("Preview") . ")"); } /*$portal->set_page_main( $headline, $wiki_html_handler->get_html() ); $portal->show_html(); */ $frameResponseObject->setHeadline($headline); $widget = new \Widgets\RawHtml(); $widget->setHtml($wiki_html_handler->get_html()); $frameResponseObject->addWidget($widget); return $frameResponseObject; }
<?php include_once "../etc/koala.conf.php"; include_once PATH_LIB . "url_handling.inc.php"; include_once PATH_LIB . "format_handling.inc.php"; $portal = lms_portal::get_instance(); $portal->initialize(GUEST_NOT_ALLOWED); $user = lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. CacheSettings::disable_caching(); $path = url_parse_rewrite_path($_GET["path"]); if (!($wiki_container = steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $_GET["id"]))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } switch (TRUE) { case $path[0] == "versions" && empty($path[1]): //enter wiki version management include "wiki_versions.php"; exit; break;
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PAKAGE END $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PAKAGE END defined("OBJ_ID") or define("OBJ_ID", $wiki_container->get_id()); $wiki_html_handler = new \lms_wiki($wiki_container); $wiki_html_handler->set_admin_menu("index", $wiki_container); $grp = $wiki_container->get_environment()->get_creator(); if ($grp->get_name() == "learners" && $grp->get_attribute(OBJ_TYPE) == "course_learners") { $grp = $grp->get_parent_group(); } $content = \Wiki::getInstance()->loadTemplate("wiki_entries.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "wiki_entries.template.html" ); $cache = get_cache_function($wiki_container->get_id(), 600); $wiki_entries = $cache->call("lms_wiki::get_items", $wiki_container->get_id()); $recently_changed = new \LinkedList(5); $most_discussed = new \LinkedList(5); $latest_comments = new \LinkedList(5); $no_wiki_entries = count($wiki_entries); if ($no_wiki_entries > 0) { $first_char = ""; for ($i = 0; $i < $no_wiki_entries; $i++) { $this_char = substr(strtoupper($wiki_entries[$i]["OBJ_NAME"]), 0, 1); if ($this_char > $first_char) { $first_char = $this_char; if ($i > 1) { $content->parse("BLOCK_CHARACTER"); } $content->setCurrentBlock("BLOCK_CHARACTER"); $content->setVariable("FIRST_CHAR", h($this_char)); } $char_articles = array(); while ($i < $no_wiki_entries && $this_char == substr(strtoupper($wiki_entries[$i]["OBJ_NAME"]), 0, 1)) { $char_articles[] = $wiki_entries[$i]; if ($recently_changed->can_be_added($wiki_entries[$i]["DOC_LAST_MODIFIED"])) { $recently_changed->add_element($wiki_entries[$i]["DOC_LAST_MODIFIED"], $wiki_entries[$i]); } if (isset($wiki_entries[$i]["COMMENTS_NO"]) && $most_discussed->can_be_added($wiki_entries[$i]["COMMENTS_NO"]) && $wiki_entries[$i]["COMMENTS_NO"] > 1) { $most_discussed->add_element($wiki_entries[$i]["COMMENTS_NO"], $wiki_entries[$i]); } if (isset($wiki_entries[$i]["COMMENTS_LAST"]) && $latest_comments->can_be_added($wiki_entries[$i]["COMMENTS_LAST"]) && $wiki_entries[$i]["COMMENTS_LAST"] > 0) { $latest_comments->add_element($wiki_entries[$i]["COMMENTS_LAST"], $wiki_entries[$i]); } $i++; } $i--; $no_articles_in_first_row = ceil(count($char_articles) / 2); $content->setCurrentBlock("BLOCK_COLUMN"); for ($c = 0; $c < $no_articles_in_first_row; $c++) { $content->setCurrentBlock("BLOCK_ARTICLE"); $content->setVariable("ARTICLE_LINK", PATH_URL . "wiki/viewentry/" . $char_articles[$c]["OBJ_ID"] . "/"); $content->setVariable("ARTICLE_NAME", str_replace(".wiki", "", h($char_articles[$c]["OBJ_NAME"]))); $content->parse("BLOCK_ARTICLE"); } $content->parse("BLOCK_COLUMN"); $content->setCurrentBlock("BLOCK_COLUMN"); for ($c = $no_articles_in_first_row; $c < count($char_articles); $c++) { $content->setCurrentBlock("BLOCK_ARTICLE"); $content->setVariable("ARTICLE_LINK", PATH_URL . "wiki/viewentry/" . $char_articles[$c]["OBJ_ID"] . "/"); $content->setVariable("ARTICLE_NAME", str_replace(".wiki", "", h($char_articles[$c]["OBJ_NAME"]))); $content->parse("BLOCK_ARTICLE"); } $content->parse("BLOCK_COLUMN"); $content->parse("BLOCK_CHARACTER"); } foreach ($wiki_entries as $entry) { $content->setCurrentBlock("BLOCK_ARTICLE"); $content->setVariable("VALUE_WIKI_ENTRY", h($entry["OBJ_NAME"])); $content->setVariable("LINK_WIKI_ENTRY", PATH_URL . "wiki/viewentry/" . $wiki_container->get_id() . "/" . h($entry["OBJ_NAME"])); $content->setVariable("LABEL_LAST_MODIFICATION", gettext("last edited")); $content->setVariable("VALUE_POSTED_BY", $entry["DOC_USER_MODIFIED"]); $content->setVariable("POST_PERMALINK", PATH_URL . "wiki/viewentry/" . $entry["OBJ_ID"] . "/"); $content->setVariable("VALUE_DATE_TIME", strftime("%x %X", $entry["OBJ_CREATION_TIME"])); $content->setVariable("POST_PERMALINK_LABEL", gettext("permalink")); $content->parse("BLOCK_ARTICLE"); } } /* TODO: check if these functions can be deleted $wiki_html_handler->set_widget_latest_comments( $latest_comments ); $wiki_html_handler->set_widget_last_changed( $recently_changed ); $wiki_html_handler->set_widget_most_discussed( $most_discussed ); $wiki_html_handler->set_widget_access( $grp ); */ //TODO: SET RSS_FEEDS WIKI_RSS ? $portal->set_rss_feed(PATH_URL . "services/feeds/wiki_public.php?id=" . OBJ_ID, gettext("Feed"), gettext("Subscribe to this forum's Newsfeed")) : ""; $wiki_html_handler->set_main_html($content->get()); $rootlink = \lms_steam::get_link_to_root($wiki_container); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("link" => "", "name" => h($wiki_container->get_name()))) : ($headline = array(array("link" => "", "name" => h($wiki_container->get_name())))); $frameResponseObject->setHeadline($headline); $widget = new \Widgets\RawHtml(); $widget->setHtml($wiki_html_handler->get_html()); $frameResponseObject->addWidget($widget); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PAKAGE END $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PAKAGE END $wiki_html_handler = new \lms_wiki($wiki_container); $wiki_html_handler->set_admin_menu("versions", $wiki_doc); $content = \Wiki::getInstance()->loadTemplate("wiki_versions.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "wiki_versions.template.html" ); $prev_versions = $wiki_doc->get_previous_versions(); if (!is_array($prev_versions)) { $prev_versions = array(); } array_unshift($prev_versions, $wiki_doc); $no_versions = count($prev_versions); $content->setCurrentBlock("BLOCK_VERSION_LIST"); if (isset($_GET["markedfordiff"]) && !empty($_GET["markedfordiff"])) { $uri_params = "?markedfordiff=" . $_GET["markedfordiff"]; //$start = $portal->set_paginator( $content, 10, $no_versions, "(" . gettext("%TOTAL versions in list") . ")", $uri_params ); $pageIterator = \lms_portal::get_paginator(10, $no_versions, "(" . gettext("%TOTAL groups in list") . ")"); $content->setVariable("PAGEITERATOR", $pageIterator["html"]); $start = $pageIterator["startIndex"]; } else { $pageIterator = \lms_portal::get_paginator(10, $no_versions, "(" . gettext("%TOTAL groups in list") . ")"); $content->setVariable("PAGEITERATOR", $pageIterator["html"]); $start = $pageIterator["startIndex"]; } //$start = $portal->set_paginator( $content, 10, $no_versions, "(" . gettext("%TOTAL versions in list") . ")" ); $end = $start + 10 > $no_versions ? $no_versions : $start + 10; $entry_name = str_replace(".wiki", "", $wiki_doc->get_identifier()); $content->setVariable("LABEL_VERSIONS", gettext("Available Versions for the entry") . " \"" . h($entry_name) . "\" (" . str_replace(array("%a", "%z", "%s"), array($start + 1, $end, $no_versions), gettext("%a-%z out of %s")) . ")"); $content->setVariable("LABEL_VERSION_NUMBER", gettext("Version number")); $content->setVariable("LABEL_SIZE", gettext("Size")); $content->setVariable("LABEL_DATE", gettext("Modification date")); $content->setVariable("LABEL_CREATOR", gettext("Modified by")); $content->setVariable("LABEL_ACTION", gettext("Action")); // Use buffer for document attributes $attributes_tnr = array(); for ($i = $start; $i < $end; $i++) { $attributes_tnr[$prev_versions[$i]->get_id()] = $prev_versions[$i]->get_attributes(array(DOC_USER_MODIFIED, DOC_LAST_MODIFIED, DOC_VERSION, DOC_SIZE), TRUE); } $attributes_result = $GLOBALS["STEAM"]->buffer_flush(); // use buffer for author attributes $author_tnr = array(); for ($i = $start; $i < $end; $i++) { $author_tnr[$prev_versions[$i]->get_id()] = $attributes_result[$attributes_tnr[$prev_versions[$i]->get_id()]][DOC_USER_MODIFIED]->get_attributes(array(USER_FIRSTNAME, USER_FULLNAME, OBJ_NAME), TRUE); } $author_result = $GLOBALS["STEAM"]->buffer_flush(); for ($i = $start; $i < $end; $i++) { $doc = $prev_versions[$i]; $attributes = $attributes_result[$attributes_tnr[$doc->get_id()]]; $last_author = $author_result[$author_tnr[$doc->get_id()]]; $content->setCurrentBlock("BLOCK_VERSION"); if ($doc instanceof \steam_document) { $content->setVariable("VALUE_SIZE", get_formatted_filesize($doc->get_content_size())); $content->setVariable("VALUE_CREATOR_LINK", PATH_URL . "user/index/" . $author_result[$author_tnr[$doc->get_id()]][OBJ_NAME] . "/"); $content->setVariable("VALUE_CREATOR", h($last_author[USER_FIRSTNAME]) . " " . h($last_author[USER_FULLNAME])); $content->setVariable("VALUE_DATE", strftime("%x %X", $attributes["DOC_LAST_MODIFIED"])); if ($doc->get_id() !== $wiki_doc->get_id()) { $content->setVariable("VALUE_VERSION_LINK", PATH_URL . "wiki/viewversion/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/"); $content->setVariable("VALUE_VERSION_NUMBER", "Version " . h($attributes_result[$attributes_tnr[$doc->get_id()]][DOC_VERSION])); $content->setCurrentBlock("BLOCK_RECOVER"); $content->setVariable("VALUE_ACTION_RECOVER", "» " . gettext("Recover this version")); $content->setVariable("VALUE_RECOVER_LINK", PATH_URL . "wiki/recoverversion/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/"); $content->parse("BLOCK_RECOVER"); } else { $content->setVariable("VALUE_VERSION_LINK", PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/"); $content->setVariable("VALUE_VERSION_NUMBER", "Version " . h($attributes_result[$attributes_tnr[$doc->get_id()]][DOC_VERSION]) . " (" . gettext("current") . ")"); } if (isset($_GET["markedfordiff"]) && $_GET["markedfordiff"] == $doc->get_id()) { $content->setVariable("VALUE_ACTION_MARK", "» " . gettext("Currently marked for version compare")); } else { $content->setVariable("VALUE_ACTION_MARK", "<a href=\"" . PATH_URL . "wiki/versionoverview/" . $wiki_doc->get_id() . "/?markedfordiff=" . $doc->get_id() . "\">" . "» " . gettext("Mark for version compare") . "</a>"); } if ($attributes[DOC_VERSION] != 1) { $content->setVariable("VALUE_ACTION_DIFF", "» " . gettext("Compare to previous version") . " " . ($attributes[DOC_VERSION] - 1)); $content->setVariable("VALUE_DIFF_LINK", PATH_URL . "wiki/compareversions/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/" . $prev_versions[$i + 1]->get_id()); } if (isset($_GET["markedfordiff"]) && $_GET["markedfordiff"] != $doc->get_id()) { $marked = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $_GET["markedfordiff"]); $content->setVariable("VALUE_ACTION_MARKED_DIFF", "<a href=\"" . PATH_URL . "wiki/compareversions/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/" . $_GET["markedfordiff"] . "\">" . "» " . gettext("Compare to marked version") . " " . $marked->get_version() . "</a>"); } } //is user authorized to delete version? $content->setVariable("MESSAGE_DELETION", gettext("Do you really want to delete this version?")); $current_user = \lms_steam::get_current_user(); $admin_group = \steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "admin"); $isAdmin = is_object($admin_group) && $admin_group->is_member($current_user); $usersEntry = $last_author["OBJ_NAME"] === $current_user->get_name(); $notCurrentVersion = $doc->get_id() !== $wiki_doc->get_id(); if (($isAdmin || $usersEntry) && $notCurrentVersion) { $content->setVariable("VALUE_ACTION_DELETE", "<a href=\"" . PATH_URL . "wiki/deleteversion/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/\" onclick=\"return confirmDeletion();\">" . "» " . gettext("Delete this version") . "</a><br \\/>"); } $content->parse("BLOCK_VERSION"); } $content->parse("BLOCK_VERSION_LIST"); $wiki_html_handler->set_main_html($content->get()); $rootlink = \lms_steam::get_link_to_root($wiki_container); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => "", "name" => gettext("Version management"))) : ($headline = array(array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => "", "name" => gettext("Version management")))); /* $portal->set_page_main( $headline, $wiki_html_handler->get_html() ); $portal->show_html(); */ $frameResponseObject->setHeadline($headline); $widget = new \Widgets\RawHtml(); $widget->setHtml($wiki_html_handler->get_html()); $frameResponseObject->addWidget($widget); return $frameResponseObject; }
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PACKAGE START $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PACKAGE END $object = $wiki_container; $user = \lms_steam::get_current_user(); if ($_SERVER["REQUEST_METHOD"] == "POST" && $object->check_access_write($user)) { $values = $_POST["values"]; if ($values["delete"]) { $_SESSION["confirmation"] = str_replace("%NAME", h($object->get_name()), gettext("The wiki '%NAME' has been deleted.")); $workroom = $object->get_environment(); \lms_steam::delete($object); $wid = $object->get_id(); // Clean Cache for the deleted wiki require_once "Cache/Lite.php"; $cache = new \Cache_Lite(array("cacheDir" => PATH_CACHE)); $cache = get_cache_function($wid, 600); $cache->drop("lms_steam::get_items", $wid); // Handle Related Cache-Data require_once "Cache/Lite.php"; $cache = new \Cache_Lite(array("cacheDir" => PATH_CACHE)); $cache->clean($wid); // clean wiki cache (not used by wiki) $fcache = get_cache_function($object->get_id(), 600); $fcache->drop("lms_wiki::get_items", $object->get_id()); // Clean communication summary cache für the group/course if (is_object($workroom)) { $cache = get_cache_function(\lms_steam::get_current_user()->get_name(), 600); $cache->drop("lms_steam::get_inventory_recursive", $workroom->get_id(), CLASS_CONTAINER | CLASS_ROOM, array("OBJ_TYPE", "WIKI_LANGUAGE")); $cache->drop("lms_steam::get_group_communication_objects", $workroom->get_id(), CLASS_MESSAGEBOARD | CLASS_CALENDAR | CLASS_CONTAINER | CLASS_ROOM); // clean rsscache $rcache = get_cache_function("rss", 600); $feedlink = PATH_URL . "services/feeds/wiki_public.php?id=" . $wid; $rcache->drop("lms_rss::get_items", $feedlink); } header("Location: " . $values["return_to"]); exit; } } $content = \Wiki::getInstance()->loadTemplate("object_delete.template.html"); //$content = new HTML_TEMPLATE_IT(); //$content->loadTemplateFile( PATH_TEMPLATES . "object_delete.template.html" ); if ($object->check_access_write($user)) { $content->setVariable("LABEL_ARE_YOU_SURE", str_replace("%NAME", h($object->get_name()), gettext("Are you sure you want to delete the wiki '%NAME' ?"))); $rootlink = \lms_steam::get_link_to_root($object); $content->setVariable("DELETE_BACK_LINK", $rootlink[1]["link"] . "communication/"); $content->setCurrentBlock("BLOCK_DELETE"); $content->setVariable("FORM_ACTION", $_SERVER["REQUEST_URI"]); $content->setVariable("LABEL_DELETE_IT", gettext("yes, delete it")); $content->setVariable("BACK_LINK", $_SERVER["HTTP_REFERER"]); $content->setVariable("LABEL_RETURN", gettext("back")); $content->parse("BLOCK_DELETE"); } else { $content->setVariable("LABEL_ARE_YOU_SURE", gettext("You have no rights to delete this wiki!")); } $content->setVariable("TEXT_INFORMATION", gettext("The Wiki and all its entries will be deleted.")); $creator = $object->get_creator(); $creator_data = $creator->get_attributes(array("USER_FULLNAME", "USER_FIRSTNAME", "OBJ_ICON")); $content->setVariable("LABEL_FROM_AND_AGO", str_replace("%N", "<a href=\"" . PATH_URL . "/user/" . $creator->get_name() . "/\">" . h($creator_data["USER_FIRSTNAME"]) . " " . h($creator_data["USER_FULLNAME"]) . "</a>", gettext("by %N")) . "," . how_long_ago($object->get_attribute("OBJ_CREATION_TIME"))); $icon = $creator_data["OBJ_ICON"]; if ($icon instanceof \steam_object) { $icon_id = $icon->get_id(); } else { $icon_id = 0; } $content->setVariable("ICON_SRC", PATH_URL . "get_document.php?id=" . $icon_id); $rootlink = \lms_steam::get_link_to_root($wiki_container); WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("name" => gettext("Delete wiki"), "link" => "")) : ($headline = array(array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("name" => gettext("Delete wiki"), "link" => ""))); $frameResponseObject->setHeadline($headline); $widget = new \Widgets\RawHtml(); $widget->setHtml($content->get()); $frameResponseObject->addWidget($widget); return $frameResponseObject; /* $portal->set_page_main( $headline, $content->get(), "" ); $portal->show_html();*/ }
public function execute(\FrameResponseObject $frameResponseObject) { //CODE FOR ALL COMMANDS OF THIS PAKAGE END $user = \lms_steam::get_current_user(); // Disable caching // TODO: Work on cache handling. An enabled cache leads to bugs // if used with the wiki. \CacheSettings::disable_caching(); if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) { include "bad_link.php"; exit; } if (!$wiki_container instanceof \steam_container) { $wiki_doc = $wiki_container; $wiki_container = $wiki_doc->get_environment(); if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") { include "bad_link.php"; exit; } } //CODE FOR ALL COMMANDS OF THIS PAKAGE END $version_doc = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->params[1]); $id = $this->params[1]; if ($id != null) { $doc = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $id); $parent_wiki = $doc->get_attribute("OBJ_VERSIONOF"); $all_versions = $parent_wiki->get_attribute("DOC_VERSIONS"); //user authorized ? $current_user = \lms_steam::get_current_user(); $author = $doc->get_attribute("DOC_USER_MODIFIED"); if ($current_user->get_name() !== $author->get_attribute("OBJ_NAME")) { //TODO: Error Message header("Location: " . PATH_URL . "wiki/viewentry/" . $parent_wiki->get_id() . "/versions/"); exit; } $keys = array_keys($all_versions); sort($keys); $new_array = array(); $new_key = 1; foreach ($keys as $key) { $version = $all_versions[$key]; if (!$version instanceof \steam_document || $version->get_id() == $doc->get_id()) { continue; } $version->set_attribute("DOC_VERSION", $new_key); $new_array[$new_key] = $version; $new_key++; } if (empty($new_array)) { $parent_wiki->set_attribute("DOC_VERSIONS", 0); $parent_wiki->set_attribute("DOC_VERSION", 1); } else { $parent_wiki->set_attribute("DOC_VERSIONS", $new_array); $parent_wiki->set_attribute("DOC_VERSION", count($new_array) + 1); } \lms_steam::delete($doc); // clean wiki cache (not used by wiki) $cache = get_cache_function($doc->get_id(), 600); $cache->clean("lms_wiki::get_items", $doc->get_id()); $_SESSION["confirmation"] = gettext("Wiki entry deleted sucessfully"); header("Location: " . PATH_URL . "wiki/versionoverview/" . $parent_wiki->get_id()); die; } }