$PAGE->set_pagelayout('standard'); // Get the strings --------------------------------------------------------------- $strsignupteampage = get_string('signupteampage', 'blended'); $strsignupteam = get_string('signupteam', 'blended'); $strnewteam = get_string('newteam', 'blended'); $strnameteam = get_string('nameteam', 'blended'); $strdeletemember = get_string('deletemember', 'blended'); $strnone = get_string('noselected', 'blended'); $strnosigned = get_string('nodefinedteams', 'blended'); // Print the main part of the page ----------------------------------------------- $link = "selectassignment.php?id=" . $cm->id; $PAGE->navbar->add($strsignupteampage, $link); $PAGE->navbar->add('Inscribirse'); echo $OUTPUT->header(); echo $OUTPUT->spacer(array('height' => 20)); echo $OUTPUT->heading(format_string($strsignupteampage) . ' ' . blended_get_item_name($item) . $OUTPUT->help_icon('signupteampage', 'blended')); echo $OUTPUT->spacer(array('height' => 20)); // Get all teams in the current activity--------------------------------------- $grouping = blended_get_grouping($item, $blended); $teams = blended_get_teams($item, true); $not_DNI_out = false; $not_DNI_in = false; $code = blended_gen_idvalue($USER, $blended); // Si el id es el dni y el estudiante no lo ha introducido en su perfil if ($code == -1) { $not_DNI_in = true; $not_DNI_out = true; } $url14 = "selectassignment.php?id={$cm->id}"; if ($not_DNI_in) { echo $OUTPUT->notification("Hasta que posea código de identififación no puede inscribirse en ningun equipo", $url14);
function blended_get_assignment_name($id) { return blended_get_item_name(grade_item::fetch(array('id' => $id))); }
// el curso se le redirige a la p�gina del curso para darse de alta. //require_login ( $course->id ); require_login($cm->course, false, $cm); $context_course = context_course::instance($cm->course); list($studentids, $nonstudentids, $activeids, $users) = blended_get_users_by_type($context_course); if (count($studentids) == 0) { print_error('errornostudents', 'blended'); } $context = context_module::instance($cm->id); require_capability('mod/blended:introteams', $context); // Get assignment name before header --------------------------------------------- $item = blended_get_item($itemid); if (!$item) { $assignmentname = ''; } else { $assignmentname = blended_get_item_name($item); } // Get the strings --------------------------------------------------------------- $strteamsmanagementpage = get_string("teamsmanagementpage", "blended"); $strintroteamspage = get_string("introteamspage", "blended"); $strcreationmethod = get_string("creationmethod", "blended"); $strbyhand = get_string("byhand", "blended"); $strrandomly = get_string("randomly", "blended"); $strstudentsselection = get_string('studentsselection', 'blended'); $stractivestudents = get_string('activestudents', 'blended'); $strallstudents = get_string('allstudents', 'blended'); $strnumteams = get_string('numteams', 'blended'); $strnummembers = get_string('nummembers', 'blended'); $strgradepage = get_string("gradepage", "blended"); // Print the page header --------------------------------------------------------- // show headings and menus of page-----------------------------------------
function blended_actualizar_agrupamiento($updated_teams, grade_item $item, $blended, $delete_empty) { global $DB; $output = ''; $r = 0; //obtengo el identificador del curso $grouping = blended_get_grouping($item, $blended); //groups_get_grouping($groupingid,'*',MUST_EXIST);//$DB->get_record('groupings',array('id'=>$groupingid)); $courseid = $grouping->courseid; //Obtención de la lista de id de los usuarios introducidos en el curso: $lista_usuarios = get_enrolled_users(context_course::instance($courseid), '', 0, 'u.id,u.idnumber'); $lista_idnumbers = array(); // //Obtenci�n de la lista de 'idnumber' de estos usuarios foreach ($lista_usuarios as $id => $lista) { if (!empty($lista->idnumber)) { $lista_idnumbers[$id] = $lista->idnumber; } // $r++; } // $r=0; // $lista_id=array(); // foreach($lista_idnumbers as $lista){ // $lista_id[$r]=blended_clean_idnumber($lista); // $r++; // } $members_processed = array(); /* Actualizo los grupos actualizando el nombre del grupo y volviendo a introducir los miembros comprobando que el usuario introducido existe */ $r = 0; foreach ($updated_teams as $i => $updatedteam) { // Check members $form_members = array(); foreach ($updatedteam->members as $memberid) { //compruebo que el usuario introducido existe y si es as� que lo guarde if (key_exists($memberid, $lista_idnumbers)) { // user is specified by moodle id if (array_search($memberid, $form_members) === false) { $form_members[] = $memberid; } } else { if (key_exists($memberid, $lista_usuarios)) { // user is specified by id_number if (array_search($memberid, $form_members) === false) { $form_members[] = $memberid; } } } } // Update/Create/delete Group // Create/Update Group information // if (count($form_members) == 0 && $delete_empty) { // An empty membership deletes the group ?? groups_delete_group($updatedteam->id); } else { //guardo los miembros en un array $current_team = blended_get_team($updatedteam->id); if ($current_team) { //si existe lo actualizo $current_team->name = $updatedteam->name; groups_update_group($current_team); } else { if (count($form_members) > 0 || $updatedteam->name != '') { //si no existe lo creo $itemname = blended_get_item_name($item); $data = new stdClass(); $data->courseid = $courseid; $data->name = $updatedteam->name; $data->description_editor['text'] = "Group for activity: '{$itemname}'."; $data->description_editor['format'] = FORMAT_PLAIN; $updatedteam->id = groups_create_group($data); groups_assign_grouping($grouping->id, $updatedteam->id, time(), true); } else { continue; // team with no id, no name, and no components } } $current_team = blended_get_team($updatedteam->id, true); $current_members = array_keys($current_team->members); // find members to remove $members_to_delete = array_diff($current_members, $form_members); $members_to_add = array_diff($form_members, $current_members); // remove old members $need_reelect_leader = false; foreach ($members_to_delete as $memberid) { $need_reelect_leader = $current_team->leaderid == $memberid; blended_remove_team_member($current_team, $memberid); // groups_remove_member($team->id, $member->id); } // update team conf $current_team = blended_get_team($current_team); // Add current members foreach ($members_to_add as $memberid) { groups_add_member($current_team->id, $memberid); if ($memberid == $current_team->leaderid) { $need_reelect_leader = false; } if (key_exists($memberid, $members_processed)) { $members_processed[$memberid]++; } else { $members_processed[$memberid] = 1; } } if (!isset($current_team->leaderid)) { $need_reelect_leader = true; } // check leadership if (count($members_to_add) > 0 && count($members_to_delete) > 0 && $need_reelect_leader) { // elect new leader blended_set_team_leaderid($current_team->id, $form_members[0]); global $OUTPUT, $DB; $a = new stdClass(); $a->username = fullname($DB->get_record('user', array('id' => $form_members[0]))); $a->teamname = $current_team->name; $output .= $OUTPUT->notification(get_string('userpromotedtoleader', 'blended', $a)); } } } return $output; // //Actualizaci�n de las calificaciones(si existen) : comparar los miembros con los de "grade_grades" y si // //no estan en el vector borrarlos de la tabla $grades_moodle = grade_get_grades($courseid, $item->itemtype, $item->itemmodule, $item->iteminstance); $grades_item = $grades_moodle->items[0]; $grades = $grades_item->grades; //Para cada miembro de la tabla miro si esta en el vector $miembros_grupos $cont_gr = 0; $cont_group = 0; foreach ($grades as $grade) { foreach ($miembros_grupos as $miembro_gr) { foreach ($miembro_gr as $miembro) { if ($grade->userid != $miembro->id) { $cont_gr++; } if ($cont_gr == count($miembro_gr)) { $cont_group++; continue; } } if ($cont_gr == count($miembros_grupos)) { print_error("borra en tabla!!"); //Entonces ese id no esta en los mimebros y hay que borrarlo de la tabla $DB->delete_records('grade_grades', array('itemid' => $grade_item->id, 'userid' => $grade->userid)); continue; } } } // $DB->delete_records('grade_grades',array('itemid'=>$grade_item->id)); //Comprobaci�n de la repetici�n de miembros en distintos equipos: $contador = array(); foreach ($lista_idnumbers as $t) { $valor = 1; foreach ($miembros_grupos as $miembro_gr) { foreach ($miembro_gr as $miembro) { if ($miembro->idnumber == $t) { //meto en un contador para el valor del id de cada usuario las veces que se repite $contador[$miembro->id] = $valor; $valor++; } } } } return $contador; }
function definition() { global $CFG, $DB, $COURSE; $mform =& $this->_form; $key = mt_rand(0xfff, 0x7fffffff); $mform->addElement('hidden', 'randomkey', $key); $mform->setType('randomkey', PARAM_INT); $mform->setDefault('randomkey', $key); $strrequired = get_string('required', 'blended'); // Cabecera -------------------------------------------------------------- $mform->addElement('header', 'general', get_string('general', 'form')); // Nombre ---------------------------------------------------------------- $mform->addElement('text', 'name', get_string('name', 'blended'), array('size' => '64')); $mform->setType('name', PARAM_TEXT); $mform->addRule('name', $strrequired, 'required', null, 'client'); // Descripción ----------------------------------------------------------- $this->add_intro_editor(true, get_string('description', 'blended')); //Metodo de identificación ---------------------------------------------- $idmethodoptions = array(0 => get_string('coded', 'blended'), 1 => get_string('plain', 'blended')); $mform->addElement('select', 'idmethod', get_string("idmethod", "blended"), $idmethodoptions); $mform->addHelpButton('idmethod', 'idmethod', 'blended'); $mform->setDefault('idmethod', 0); // Tipo Codigo de barras ---------------------------------------------- $idcodeoptions = array('QRCode,Q' => 'QR 2D', 'DATAMATRIX' => 'DATAMATRIX ISO/IEC 16022', 'PDF417' => 'PDF417 ISO/IEC 15438:2006', 'EAN13' => 'EAN13'); $mform->addElement('select', 'codebartype', get_string("codebartype", "blended"), $idcodeoptions); $mform->addHelpButton('codebartype', 'codebartype', 'blended'); $mform->setDefault('codebartype', 'QRCode,Q'); // enable/disable OMR part $mform->addElement('checkbox', 'omrenabled', get_string('OMRenable', 'blended'), get_string('OMRenableLabel', 'blended')); // Número de columnas del cuestionario -------------------------------------- $numbercols = array_combine(range(1, 4), range(1, 4)); $mform->addElement('select', 'numcols', get_string("numbercols", "blended"), $numbercols); $mform->addHelpButton('numcols', 'numbercols', 'blended'); $mform->setDefault('numcols', 2); // Identificador --------------------------------------------------------- $options1 = array('userid' => get_string('userid', 'blended'), 'idnumber' => get_string('idnumber', 'blended')); $options2 = array(); if (!($options = $DB->get_records_menu("user_info_field", null, "name", "id, name"))) { //print('No info user fields found!'); } else { foreach ($options as $id => $name) { //$fieldid = $DB->get_field("user_info_field","id",array("name"=>$name)); $options2["2" . $id] = get_string("userinfo", "blended") . $name; } } $idtypeoptions = $options1 + $options2; //$idtypeoptions = array_merge($options1, $options2); $mform->addElement('select', 'idtype', get_string("idtype", "blended"), $idtypeoptions); $mform->addHelpButton('idtype', 'idtype', 'blended'); //$mform->setDefault('idtype', "0"); // Longitud de identificacion de usuario ---------------------------------------- $lengthuserinfooptions = array_combine(range(2, 12), range(2, 12)); $mform->addElement('select', 'lengthuserinfo', get_string("lengthuserinfo", "blended"), $lengthuserinfooptions); $mform->addHelpButton('lengthuserinfo', 'lengthuserinfo', 'blended'); $mform->setDefault('lengthuserinfo', 8); // Creación de los equipos ----------------------------------------------- $teammethodoptions = array(0 => get_string('byteacher', 'blended'), 1 => get_string('bystudents', 'blended'), 2 => get_string('bystudentswithleaders', 'blended')); $mform->addElement('select', 'teammethod', get_string("teammethod", "blended"), $teammethodoptions); $mform->addHelpButton('teammethod', 'teammethod', 'blended'); $mform->setDefault('teammethod', 0); // Select items // $items = blended_get_calificable_items($COURSE); $selected_items = blended_get_available_items($this->current); if (count($items) == count($selected_items)) { // this is represented as no filtering $selected_items = array(); } $optionsitems = array(); foreach ($items as $id => $item) { $optionsitems[$id] = blended_get_item_name($item); } $selectitemsform = $mform->addElement('select', 'selecteditems', get_string('selectitems', 'blended'), $optionsitems); $mform->addHelpButton('selecteditems', 'selectitems', 'blended'); $selectitemsform->setMultiple(true); $selectitemsform->setSelected(array_keys($selected_items)); // Numero de equipos por defecto ---------------------------------------- $teamsoptions = array_combine(range(1, TEAMS_MAX_ENTRIES), range(1, TEAMS_MAX_ENTRIES)); $mform->addElement('select', 'numteams', get_string("defaultnumteams", "blended"), $teamsoptions); $mform->setDefault('numteams', 10); // Numero de miembros por defecto ---------------------------------------- $nummembersoptions = array_combine(range(1, MEMBERS_MAX_ENTRIES), range(1, MEMBERS_MAX_ENTRIES)); $mform->addElement('select', 'nummembers', get_string("defaultnummembers", "blended"), $nummembersoptions); $mform->addHelpButton('nummembers', 'defaultnummembers', 'blended'); $mform->setDefault('nummembers', 4); // Otras caracteristicas ------------------------------------------------- $features = new stdClass(); $features->groups = false; $features->groupings = true; $features->groupmembersonly = true; $this->standard_coursemodule_elements($features); // buttons $this->add_action_buttons(); }
break; } } // Fin foreach select new leader } // Fin if-else } // end if user is leader } else { if ($action == 'newusergroup' && $blended->teammethod != TEAMS_BY_TEACHERS) { $name_team = optional_param('name_team', '', PARAM_ALPHANUMEXT); //nombre equipo $groupingid = blended_get_groupingid($item); if (!$groupingid) { // create a default grouping $itemname = blended_get_item_name($item); $grouping_name = "{$itemname} Teams"; $groupingid = blended_create_unique_grouping($grouping_name, $course); $grouping = groups_get_grouping($groupingid); blended_assign_grouping($item, $grouping, $USER->id, null); } $members = array($USER->id => $USER); $teamid = blended_add_new_group($course->id, $name_team, $members, $groupingid); blended_set_team_leaderid($teamid, $USER->id); $a = new stdClass(); $a->username = fullname($USER); $a->teamname = $name_team; echo $OUTPUT->notification(get_string('userenrolledtoteam', 'blended', $a)); } else { if ($action == 'signup' && $blended->teammethod != TEAMS_BY_TEACHERS) { //Comprobar que:
} if ($data = $form->get_data()) { redirect('selectassignment.php'); } else { // Obtenemos las referencias a toda la informaci�n sobre los modulos dentro del curso // $modinfo = get_fast_modinfo ( $course->id ); //Etiqueta del la lista desplegable echo $OUTPUT->box(format_text(get_string('assignments', 'blended'), FORMAT_MOODLE), 'generalbox', 'intro'); $strsignupteam = get_string('signupteam', 'blended'); //Form SIGNUPTEAM $url1 = new moodle_url("signupteam.php"); echo "<form name=\"signupteam\" method=\"get\" action=\"{$url1}\">"; echo "<select name=\"itemid\">"; //echo "<option value=\"0\" selected=\"selected\">$strnone</option>"; foreach ($items as $r => $item) { $itemtypename = blended_get_item_name($item); echo "<option value=\"{$item->id}\">{$itemtypename}</option>"; } echo "</select>"; echo "<input type=\"hidden\" name=\"id\" value=\"{$id}\" />"; //Botón INSCRIBIRSE // echo"<input type=\"submit\" name=\"Submit\" value=\"Inscribirse\" onsubmit=\"checkform($url1)\" />"; echo "<input type=\"submit\" onsubmit=\"checkform({$url1})\" value=\"{$strsignupteam}\" />"; //Fin del formulario echo '</form>'; } //Fin if-else echo "</center>"; } //Fin if-else // Finish the page