function create_wiki($gid = false, $wikiName = 'New wiki') { $creatorId = claro_get_current_user_id(); $tblList = claro_sql_get_course_tbl(); $config = array(); $config["tbl_wiki_properties"] = $tblList["wiki_properties"]; $config["tbl_wiki_pages"] = $tblList["wiki_pages"]; $config["tbl_wiki_pages_content"] = $tblList["wiki_pages_content"]; $config["tbl_wiki_acls"] = $tblList["wiki_acls"]; $con = Claroline::getDatabase(); $acl = array(); if ($gid) { $acl = WikiAccessControl::defaultGroupWikiACL(); } else { $acl = WikiAccessControl::defaultCourseWikiACL(); } $wiki = new Wiki($con, $config); $wiki->setTitle($wikiName); $wiki->setDescription('This is a sample wiki'); $wiki->setACL($acl); $wiki->setGroupId($gid); $wikiId = $wiki->save(); $wikiTitle = $wiki->getTitle(); $mainPageContent = sprintf("This is the main page of the Wiki %s. Click on edit to modify the content.", $wikiTitle); $wikiPage = new WikiPage($con, $config, $wikiId); $wikiPage->create($creatorId, '__MainPage__', $mainPageContent, date("Y-m-d H:i:s"), true); }
public function actionEdit($id) { $model = Wiki::model()->findByPk($id); if (!$model) { $model = new Wiki(); $model->id = $id; } if (!empty($_POST['Wiki'])) { if (!empty($_POST['Wiki']['text'])) { $model->text = $_POST['Wiki']['text']; if ($model->save()) { $this->redirect(array('view', 'id' => $id)); } } else { Wiki::model()->deleteByPk($id); } } $this->render('edit', array('model' => $model)); }
public function testSluggableChildTemplate() { $this->conn->clear(); $wiki = new Wiki(); $wiki->state(Doctrine_Record::STATE_TDIRTY); $wiki->save(); $fi = $wiki->Translation['FI']; $fi->title = 'This is the title'; $fi->content = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla sed."; $fi->save(); $this->assertEqual($fi->slug, 'this-is-the-title'); }
$groupId = $wiki->getGroupId(); } else { $message = get_lang("Invalid Wiki Id"); $action = 'error'; } break; // execute edit // execute edit case 'exEdit': if ($wikiId == 0) { $wiki = new Wiki($con, $config); $wiki->setTitle($wikiTitle); $wiki->setDescription($wikiDesc); $wiki->setACL($wikiACL); $wiki->setGroupId($groupId); $wikiId = $wiki->save(); //notify wiki modification $eventNotifier->notifyCourseEvent('wiki_added', claro_get_current_course_id(), claro_get_current_tool_id(), $wikiId, claro_get_current_group_id(), '0'); $mainPageContent = sprintf(get_lang("This is the main page of the Wiki %s. Click on '''Edit''' to modify the content."), $wikiTitle); $wikiPage = new WikiPage($con, $config, $wikiId); if ($wikiPage->create($creatorId, '__MainPage__', $mainPageContent, date("Y-m-d H:i:s"), true)) { $message = get_lang("Wiki creation succeed"); $dialogBox->success($message); } else { $message = get_lang("Wiki creation failed"); $dialogBox->error($message . ":" . $wikiPage->getError()); } } elseif ($wikiStore->wikiIdExists($wikiId)) { $wiki = $wikiStore->loadWiki($wikiId); $wiki->setTitle($wikiTitle); $wiki->setDescription($wikiDesc);
/** * @param string $handle (Wiki name) * @return array(title,content) */ function execute($handle) { // If it is not CamelCase, it is not a valid Voodoo Wiki if (!$this->isCamelCase($handle)) { $wv = new WikiView($this->dispatcher); return $wv->execute(null, 'Incorrect Wiki name.'); } // Validate if the user has rights to create a new Wiki if (!$this->hasRights($_SESSION['access'], 'create', $handle)) { $wv = new WikiView($this->dispatcher); return $wv->execute(null, 'This Page Is Currently Unavailable.'); } $args = $this->defaultArgs; // We're supposed to save the page, do it. if (isset($_POST['save']) && !empty($_POST['wikicontent'])) { $wp = new Wiki($this->db); // HTMLEntities, no arbitrary code should be inserted. // TODO: use something better than htmlentities() $wp->save($handle, htmlentities($_POST['wikicontent'])); header('Location: ' . PATH_TO_DOCROOT . '/wiki/' . $handle); exit; } elseif (isset($_POST['preview']) && !empty($_POST['wikicontent'])) { $wv = new WikiView($this->dispatcher); list(, $args['preview_content']) = $wv->execute('', htmlentities($_POST['wikicontent']), false); $args['content'] = htmlentities($_POST['wikicontent']); $args['preview'] = $this->template->parse('preview', $args); } $args['handle'] = $handle; $args['formaction'] = '/wiki/' . $handle; $args['actiontype'] = 'Submit changes'; return array($handle . ' - WikiCreate', $this->template->parse('create', $args)); }