Example #1
0
$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)));
}
Example #3
-1
// 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-----------------------------------------
Example #4
-1
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;
}
Example #5
-1
 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