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
 * Cohort related management functions, this file needs to be included manually.
19
 *
20
 * @package    core_cohort
21
 * @copyright  2010 Petr Skoda  {@link http://skodak.org}
22
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23
 */
24
 
25
require('../config.php');
26
require_once($CFG->dirroot.'/cohort/locallib.php');
27
 
28
$id = required_param('id', PARAM_INT);
29
$returnurl = optional_param('returnurl', '', PARAM_LOCALURL);
30
 
31
require_login();
32
 
33
$cohort = $DB->get_record('cohort', array('id'=>$id), '*', MUST_EXIST);
34
$context = context::instance_by_id($cohort->contextid, MUST_EXIST);
35
 
36
require_capability('moodle/cohort:assign', $context);
37
 
38
$PAGE->set_context($context);
39
$PAGE->set_url('/cohort/assign.php', array('id'=>$id));
40
$PAGE->set_pagelayout('admin');
41
 
42
if ($returnurl) {
43
    $returnurl = new moodle_url($returnurl);
44
} else {
45
    $returnurl = new moodle_url('/cohort/index.php', array('contextid' => $cohort->contextid));
46
}
47
 
48
if (!empty($cohort->component)) {
49
    // We can not manually edit cohorts that were created by external systems, sorry.
50
    redirect($returnurl);
51
}
52
 
53
if (optional_param('cancel', false, PARAM_BOOL)) {
54
    redirect($returnurl);
55
}
56
 
57
if ($context->contextlevel == CONTEXT_COURSECAT) {
58
    $category = $DB->get_record('course_categories', array('id'=>$context->instanceid), '*', MUST_EXIST);
59
    navigation_node::override_active_url(new moodle_url('/cohort/index.php', array('contextid'=>$cohort->contextid)));
60
} else {
61
    navigation_node::override_active_url(new moodle_url('/cohort/index.php', array()));
62
}
63
$PAGE->navbar->add(get_string('assign', 'cohort'));
64
 
65
$PAGE->set_title(get_string('assigncohorts', 'cohort'));
66
$PAGE->set_heading($COURSE->fullname);
67
 
68
echo $OUTPUT->header();
69
echo $OUTPUT->heading(get_string('assignto', 'cohort', format_string($cohort->name)));
70
 
71
echo $OUTPUT->notification(get_string('removeuserwarning', 'core_cohort'));
72
 
73
// Get the user_selector we will need.
74
$potentialuserselector = new cohort_candidate_selector('addselect', array('cohortid'=>$cohort->id, 'accesscontext'=>$context));
75
$existinguserselector = new cohort_existing_selector('removeselect', array('cohortid'=>$cohort->id, 'accesscontext'=>$context));
76
 
77
// Process incoming user assignments to the cohort
78
 
79
if (optional_param('add', false, PARAM_BOOL) && confirm_sesskey()) {
80
    $userstoassign = $potentialuserselector->get_selected_users();
81
    if (!empty($userstoassign)) {
82
 
83
        foreach ($userstoassign as $adduser) {
84
            cohort_add_member($cohort->id, $adduser->id);
85
        }
86
 
87
        $potentialuserselector->invalidate_selected_users();
88
        $existinguserselector->invalidate_selected_users();
89
    }
90
}
91
 
92
// Process removing user assignments to the cohort
93
if (optional_param('remove', false, PARAM_BOOL) && confirm_sesskey()) {
94
    $userstoremove = $existinguserselector->get_selected_users();
95
    if (!empty($userstoremove)) {
96
        foreach ($userstoremove as $removeuser) {
97
            cohort_remove_member($cohort->id, $removeuser->id);
98
        }
99
        $potentialuserselector->invalidate_selected_users();
100
        $existinguserselector->invalidate_selected_users();
101
    }
102
}
103
 
104
// Print the form.
105
?>
106
<form id="assignform" method="post" action="<?php echo $PAGE->url ?>"><div>
107
  <input type="hidden" name="sesskey" value="<?php echo sesskey() ?>" />
108
  <input type="hidden" name="returnurl" value="<?php echo $returnurl->out_as_local_url() ?>" />
109
 
110
  <table summary="" class="generaltable generalbox boxaligncenter" cellspacing="0">
111
    <tr>
112
      <td id="existingcell">
113
          <p><label for="removeselect"><?php print_string('currentusers', 'cohort'); ?></label></p>
114
          <?php $existinguserselector->display() ?>
115
      </td>
116
      <td id="buttonscell">
117
          <div id="addcontrols">
118
              <input class="btn btn-secondary" name="add" id="add" type="submit" value="<?php echo $OUTPUT->larrow() . '&nbsp;' .
119
                  s(get_string('add')); ?>" title="<?php p(get_string('add')); ?>" /><br />
120
          </div>
121
 
122
          <div id="removecontrols">
123
              <input class="btn btn-secondary" name="remove" id="remove" type="submit"
124
                     value="<?php echo s(get_string('remove')) . '&nbsp;' . $OUTPUT->rarrow(); ?>"
125
                     title="<?php p(get_string('remove')); ?>" />
126
          </div>
127
      </td>
128
      <td id="potentialcell">
129
          <p><label for="addselect"><?php print_string('potusers', 'cohort'); ?></label></p>
130
          <?php $potentialuserselector->display() ?>
131
      </td>
132
    </tr>
133
    <tr><td colspan="3" id='backcell'>
134
      <input class="btn btn-secondary" type="submit" name="cancel" value="<?php p(get_string('backtocohorts', 'cohort')); ?>" />
135
    </td></tr>
136
  </table>
137
</div></form>
138
 
139
<?php
140
 
141
echo $OUTPUT->footer();