MDL-25069, chat, check if user loggedin
[moodle.git] / mod / wiki / edit.php
CommitLineData
00710f4c
DC
1<?php
2
3// This file is part of Moodle - http://moodle.org/
4//
5// Moodle is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// Moodle is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
17
18/**
19 * This file contains all necessary code to edit a wiki page
20 *
21 * @package mod-wiki-2.0
22 * @copyrigth 2009 Marc Alier, Jordi Piguillem marc.alier@upc.edu
23 * @copyrigth 2009 Universitat Politecnica de Catalunya http://www.upc.edu
24 *
25 * @author Jordi Piguillem
26 * @author Marc Alier
27 * @author David Jimenez
28 * @author Josep Arus
29 * @author Kenneth Riba
30 *
31 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
32 */
33
34require_once('../../config.php');
35
36require_once($CFG->dirroot . '/mod/wiki/lib.php');
37require_once($CFG->dirroot . '/mod/wiki/locallib.php');
38require_once($CFG->dirroot . '/mod/wiki/pagelib.php');
39
40$pageid = required_param('pageid', PARAM_INT);
41$contentformat = optional_param('contentformat', '', PARAM_ALPHA);
42$option = optional_param('editoption', '', PARAM_TEXT);
43$section = optional_param('section', "", PARAM_TEXT);
44$version = optional_param('version', -1, PARAM_INT);
00710f4c
DC
45$attachments = optional_param('attachments', 0, PARAM_INT);
46$deleteuploads = optional_param('deleteuploads', 0, PARAM_RAW);
47
48if (!$page = wiki_get_page($pageid)) {
49 print_error('incorrectpageid', 'wiki');
50}
51
52if (!$subwiki = wiki_get_subwiki($page->subwikiid)) {
53 print_error('incorrectsubwikiid', 'wiki');
54}
55
56if (!$wiki = wiki_get_wiki($subwiki->wikiid)) {
57 print_error('incorrectwikiid', 'wiki');
58}
59
60if (!$cm = get_coursemodule_from_instance('wiki', $wiki->id)) {
61 print_error('invalidcoursemodule');
62}
63
621f3ef5 64$course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST);
00710f4c
DC
65
66if (!empty($section) && !$sectioncontent = wiki_get_section_page($page, $section)) {
67 print_error('invalidsection', 'wiki');
68}
69
0f70da0f 70require_login($course, true, $cm);
00710f4c
DC
71
72$context = get_context_instance(CONTEXT_MODULE, $cm->id);
73require_capability('mod/wiki:editpage', $context);
74
75add_to_log($course->id, 'wiki', 'edit', "edit.php?id=$cm->id", "$wiki->id");
76
77if ($option == get_string('save', 'wiki')) {
78 if (!confirm_sesskey()) {
79 print_error(get_string('invalidsesskey', 'wiki'));
80 }
81 $wikipage = new page_wiki_save($wiki, $subwiki, $cm);
82 $wikipage->set_page($page);
83 $wikipage->set_newcontent($newcontent);
84 $wikipage->set_upload(true);
85} else {
86 if ($option == get_string('preview')) {
87 if (!confirm_sesskey()) {
88 print_error(get_string('invalidsesskey', 'wiki'));
89 }
90 $wikipage = new page_wiki_preview($wiki, $subwiki, $cm);
91 $wikipage->set_page($page);
00710f4c
DC
92 } else {
93 if ($option == get_string('cancel')) {
94 //delete lock
95 wiki_delete_locks($page->id, $USER->id, $section);
96
97 redirect($CFG->wwwroot . '/mod/wiki/view.php?pageid=' . $pageid);
98 } else {
99 $wikipage = new page_wiki_edit($wiki, $subwiki, $cm);
100 $wikipage->set_page($page);
101 $wikipage->set_upload($option == get_string('upload', 'wiki'));
102 }
103 }
104
105 if (has_capability('mod/wiki:overridelock', $context)) {
106 $wikipage->set_overridelock(true);
107 }
108}
109
110if ($version >= 0) {
111 $wikipage->set_versionnumber($version);
112}
113
114if (!empty($section)) {
115 $wikipage->set_section($sectioncontent, $section);
116}
117
118if (!empty($attachments)) {
119 $wikipage->set_attachments($attachments);
120}
121
122if (!empty($deleteuploads)) {
123 $wikipage->set_deleteuploads($deleteuploads);
124}
125
126if (!empty($contentformat)) {
127 $wikipage->set_format($contentformat);
128}
129
130$wikipage->print_header();
131
132$wikipage->print_content();
133
134$wikipage->print_footer();