Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
require_once('../../config.php');
4
require_once('lib.php');
5
require_once('edit_form.php');
6
 
7
$cmid = required_param('cmid', PARAM_INT);            // Course Module ID
8
$id   = optional_param('id', 0, PARAM_INT);           // EntryID
9
 
10
if (!$cm = get_coursemodule_from_id('glossary', $cmid)) {
11
    throw new \moodle_exception('invalidcoursemodule');
12
}
13
 
14
if (!$course = $DB->get_record('course', array('id'=>$cm->course))) {
15
    throw new \moodle_exception('coursemisconf');
16
}
17
 
18
require_login($course, false, $cm);
19
 
20
$context = context_module::instance($cm->id);
21
 
22
if (!$glossary = $DB->get_record('glossary', array('id'=>$cm->instance))) {
23
    throw new \moodle_exception('invalidid', 'glossary');
24
}
25
 
26
$url = new moodle_url('/mod/glossary/edit.php', array('cmid'=>$cm->id));
27
if (!empty($id)) {
28
    $url->param('id', $id);
29
}
30
$PAGE->set_url($url);
31
 
32
if ($id) { // if entry is specified
33
    if (isguestuser()) {
34
        throw new \moodle_exception('guestnoedit', 'glossary', "$CFG->wwwroot/mod/glossary/view.php?id=$cmid");
35
    }
36
 
37
    if (!$entry = $DB->get_record('glossary_entries', array('id'=>$id, 'glossaryid'=>$glossary->id))) {
38
        throw new \moodle_exception('invalidentry');
39
    }
40
 
41
    // Check if the user can update the entry (trigger exception if he can't).
42
    mod_glossary_can_update_entry($entry, $glossary, $context, $cm, false);
43
    // Prepare extra data.
44
    $entry = mod_glossary_prepare_entry_for_edition($entry);
45
 
46
} else { // new entry
47
    require_capability('mod/glossary:write', $context);
48
    // note: guest user does not have any write capability
49
    $entry = new stdClass();
50
    $entry->id = null;
51
}
52
 
53
list($definitionoptions, $attachmentoptions) = glossary_get_editor_and_attachment_options($course, $context, $entry);
54
 
55
$entry = file_prepare_standard_editor($entry, 'definition', $definitionoptions, $context, 'mod_glossary', 'entry', $entry->id);
56
$entry = file_prepare_standard_filemanager($entry, 'attachment', $attachmentoptions, $context, 'mod_glossary', 'attachment', $entry->id);
57
 
58
$entry->cmid = $cm->id;
59
 
60
// create form and set initial data
61
$mform = new mod_glossary_entry_form(null, array('current'=>$entry, 'cm'=>$cm, 'glossary'=>$glossary,
62
                                                 'definitionoptions'=>$definitionoptions, 'attachmentoptions'=>$attachmentoptions));
63
 
64
if ($mform->is_cancelled()){
65
    if ($id){
66
        redirect("view.php?id=$cm->id&mode=entry&hook=$id");
67
    } else {
68
        redirect("view.php?id=$cm->id");
69
    }
70
 
71
} else if ($data = $mform->get_data()) {
72
    $entry = glossary_edit_entry($data, $course, $cm, $glossary, $context);
73
    if (core_tag_tag::is_enabled('mod_glossary', 'glossary_entries') && isset($data->tags)) {
74
        core_tag_tag::set_item_tags('mod_glossary', 'glossary_entries', $data->id, $context, $data->tags);
75
    }
76
    redirect("view.php?id=$cm->id&mode=entry&hook=$entry->id");
77
}
78
 
79
if (!empty($id)) {
80
    $PAGE->navbar->add(get_string('edit'));
81
}
82
 
83
$PAGE->set_title($glossary->name);
84
$PAGE->set_heading($course->fullname);
85
$PAGE->set_secondary_active_tab('modulepage');
86
$PAGE->activityheader->set_attrs([
87
    'hidecompletion' => true,
88
    'description' => ''
89
]);
90
echo $OUTPUT->header();
91
if (!$id) {
92
    echo $OUTPUT->heading(get_string('addsingleentry', 'mod_glossary'));
93
} else {
94
    echo $OUTPUT->heading(get_string('editentry', 'mod_glossary'));
95
}
96
 
97
$data = new StdClass();
98
$data->tags = core_tag_tag::get_item_tags_array('mod_glossary', 'glossary_entries', $id);
99
$mform->set_data($data);
100
 
101
$mform->display();
102
 
103
echo $OUTPUT->footer();
104