if (!$gallery && !$mediagallery->user_can_add_children()) {
    print_error('errortoomanygalleries', 'mediagallery', '', $maxgalleries);
}
$pageurl = new moodle_url('/mod/mediagallery/gallery.php', array('m' => $mediagallery->id));
$PAGE->set_url($pageurl);
$PAGE->set_title(format_string($mediagallery->name));
$PAGE->set_heading(format_string($course->fullname));
$PAGE->set_context($context);
$groupmode = groups_get_activity_groupmode($cm);
if (has_capability('moodle/site:accessallgroups', $context) && $groupmode != NOGROUPS) {
    $groupmode = 'aag';
    $groups = groups_get_all_groups($cm->course, null, $cm->groupingid);
} else {
    $groups = groups_get_all_groups($cm->course, $USER->id, $cm->groupingid);
}
$tags = \mod_mediagallery\gallery::get_tags_possible();
$mform = new mod_mediagallery_gallery_form(null, array('mediagallery' => $mediagallery, 'groups' => $groups, 'groupmode' => $groupmode, 'context' => $context, 'tags' => $tags, 'gallery' => $gallery));
if ($mform->is_cancelled()) {
    redirect(new moodle_url('/mod/mediagallery/view.php', array('m' => $mediagallery->id, 'editing' => 1)));
} else {
    if ($data = $mform->get_data()) {
        if (!isset($data->contributable) || $mediagallery->colltype == 'instructor') {
            $data->contributable = 0;
        }
        if (!empty($data->id)) {
            $gallery = new \mod_mediagallery\gallery($data->id);
            $gallery->update($data);
        } else {
            $data->instanceid = $data->m;
            unset($data->m);
            $data->userid = $USER->id;