/** * Constructor */ function __construct($a_parent_obj, $a_parent_cmd, $a_wiki_id) { global $ilCtrl, $lng, $ilAccess, $lng; parent::__construct($a_parent_obj, $a_parent_cmd); include_once "./Modules/Wiki/classes/class.ilWikiPageTemplate.php"; $templates = new ilWikiPageTemplate($a_wiki_id); $this->setData($templates->getAllInfo()); $this->setTitle($lng->txt("")); $this->addColumn($this->lng->txt(""), "", "1"); $this->addColumn($this->lng->txt("title"), "title"); $this->addColumn($this->lng->txt("wiki_templ_new_pages"), ""); $this->addColumn($this->lng->txt("wiki_templ_add_to_page"), ""); $this->setDefaultOrderDirection("asc"); $this->setDefaultOrderField("title"); $this->setFormAction($ilCtrl->getFormAction($a_parent_obj)); $this->setRowTemplate("tpl.wiki_page_templates_row.html", "Modules/Wiki"); $this->addMultiCommand("remove", $lng->txt("wiki_remove_template_status")); $this->addCommandButton("saveTemplateSettings", $lng->txt("save")); }
/** * Fill data section */ function fillDataSection() { global $ilCtrl, $lng, $ilAccess; $tpl = new ilTemplate("tpl.wiki_side_block_content.html", true, true, "Modules/Wiki"); $wp = $this->getPageObject(); // info $actions[] = array("txt" => $lng->txt("info_short"), "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "infoScreen")); // recent changes $actions[] = array("txt" => $lng->txt("wiki_recent_changes"), "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "recentChanges")); foreach ($actions as $a) { $tpl->setCurrentBlock("action"); $tpl->setVariable("HREF", $a["href"]); $tpl->setVariable("TXT", $a["txt"]); $tpl->parseCurrentBlock(); $tpl->touchBlock("item"); } $actions = array(); // all pages $actions[] = array("txt" => $lng->txt("wiki_all_pages"), "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "allPages")); // new pages $actions[] = array("txt" => $lng->txt("wiki_new_pages"), "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "newPages")); // popular pages $actions[] = array("txt" => $lng->txt("wiki_popular_pages"), "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "popularPages")); // orphaned pages $actions[] = array("txt" => $lng->txt("wiki_orphaned_pages"), "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "orphanedPages")); // page lists include_once "./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php"; $list = new ilAdvancedSelectionListGUI(); $list->setListTitle($lng->txt("wiki_page_lists")); $list->setStyle(ilAdvancedSelectionListGUI::STYLE_LINK); $list->setId("wiki_pglists"); foreach ($actions as $a) { $list->addItem($a["txt"], "", $a["href"]); } $tpl->setCurrentBlock("plain"); $tpl->setVariable("PLAIN", $list->getHTML()); $tpl->parseCurrentBlock(); $tpl->touchBlock("item"); // page actions $list = new ilAdvancedSelectionListGUI(); $list->setStyle(ilAdvancedSelectionListGUI::STYLE_LINK); $list->setListTitle($lng->txt("wiki_page_actions")); $list->setId("wiki_pgactions"); if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) { // rating if (ilObjWiki::_lookupRating($this->getPageObject()->getWikiId())) { if (!$this->getPageObject()->getRating()) { $list->addItem($lng->txt("wiki_activate_page_rating"), "", $ilCtrl->getLinkTargetByClass("ilwikipagegui", "activateWikiPageRating")); } else { $list->addItem($lng->txt("wiki_deactivate_page_rating"), "", $ilCtrl->getLinkTargetByClass("ilwikipagegui", "deactivateWikiPageRating")); } } // unhide advmd? include_once "./Modules/Wiki/classes/class.ilWikiAdvMetaDataBlockGUI.php"; if (ilWikiAdvMetaDataBlockGUI::isActive($this->getPageObject()->getWikiId()) && ilWikiPage::lookupAdvancedMetadataHidden($this->getPageObject()->getId())) { $list->addItem($lng->txt("wiki_unhide_meta_adv_records"), "", $ilCtrl->getLinkTargetByClass("ilwikipagegui", "unhideAdvancedMetaData")); } } if ($ilAccess->checkAccess("edit_content", "", $_GET["ref_id"]) && !$this->getPageObject()->getBlocked() || $ilAccess->checkAccess("write", "", $_GET["ref_id"])) { // rename $list->addItem($lng->txt("wiki_rename_page"), "", $ilCtrl->getLinkTargetByClass("ilwikipagegui", "renameWikiPage")); } if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) { // block/unblock if ($this->getPageObject()->getBlocked()) { $list->addItem($lng->txt("wiki_unblock_page"), "", $ilCtrl->getLinkTargetByClass("ilwikipagegui", "unblockWikiPage")); } else { $list->addItem($lng->txt("wiki_block_page"), "", $ilCtrl->getLinkTargetByClass("ilwikipagegui", "blockWikiPage")); } // delete page $st_page = ilObjWiki::_lookupStartPage($this->getPageObject()->getParentId()); if ($st_page != $this->getPageObject()->getTitle()) { $list->addItem($lng->txt("wiki_delete_page"), "", $ilCtrl->getLinkTargetByClass("ilwikipagegui", "deleteWikiPageConfirmationScreen")); } include_once "Modules/Wiki/classes/class.ilWikiPageTemplate.php"; $wpt = new ilWikiPageTemplate($this->getPageObject()->getParentId()); if (!$wpt->isPageTemplate($this->getPageObject()->getId())) { $list->addItem($lng->txt("wiki_add_template"), "", $ilCtrl->getLinkTargetByClass("ilwikipagetemplategui", "addPageTemplateFromPageAction")); } else { $list->addItem($lng->txt("wiki_remove_template_status"), "", $ilCtrl->getLinkTargetByClass("ilwikipagetemplategui", "removePageTemplateFromPageAction")); } } if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]) || $ilAccess->checkAccess("read", "", $_GET["ref_id"])) { $tpl->setCurrentBlock("plain"); $tpl->setVariable("PLAIN", $list->getHTML()); $tpl->parseCurrentBlock(); $tpl->touchBlock("item"); } // permissions // if ($ilAccess->checkAccess('edit_permission', "", $_GET["ref_id"])) // { // $actions[] = array( // "txt" => $lng->txt("perm_settings"), // "href" => $ilCtrl->getLinkTargetByClass(array("ilobjwikigui", "ilpermissiongui"), "perm") // ); // } $actions = array(); // settings if ($ilAccess->checkAccess('write', "", $_GET["ref_id"])) { // $actions[] = array( // "txt" => $lng->txt("settings"), // "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "editSettings") // ); $actions[] = array("txt" => $lng->txt("wiki_contributors"), "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "listContributors")); } // manage if ($ilAccess->checkAccess('write', "", $_GET["ref_id"])) { $actions[] = array("txt" => $lng->txt("settings"), "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "editSettings")); } else { if ($ilAccess->checkAccess('statistics_read', "", $_GET["ref_id"])) { $actions[] = array("txt" => $lng->txt("statistics"), "href" => $ilCtrl->getLinkTargetByClass(array("ilobjwikigui", "ilwikistatgui"), "initial")); } } foreach ($actions as $a) { $tpl->setCurrentBlock("action"); $tpl->setVariable("HREF", $a["href"]); $tpl->setVariable("TXT", $a["txt"]); $tpl->parseCurrentBlock(); $tpl->touchBlock("item"); } $this->setDataSection($tpl->get()); }
function addPageTemplateFromPageAction() { $page_id = (int) $_GET["wpg_id"]; if ($page_id) { include_once "./Modules/Wiki/classes/class.ilWikiPageTemplate.php"; $wpt = new ilWikiPageTemplate($this->wiki->getId()); $wpt->save($page_id); ilUtil::sendSuccess($this->lng->txt("wiki_template_added"), true); } $this->ctrl->redirect($this, "listTemplates"); }
/** * Init template selection form. */ public function initTemplateSelectionForm() { global $lng, $ilCtrl; include_once "Services/Form/classes/class.ilPropertyFormGUI.php"; $form = new ilPropertyFormGUI(); // page name $hi = new ilHiddenInputGUI("page"); $hi->setValue($_GET["page"]); $form->addItem($hi); // page template $radg = new ilRadioGroupInputGUI($lng->txt("wiki_page_template"), "page_templ"); $radg->setRequired(true); if ($this->object->getEmptyPageTemplate()) { $op1 = new ilRadioOption($lng->txt("wiki_empty_page"), 0); $radg->addOption($op1); } include_once "./Modules/Wiki/classes/class.ilWikiPageTemplate.php"; $wt = new ilWikiPageTemplate($this->object->getId()); $ts = $wt->getAllInfo(ilWikiPageTemplate::TYPE_NEW_PAGES); foreach ($ts as $t) { $op = new ilRadioOption($t["title"], $t["wpage_id"]); $radg->addOption($op); } $form->addItem($radg); // save and cancel commands $form->addCommandButton("createPageUsingTemplate", $lng->txt("wiki_create_page")); $form->addCommandButton("cancelCreationPageUsingTemplate", $lng->txt("cancel")); $form->setTitle($lng->txt("wiki_new_page") . ": " . $_GET["page"]); $form->setFormAction($ilCtrl->getFormAction($this)); return $form; }
/** * Create new wiki page * * @param string $a_page_title page title * @param int $a_template_page template page id * @return ilWikiPage new wiki page */ function createWikiPage($a_page_title, $a_template_page = 0) { // check if template has to be used if ($a_template_page == 0) { if (!$this->getEmptyPageTemplate()) { include_once "./Modules/Wiki/classes/class.ilWikiPageTemplate.php"; $wt = new ilWikiPageTemplate($this->getId()); $ts = $wt->getAllInfo(ilWikiPageTemplate::TYPE_NEW_PAGES); if (count($ts) == 1) { $t = current($ts); $a_template_page = $t["wpage_id"]; } } } // create the page $page = new ilWikiPage(); $page->setWikiId($this->getId()); $page->setTitle(ilWikiUtil::makeDbTitle($a_page_title)); if ($this->getRating() && $this->getRatingForNewPages()) { $page->setRating(true); } // needed for notification $page->setWikiRefId($this->getRefId()); $page->create(); // copy template into new page if ($a_template_page > 0) { $orig = new ilWikiPage($a_template_page); $orig->copy($page->getId()); } return $page; }
/** * Get content templates * * @return array array of arrays with "id" => page id (int), "parent_type" => parent type (string), "title" => title (string) */ function getContentTemplates() { include_once "./Modules/Wiki/classes/class.ilWikiPageTemplate.php"; $wt = new ilWikiPageTemplate($this->getWikiId()); $templates = array(); foreach ($wt->getAllInfo(ilWikiPageTemplate::TYPE_ADD_TO_PAGE) as $t) { $templates[] = array("id" => $t["wpage_id"], "parent_type" => "wpg", "title" => $t["title"]); } return $templates; }