function blended_gen_cleanidvalue($user, $blended) { global $DB; // Tipo de identificador ----------------------------------------------------- switch (substr($blended->idtype, 0, 1)) { // `idnumber` tabla "user" case "i": // idnumber if (!empty($user->idnumber)) { $code = $user->idnumber; } else { return -1; } break; // Si no se ha introducido el `idnumber` finalizamos pues lo necesitamos para el c�digo // Si no se ha introducido el `idnumber` finalizamos pues lo necesitamos para el c�digo case "u": //userid $code = $user->id; break; // `data` tabla "user_info_data" // `data` tabla "user_info_data" case "2": // customfield encoded as 2fieldname $fieldid = intval(substr($blended->idtype, 1)); if (!($code = $DB->get_field('user_info_data', 'data', array('userid' => $user->id, 'fieldid' => (int) $fieldid)))) { return -2; break; } break; } //Limpia guion y letra final $code = blended_clean_idnumber($code); return $code; }
function blended_update_group($courseid, $teamname, $mem, $groupid, $ya) { global $DB; $data = new object(); $data->courseid = $courseid; $data->name = $teamname; $data->description_editor['text'] = ' '; $data->description_editor['format'] = 1; $data->id = $groupid; groups_update_group($data); $oldmems = $DB->get_records('groups_members', array('groupid' => $groupid)); if ($ya == null) { foreach ($oldmems as $oldmem) { groups_remove_member($groupid, $oldmem->userid); } $us = $DB->get_records('user'); for ($y = 0; $y < count($mem); $y++) { $use = array(); foreach ($us as $f => $u) { $use[$f] = blended_clean_idnumber($u->idnumber); if ($use[$f] == $mem[$y]) { groups_add_member($groupid, $u->id); } } } } else { if ($ya == true) { $memid = $DB->get_records('user'); foreach ($memid as $mid) { if ($mem == substr($mid->idnumber, 0, 8)) { groups_add_member($groupid, $mid->id); $DB->insert_record_raw('blended_member', array('userid' => $mid->id, 'id_member' => $mem, 'id_team' => $groupid, 'leader' => 0)); break; } } } } groups_update_grouping($data); }
function blended_insert_teams($teams, $course, $blended = null, $leader = null, grade_item $item = null, $original_itemid = null, $id = null, $currentuserid = null, $groupingid) { global $DB; $insertedteam = new object(); $insertedteams = array(); $array_return = array(); $lista_id = array(); foreach ($teams as $team) { // $insertedteam=blended_insert_team($team, null, $insertedteam); // $insertedteams[$index]= $insertedteam; $memberids = $team->members; $members = array(); if ($memberids === null) { $memberids = array(); } foreach ($memberids as $memberid) { //lista de dni sin la letra $user = $DB->get_record('user', array('id' => $memberid)); $members[] = $user; $lista_id[] = blended_clean_idnumber($user->id); } /* * Actualizo los grupos actualizando el nombre del grupo y volviendo a introducir * los miembros comprobando que el usuario introducido existe */ $contador_miembros = 0; $contador_miembros_id = 0; $miembros_introducir_validos = array(); foreach ($members as $member) { if (in_array($member->id, $lista_id)) { //compruebo para no introducir ningun DNI que no exista en la base de datos $miembros_introducir_validos[] = $member; } } //Si existe el id del agrupamiento: if ($groupingid !== null) { $groupid = blended_add_new_group($course->id, $team->name, $miembros_introducir_validos, $groupingid); // blended_update_assignment_and_gradebook($itemid, $original_itemid, $miembros_introducir_validos, $blended, // $id, $currentuserid); // if($contador_miembros==count($members)){//Si existe un grupo vac�o o con todos los dni no v�lidos se borrar� // groups_delete_group($groupid); // } } else { if ($groupingid === null) { //Si no existe el id del agrupamiento $groupingid = blended_get_groupingid($item); blended_add_new_group($course->id, $team->name, $miembros_introducir_validos, $groupingid); } } // $ys=$DB->get_records('groupings_groups',array('groupingid'=>$groupingid)); // $m=array(); // foreach($ys as $u=>$y){ // $m[$u]=$DB->get_records('groups_members',array('groupid'=>$y->groupid)); // } // $mbss=array(); // foreach($m as $fs){ // if(!empty($fs)){ // foreach($fs as $t=>$f){ // $mb=$DB->get_record('user',array('id'=>$f->userid)); // $mbss[$t]=blended_clean_idnumber($mb->idnumber); // } // } // } // Si hay ERROR al insertar los miembros se borra el equipo insertado if (!empty($return)) { // Array con los códigos de error ocurridos $array_return[$insertedteam->name] = $return; // Deprecated: Se borra el equipo insertado // TODO: comprobar que no es problematico dejar el equipo con algún usuario sin insertar // solo borra si el equipo a resultado vacío. if (count($return) == 0) { blended_delete_all($insertedteam->id); unset($insertedteams[$index]); } } } // Si hubo ERROR if (!empty($array_return)) { return $array_return; } }