Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
// This file is part of Moodle - http://moodle.org/
3
//
4
// Moodle is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// Moodle is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
 
17
/**
18
 * This page handles the question settings.
19
 *
20
 * @package    mod_questionnaire
21
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
22
 * @copyright  2016 Mike Churchward (mike.churchward@poetopensource.org)
23
 */
24
 
25
require_once("../../config.php");
26
require_once($CFG->dirroot.'/mod/questionnaire/questionnaire.class.php');
27
 
28
$id = required_param('id', PARAM_INT);    // Course module ID.
29
$currentgroupid = optional_param('group', 0, PARAM_INT); // Groupid.
30
$cancel = optional_param('cancel', '', PARAM_ALPHA);
31
$submitbutton2 = optional_param('submitbutton2', '', PARAM_ALPHA);
32
 
33
if (! $cm = get_coursemodule_from_id('questionnaire', $id)) {
34
    throw new \moodle_exception('invalidcoursemodule', 'mod_questionnaire');
35
}
36
 
37
if (! $course = $DB->get_record("course", array("id" => $cm->course))) {
38
    throw new \moodle_exception('coursemisconf', 'mod_questionnaire');
39
}
40
 
41
if (! $questionnaire = $DB->get_record("questionnaire", array("id" => $cm->instance))) {
42
    throw new \moodle_exception('invalidcoursemodule', 'mod_questionnaire');
43
}
44
 
45
// Needed here for forced language courses.
46
require_course_login($course, true, $cm);
47
$context = context_module::instance($cm->id);
48
 
49
$url = new moodle_url($CFG->wwwroot.'/mod/questionnaire/qsettings.php', array('id' => $id));
50
$PAGE->set_url($url);
51
$PAGE->set_context($context);
52
if (!isset($SESSION->questionnaire)) {
53
    $SESSION->questionnaire = new stdClass();
54
}
55
$questionnaire = new questionnaire($course, $cm, 0, $questionnaire);
56
 
57
// Add renderer and page objects to the questionnaire object for display use.
58
$questionnaire->add_renderer($PAGE->get_renderer('mod_questionnaire'));
59
$questionnaire->add_page(new \mod_questionnaire\output\qsettingspage());
60
 
61
$SESSION->questionnaire->current_tab = 'settings';
62
 
63
if (!$questionnaire->capabilities->manage) {
64
    throw new \moodle_exception('nopermissions', 'mod_questionnaire');
65
}
66
 
67
$settingsform = new \mod_questionnaire\settings_form('qsettings.php');
68
$sdata = clone($questionnaire->survey);
69
$sdata->sid = $questionnaire->survey->id;
70
$sdata->id = $cm->id;
71
 
72
$draftideditor = file_get_submitted_draft_itemid('info');
73
$currentinfo = file_prepare_draft_area($draftideditor, $context->id, 'mod_questionnaire', 'info',
74
                $sdata->sid, array('subdirs' => true), $questionnaire->survey->info);
75
$sdata->info = array('text' => $currentinfo, 'format' => FORMAT_HTML, 'itemid' => $draftideditor);
76
 
77
$draftideditor = file_get_submitted_draft_itemid('thankbody');
78
$currentinfo = file_prepare_draft_area($draftideditor, $context->id, 'mod_questionnaire', 'thankbody',
79
                $sdata->sid, array('subdirs' => true), $questionnaire->survey->thank_body);
80
$sdata->thank_body = array('text' => $currentinfo, 'format' => FORMAT_HTML, 'itemid' => $draftideditor);
81
 
82
$settingsform->set_data($sdata);
83
 
84
if ($settingsform->is_cancelled()) {
85
    redirect ($CFG->wwwroot.'/mod/questionnaire/view.php?id='.$questionnaire->cm->id, '');
86
}
87
 
88
if ($settings = $settingsform->get_data()) {
89
    $sdata = new stdClass();
90
    $sdata->id = $settings->sid;
91
    $sdata->name = $settings->name;
92
    $sdata->realm = $settings->realm;
93
    $sdata->title = $settings->title;
94
    $sdata->subtitle = $settings->subtitle;
95
 
96
    $sdata->infoitemid = $settings->info['itemid'];
97
    $sdata->infoformat = $settings->info['format'];
98
    $sdata->info = $settings->info['text'];
99
    $sdata->info = file_save_draft_area_files($sdata->infoitemid, $context->id, 'mod_questionnaire', 'info',
100
                                              $sdata->id, array('subdirs' => true), $sdata->info);
101
 
102
    $sdata->theme = ''; // Deprecated theme field.
103
    $sdata->thanks_page = $settings->thanks_page;
104
    $sdata->thank_head = $settings->thank_head;
105
 
106
    $sdata->thankitemid = $settings->thank_body['itemid'];
107
    $sdata->thankformat = $settings->thank_body['format'];
108
    $sdata->thank_body = $settings->thank_body['text'];
109
    $sdata->thank_body = file_save_draft_area_files($sdata->thankitemid, $context->id, 'mod_questionnaire', 'thankbody',
110
                                                    $sdata->id, array('subdirs' => true), $sdata->thank_body);
111
    $sdata->email = $settings->email;
112
 
113
    $sdata->courseid = $settings->courseid;
114
    if (!($sid = $questionnaire->survey_update($sdata))) {
115
        throw new \moodle_exception('couldnotcreatenewsurvey', 'mod_questionnaire');
116
    } else {
117
        if ($submitbutton2) {
118
            $redirecturl = course_get_url($cm->course);
119
        } else {
120
            $redirecturl = $CFG->wwwroot.'/mod/questionnaire/view.php?id='.$questionnaire->cm->id;
121
        }
122
 
123
        // Save current advanced settings only.
124
        if (isset($settings->submitbutton) || isset($settings->submitbutton2)) {
125
            redirect ($redirecturl, get_string('settingssaved', 'questionnaire'));
126
        }
127
    }
128
}
129
 
130
// Print the page header.
131
$PAGE->set_title(get_string('editingquestionnaire', 'questionnaire'));
132
$PAGE->set_heading(format_string($course->fullname));
133
$PAGE->navbar->add(get_string('editingquestionnaire', 'questionnaire'));
134
echo $questionnaire->renderer->header();
135
require('tabs.php');
136
$questionnaire->page->add_to_page('formarea', $settingsform->render());
137
echo $questionnaire->renderer->render($questionnaire->page);
138
echo $questionnaire->renderer->footer($course);