/** * Given an object containing all the necessary data, * this function will create a new activity and return the id number * * @param object $activite: a special referentiel_activite object * @param object $m a secial module object * @return int The id of the newly inserted record **/ function referentiel_activite_outcomes($activite, $m, $liste_bareme_evaluations = '', $mdata = NULL) { // creation / mise a jour activite par objectif global $CFG; global $DB; $activite_id = 0; if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nDEBUG :: referentiel_activite_outcomes :: 715\nDEMANDE MISE A JOUR\n"); print_r($activite); mtrace("\n"); print_r($m); mtrace("\n " . $liste_bareme_evaluations); mtrace("\n"); } $activite->type_activite = addslashes($activite->type_activite); $activite->mailnow = 0; $activite->mailed = 1; // ne pas notifier. /* $m->id; $m->type=$modulename; $m->instance=$moduleinstance; $m->course=$courseid; $m->date=$cm->added; $m->userdate=userdate($cm->added); $m->ref_activite=$mid; $m->name=$mname; $m->description=$mdescription; $m->link=$mlink; */ // cette activite est-elle enregistree ? $params = array("ref_instance" => "{$activite->ref_instance}", "ref_referentiel" => "{$activite->ref_referentiel}", "ref_course" => "{$activite->ref_course}", "userid" => "{$activite->userid}", "type" => "{$m->type}", "moduleid" => "{$m->id}", "ref_activite" => "{$m->ref_activite}"); $sql = "SELECT * FROM {referentiel_activite_modules}\n WHERE ref_instance=:ref_instance\n AND ref_referentiel=:ref_referentiel AND ref_course=:ref_course\n AND userid=:userid\n AND type=:type\n AND moduleid=:moduleid\n AND ref_activite=:ref_activite "; if (OUTCOMES_SUPER_DEBUG) { mtrace("\nVERIF table referentiel_activite_modules\n"); print_r($params); mtrace("\nSQL:\n{$sql}\n"); } $r_activite_outcomes = $DB->get_record_sql($sql, $params); if ($r_activite_outcomes) { if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nDEBUG :: referentiel_activite_outcomes :: 761\n**** Activité déjà enregistrée *** \n"); print_r($r_activite_outcomes); mtrace("\n"); } // cet utilisateur est deja reference pour cette activite $activite_old = $DB->get_record("referentiel_activite", array("id" => "{$r_activite_outcomes->activiteid}")); if ($activite_old) { if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nDEBUG :: grade/cron_outcomes/referentiel_activite_outcomes :: 772\nOLD\n"); print_r($activite_old); mtrace("\n"); } // Verifier /* $mdata->submission=''; $mdata->comment=array(); $mdata->feedback=''; $mdata->file=array(); $mdata->link=array(); */ if (!empty($mdata)) { if (!empty($mdata->submission)) { if (!strpos($mdata->submission, $activite_old->description_activite)) { $activite->description_activite .= "\n" . get_string('submission', 'referentiel') . ' ' . $mdata->submission; } } if (!empty($mdata->comment)) { foreach ($mdata->comment as $acomment) { if (!strpos($acomment, $activite_old->description_activite)) { $activite->description_activite .= "\n" . $acomment; } } } if (!empty($mdata->feedback)) { if (!empty($activite_old->commentaire_activite)) { if (!strpos($mdata->feedback, $activite_old->commentaire_activite)) { $activite->commentaire_activite .= "\n" . $mdata->feedback; } } else { $activite->commentaire_activite .= $mdata->feedback; } } } $activite->description_activite = addslashes($activite->description_activite); $activite->commentaire_activite = addslashes($activite->commentaire_activite); // fusionner l'activite $activite->id = $activite_old->id; $activite->date_modif_student = $activite_old->date_modif_student; if (!$activite->date_modif) { $activite->date_modif = time(); } // $activite->approved=$activite_old->approved; $activite->approved = 1; if (empty($activite_old->date_modif) || $activite_old->date_modif < $activite->date_modif) { // DEBUG // print_object($activite); // echo "<br />"; if ($DB->update_record("referentiel_activite", $activite)) { referentiel_mise_a_jour_competences_certificat_user($activite_old->competences_activite, $activite->competences_activite, $activite->userid, $activite->ref_referentiel, $activite->approved, true, $activite->approved); $activite_id = $activite->id; // Bareme if ($CFG->referentiel_use_scale && !empty($liste_bareme_evaluations)) { if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nLINE 802 :: BAREME :: {$liste_bareme_evaluations}"); } referentiel_enregistrer_ce_bareme_activite($liste_bareme_evaluations, referentiel_get_liste_codes_competence($activite->ref_referentiel), $activite_id, referentiel_get_bareme_id_occurrence($activite->ref_referentiel)); } if (!empty($mdata)) { if (!empty($mdata->link)) { // Portland version of assign mahara plugin foreach ($mdata->link as $alink) { if (!empty($alink)) { if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nDEBUG :: grade/cron_outcomes/referentiel_activite_outcomes :: 1129 :: link DOCUMENT \n"); print_r($alink); } $url = addslashes(referentiel_get_mahara_link($alink)); if (!($document_old = $DB->get_record("referentiel_document", array("url_document" => $url, "ref_activite" => $activite_id)))) { $document = new object(); $document->url_document = $url; $document->type_document = addslashes(substr(get_string('mahara', 'referentiel'), 0, 20)); $document->description_document = get_string('mahara', 'referentiel'); $document->ref_activite = $activite_id; $document->cible_document = 1; $document->etiquette_document = addslashes($alink->title); // DEBUG // print_r($document); // echo "<br />"; $document_id = $DB->insert_record("referentiel_document", $document); // echo "DOCUMENT ID / $document_id<br />"; } } } } if (!empty($mdata->file)) { foreach ($mdata->file as $afile) { if (!empty($afile) && $afile->filename != '.' && $afile->filesize > 0) { if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nDEBUG :: grade/cron_outcomes/referentiel_activite_outcomes :: 1104 :: FILE DOCUMENT \n"); print_r($afile); } $url = addslashes(referentiel_url_file($afile)); if (!($document_old = $DB->get_record("referentiel_document", array("url_document" => $url, "ref_activite" => $activite_id)))) { $document = new object(); $document->url_document = $url; $document->type_document = addslashes(substr(get_string('document', 'referentiel'), 0, 20)); $document->description_document = get_string('assignementdoc', 'referentiel'); $document->ref_activite = $activite_id; $document->cible_document = 1; $document->etiquette_document = addslashes($afile->filename); // DEBUG // print_r($document); // echo "<br />"; $document_id = $DB->insert_record("referentiel_document", $document); // echo "DOCUMENT ID / $document_id<br />"; } } } } } return true; } } } else { // Cette activite a ete supprimee // Supprimer la ligne qui n'a plus de correspondance dans les activites $DB->delete_records("referentiel_activite_modules", array("id" => "{$r_activite_outcomes->id}")); } } else { if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nDEBUG :: grade/cron_outcomes/referentiel_activite_outcomes :: 786 :: NEW ACTIVITY\n"); print_r($activite); mtrace("\n"); } /* $mdata->submission=''; $mdata->comment=array(); $mdata->feedback=''; $mdata->file=array(); */ if (!empty($mdata)) { if (!empty($mdata->submission)) { $activite->description_activite .= "\n" . get_string('submission', 'referentiel') . ' ' . $mdata->submission; } if (!empty($mdata->comment)) { foreach ($mdata->comment as $acomment) { $activite->description_activite .= "\n" . $acomment; } } if (!empty($mdata->feedback)) { $activite->commentaire_activite .= $mdata->feedback; } } $activite->description_activite = addslashes($activite->description_activite); $activite->commentaire_activite = addslashes($activite->commentaire_activite); // inserer l'activité $activite_id = referentiel_insert_activite_controlee($activite); //if (($activite_id>0) && ($activite->competences_activite!='')){ if ($activite_id > 0) { // mise a jour du certificat referentiel_mise_a_jour_competences_certificat_user('', $activite->competences_activite, $activite->userid, $activite->ref_referentiel, $activite->approved, true, false); // Bareme if ($CFG->referentiel_use_scale && !empty($liste_bareme_evaluations)) { if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nLINE 838 :: BAREME :: {$liste_bareme_evaluations}"); } referentiel_enregistrer_ce_bareme_activite($liste_bareme_evaluations, referentiel_get_liste_codes_competence($activite->ref_referentiel), $activite_id, referentiel_get_bareme_id_occurrence($activite->ref_referentiel)); } } else { // inutile de créer cette activité car aucune compétence n'est validée if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nDEBUG :: grade/cron_outcomes/referentiel_activite_outcomes :: 848 :: \nINSERTION INUTILE CETTE ACTIVITE \n"); print_r($activite); mtrace("\n"); } } // Rajouter le lien if (isset($activite_id) && $activite_id > 0 && (isset($m->link) && !empty($m->link) || isset($m->name) && !empty($m->description))) { $document = new object(); $document->url_document = $m->link; $document->type_document = addslashes(substr(get_string('modulename', $m->type), 0, 20)); $document->description_document = get_string('assignementdoc', 'referentiel'); // addslashes($m->description); $document->ref_activite = $activite_id; $document->cible_document = 1; $document->etiquette_document = addslashes($m->name); $document_id = $DB->insert_record("referentiel_document", $document); } if (!empty($mdata)) { if (!empty($mdata->link)) { // portland version of assign mahara plugin foreach ($mdata->link as $alink) { if (!empty($alink)) { if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nDEBUG :: grade/cron_outcomes/referentiel_activite_outcomes :: 1263 :: link DOCUMENT \n"); print_r($alink); } $document = new object(); $document->url_document = addslashes(referentiel_get_mahara_link($alink)); $document->type_document = addslashes(substr(get_string('mahara', 'referentiel'), 0, 20)); $document->description_document = get_string('mahara', 'referentiel'); // addslashes($m->description); $document->ref_activite = $activite_id; $document->cible_document = 1; $document->etiquette_document = addslashes($alink->title); $document_id = $DB->insert_record("referentiel_document", $document); } } } if (!empty($mdata->file)) { foreach ($mdata->file as $afile) { if (!empty($afile) && $afile->filename != '.' && $afile->filesize > 0) { if (OUTCOMES_SUPER_DEBUG) { // DEBUG mtrace("\nDEBUG :: grade/cron_outcomes/referentiel_activite_outcomes :: 1216 :: FILE DOCUMENT \n"); print_r($afile); } $document = new object(); $document->url_document = addslashes(referentiel_url_file($afile)); $document->type_document = addslashes(substr(get_string('document', 'referentiel'), 0, 20)); $document->description_document = get_string('assignementdoc', 'referentiel'); // addslashes($m->description); $document->ref_activite = $activite_id; $document->cible_document = 1; $document->etiquette_document = addslashes($afile->filename); $document_id = $DB->insert_record("referentiel_document", $document); } } } } // if (isset($activite_id) && $activite_id > 0) { // $r_a_outcomes = new object(); $r_a_outcomes->activiteid = $activite_id; $r_a_outcomes->ref_course = $activite->ref_course; $r_a_outcomes->ref_instance = $activite->ref_instance; $r_a_outcomes->ref_referentiel = $activite->ref_referentiel; $r_a_outcomes->userid = $activite->userid; $r_a_outcomes->type = $m->type; $r_a_outcomes->moduleid = $m->id; $r_a_outcomes->ref_activite = $m->ref_activite; $DB->insert_record("referentiel_activite_modules", $r_a_outcomes); return true; } } return false; }
function referentiel_creer_competences_activite($activite, $bareme) { global $DB; $liste_evaluations = ''; if (!empty($bareme) && !empty($activite) && !empty($activite->competences_activite)) { if ($activite->approved) { $sep = ":" . $bareme->threshold . "/"; } else { // MODIF JF 2013/10/07 //$sep=":0/"; $sep = ":-1/"; // non defini } $liste_codes = referentiel_get_liste_codes_competence($activite->ref_referentiel); $liste_a_comparer = trim(strtr($activite->competences_activite, '.', '_')); $titem = explode('/', $liste_codes); if ($titem) { foreach ($titem as $item) { if (!empty($item)) { $code_search = strtr($item, '.', '_'); if (stristr($liste_a_comparer, $code_search)) { $liste_evaluations .= $item . $sep; } else { // MODIF JF 2013/10/07 // $liste_evaluations.=$item.":0/"; $liste_evaluations .= $item . ":-1/"; // non defini } } } } // creation $rec = new stdClass(); $rec->activiteid = $activite->id; $rec->refscaleid = $bareme->id; $rec->competences_bareme = $liste_evaluations; // DEBUG //print_object($rec); //exit; if ($DB->insert_record('referentiel_activite_scale', $rec)) { return $rec->competences_bareme; } } return ''; }
$form->type_document = ''; } if (!isset($form->url_document)) { $form->url_document = ''; } // preparer les variables globales pour Overlib if (isset($referentiel_referentiel->id) && $referentiel_referentiel->id > 0) { referentiel_initialise_data_referentiel($referentiel_referentiel->id); } // Charger les activites // filtres $context = context_module::instance($cm->id); $isteacher = has_capability('mod/referentiel:approve', $context); $isauthor = has_capability('mod/referentiel:write', $context) && !$isteacher; $iseditor = has_capability('mod/referentiel:writereferentiel', $context); $liste_codes_competence = referentiel_get_liste_codes_competence($referentiel_referentiel->id); $activite_id = $record->id; $type_activite = stripslashes($record->type_activite); $description_activite = stripslashes(strip_tags($record->description_activite)); $competences_activite = stripslashes(strip_tags($record->competences_activite)); $commentaire_activite = stripslashes(strip_tags($record->commentaire_activite)); $ref_instance = $record->ref_instance; $ref_referentiel = $record->ref_referentiel; $ref_course = $record->ref_course; $userid = $record->userid; $teacherid = $record->teacherid; if ($teacherid == 0) { if ($isteacher || $iseditor) { $teacherid = $USER->id; } }
function referentiel_edit_activite_detail($bareme, $context, $cmid, $courseid, $mode, $record, $actif = true) { //($data_filtre,$mode, $cm, $course, $referentiel_instance, $record, $context, $actif=true){ // Saisie et validation globale // le formulaire est global // $actif = true : le menu est active, sinon il ne l'est pas // $data_filtre : parametres de filtrage // $mode : mode d'affichage // $cm : course_module // $course : enregistrement cours // referentiel_instance : enregistrement instance // record : enregistrement activite // $context : contexte roles et capacites // $actif : affichage menu global $USER; global $CFG; global $OUTPUT; global $t_item_code; global $t_item_description_competence; /* echo "<br/>T_ITEM_CODE : "; print_object($t_item_code); echo "<br/>T_ITEM_DESCRITION : "; print_object($t_item_description_competence); echo "<br/>USER : "******"<br/>CFG : "; print_object($CFG); */ $s = ''; $s_menu = ''; $s_document = ''; $s_out = ''; // Charger les activites // filtres $isteacher = has_capability('mod/referentiel:approve', $context); $iseditor = has_capability('mod/referentiel:writereferentiel', $context); if ($record) { $activite_id = $record->id; $type_activite = stripslashes($record->type_activite); $description_activite = stripslashes(strip_tags($record->description_activite)); $competences_activite = stripslashes(strip_tags($record->competences_activite)); $commentaire_activite = stripslashes(strip_tags($record->commentaire_activite)); $ref_instance = $record->ref_instance; $ref_referentiel = $record->ref_referentiel; // liste des codes pur ce référentiel $liste_codes_competence = referentiel_get_liste_codes_competence($ref_referentiel); $ref_course = $record->ref_course; $userid = $record->userid; $teacherid = $record->teacherid; if ($teacherid == 0) { if ($isteacher || $iseditor) { $teacherid = $USER->id; } } $date_creation = $record->date_creation; $date_modif = $record->date_modif; $approved = $record->approved; $ref_task = $record->ref_task; if ($ref_task > 0) { // remplacer par la liste definie dans la tache $liste_codes_competences_tache = referentiel_get_liste_codes_competence_tache($ref_task); // DEBUG // $s.="<br/>DEBUG ::<br />\n"; // $s.=$liste_codes_competences_tache; } else { $liste_codes_competences_tache = $liste_codes_competence; } // DEBUG // $s.="<br/>DEBUG ::<br />\n"; // print_object($record); $user_info = referentiel_get_user_info($userid); $teacher_info = referentiel_get_user_info($teacherid); // dates $date_creation_info = userdate($date_creation); if ($date_modif != 0) { $date_modif_info = userdate($date_modif); } else { $date_modif_info = ''; } // MODIF JF 2009/10/27 $date_modif_student = $record->date_modif_student; if ($date_modif_student == 0) { $date_modif_student = $date_creation; } if ($date_modif_student != 0) { $date_modif_student_info = userdate($date_modif_student); } else { $date_modif_student_info = ''; } $prioritaire = referentiel_activite_prioritaire($record); // MODIF JF 2009/10/21 $old_liste_competences = stripslashes($record->competences_activite); // MODIF JF 2009/10/23 $url_course = referentiel_get_course_link($ref_course); // MODIF JF 2013/01/26 $url_instance = referentiel_get_instance_link($ref_instance); // MODIF JF 2009/11/08 // afficher le menu si l'activité est affiche dans son propre cours de création $menu_actif = $actif || $ref_course == $courseid; if ($menu_actif) { $has_capability = has_capability('mod/referentiel:approve', $context); $is_owner = referentiel_activite_isowner($activite_id); if ($has_capability or $is_owner) { if ($has_capability || $is_owner && !$approved) { $s_menu .= ' <a href="' . $CFG->wwwroot . '/mod/referentiel/activite.php?id=' . $cmid . '&activite_id=' . $activite_id . '&userid=' . $userid . '&mode=modifactivity&old_mode=' . $mode . '&sesskey=' . sesskey() . '"><img src="' . $OUTPUT->pix_url('edit', 'referentiel') . '" alt="' . get_string('edit') . '" title="' . get_string('edit') . '" /></a>' . "\n"; } if ($has_capability || $is_owner && !$approved) { $s_menu .= ' <a href="' . $CFG->wwwroot . '/mod/referentiel/activite.php?id=' . $cmid . '&activite_id=' . $activite_id . '&userid=' . $userid . '&mode=deleteactivity&old_mode=' . $mode . '&sesskey=' . sesskey() . '"><img src="' . $OUTPUT->pix_url('delete', 'referentiel') . '" alt="' . get_string('delete') . '" title="' . get_string('delete') . '" /></a>' . "\n"; } } } else { $s_menu .= ' ' . get_string('activite_exterieure', 'referentiel'); } // DOCUMENTS // charger les documents associes à l'activite courante $compteur_document = 0; $s_document = ''; if (isset($activite_id) && $activite_id > 0) { $ref_activite = $activite_id; // plus pratique // AFFICHER LA LISTE DES DOCUMENTS $records_document = referentiel_get_documents($ref_activite); if ($records_document) { // afficher // DEBUG // $s.="<br/>DEBUG <br />\n"; // print_r($records_document); foreach ($records_document as $record_d) { $compteur_document++; $document_id = $record_d->id; $type_document = stripslashes($record_d->type_document); $description_document = stripslashes($record_d->description_document); $url_document = $record_d->url_document; $ref_activite = $record_d->ref_activite; if (isset($record_d->cible_document) && $record_d->cible_document == 1) { $cible_document = '_blank'; // fenêtre cible } else { $cible_document = ''; } if (isset($record_d->etiquette_document)) { $etiquette_document = $record_d->etiquette_document; // fenêtre cible } else { $etiquette_document = ''; } // Modif JF 2013/02/02 if ($record_d->timestamp == 0) { $date_creation_document_info = ''; } else { $date_creation_document_info = userdate($record_d->timestamp); } if ($date_modif < $record_d->timestamp) { if (!empty($date_creation_document_info)) { $s_document .= '<span class="prioritaire">' . get_string('document', 'referentiel') . ' <i>' . $document_id . '</i> :: <i>' . $date_creation_document_info . '</i> :: ' . $type_document . ' :: '; } else { $s_document .= '<span class="prioritaire">' . get_string('document', 'referentiel') . ' <i>' . $document_id . '</i> :: ' . $type_document . ' :: '; } $s_document .= nl2br($description_document) . ' '; $s_document .= referentiel_affiche_url($url_document, $etiquette_document, $cible_document) . "'</span><br /> \n"; } else { if (!empty($date_creation_document_info)) { $s_document .= get_string('document', 'referentiel') . ' <i>' . $document_id . '</i> :: <i>' . $date_creation_document_info . '</i> :: ' . $type_document . ' :: '; } else { $s_document .= get_string('document', 'referentiel') . ' <i>' . $document_id . '</i> :: ' . $type_document . ' :: '; } $s_document .= nl2br($description_document) . ' '; $s_document .= referentiel_affiche_url($url_document, $etiquette_document, $cible_document) . "<br /> \n"; } } } } // AFFICHAGE $s .= '<tr valign="top">'; if (!empty($prioritaire)) { $s .= '<td class="prioritaire" rowspan="3">'; } else { if (isset($approved) && $approved) { $s .= '<td class="valide" rowspan="3">'; } else { $s .= '<td class="invalide" rowspan="3">'; } } // selection de l'activite if ($ref_course == $courseid) { $s .= '<input type="checkbox" name="tactivite_id[]" id="tactivite_id_' . $activite_id . '" value="' . $activite_id . '" />'; } $s .= $activite_id; // menu $s .= '<br>' . "\n"; $s .= $s_menu; $s .= '</td>' . "\n" . '<td align="center">'; $s .= $user_info; // MODIF JF 2012/05/06 $s .= "\n<br />\n" . referentiel_liste_groupes_user($ref_course, $userid); $s .= '</td>' . "\n" . '<td align="center">'; $s .= $url_course . '<br />' . $url_instance; $s .= '</td>' . "\n" . '<td align="center">'; if ($ref_course == $courseid) { $s .= '<input type="text" name="type_activite_' . $activite_id . '" size="40" maxlength="80" value="' . $type_activite . '" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . "\n"; } else { $s .= $type_activite; } $s .= '</td>' . "\n" . '<td align="center">'; $s .= $teacher_info; $s .= '</td>' . "\n" . '<td align="center">'; if ($ref_course == $courseid && has_capability('mod/referentiel:approve', $context)) { $s .= '<b>' . get_string('validation', 'referentiel') . '</b> : '; if (isset($approved) && $approved) { $s .= '<input type="radio" name="approved_' . $activite_id . '" id="approved" value="1" checked="checked" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('yes') . ' <input type="radio" name="approved_' . $activite_id . '" id="approved" value="0" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('no') . ' ' . "\n"; } else { $s .= '<input type="radio" name="approved_' . $activite_id . '" id="approved" value="1" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('yes') . ' <input type="radio" name="approved_' . $activite_id . '" id="approved" value="0" checked="checked" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('no') . ' ' . "\n"; } } else { if (isset($approved) && $approved) { $s .= get_string('approved', 'referentiel'); } else { $s .= get_string('not_approved', 'referentiel'); } if ($ref_course == $courseid) { $s .= '<input type="hidden" name="approved_' . $activite_id . '" value="' . $approved . '" />' . "\n"; } } $s .= '</td>'; if (!empty($prioritaire)) { $s .= '<td class="prioritaire" align="center">'; } else { $s .= '<td align="center">'; } $s .= '<span class="small">' . $date_modif_student_info . '</span>'; $s .= '</td>'; $s .= '<td align="center">'; $s .= '<span class="small">' . $date_modif_info . '</span>'; $s .= '</td>' . "\n"; // menu // $s.='<td align="center" rowspan="3">'."\n"; // $s.=$s_menu; // $s.='</td>'; $s .= '</tr>' . "\n"; $s .= '<tr valign="top">'; if (isset($approved) && $approved) { $s .= '<td colspan="4" class="valide">'; } else { $s .= '<td colspan="4" class="invalide">'; } if ($ref_course == $courseid) { $str_choix_competences = ''; // liste des compétences if ($ref_task != 0 && $USER->id == $userid) { // activite issue d'une tâche $str_choix_competences .= referentiel_modifier_selection_liste_codes_item_competence('/', $liste_codes_competences_tache, $competences_activite, $activite_id, 'onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" '); $str_choix_competences .= '<input type="hidden" name="competences_activite" value="' . $competences_activite . '" />' . "\n"; } else { // activite modifiable entierement $str_choix_competences .= referentiel_modifier_selection_liste_codes_item_competence('/', $liste_codes_competence, $competences_activite, $activite_id, 'onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" '); } if ($bareme) { $divbareme = 'bareme_' . $activite_id; $s .= '<div id="' . $divbareme . '">' . "\n"; $s .= $str_choix_competences; $s .= '</div>' . "\n"; // Evaluation des items avec le bareme $str_a_evaluer = ''; $s_bareme = ''; $competences_bareme = referentiel_get_competences_activite($activite_id, $bareme->id); $str_a_evaluer = referentiel_affiche_liste_codes_competence('/', $competences_activite, $ref_referentiel) . "\n"; if (!empty($str_a_evaluer)) { $s_bareme .= '<br /><span class="bold">' . get_string('liste_competence_cochees', 'referentiel') . '</span> ' . "\n" . " " . $str_a_evaluer; } $s_bareme .= '<br />' . "\n"; // modification $s_bareme .= referentiel_modifier_evaluation_codes_item($bareme, $ref_referentiel, $competences_activite, $competences_bareme, false, $activite_id, '', true); $s_bareme = encode2Javascript($s_bareme); $s_bouton = '<input type="button" value="' . get_string('eval_bareme', 'referentiel') . '" onclick="javascript:activerBareme(\'' . $s_bareme . '\', \'' . $divbareme . '\'); validerCheckBox(\'tactivite_id_' . $activite_id . '\')">' . "\n"; $str_choix_competences = encode2Javascript($str_choix_competences); $s_bouton2 = '<input type="button" value="' . get_string('eval_sans_bareme', 'referentiel') . '" onclick="javascript:activerBareme(\'' . $str_choix_competences . '\', \'' . $divbareme . '\'); validerCheckBox(\'tactivite_id_' . $activite_id . '\')">' . "\n"; $divbutton = 'button_' . $activite_id; $s .= '<div id="' . $divbutton . '">' . "\n"; $s .= $s_bouton; $s .= $s_bouton2; $s .= '</div>' . "\n"; } else { $s .= $str_choix_competences; } } else { $s .= referentiel_affiche_liste_codes_competence('/', $competences_activite, $ref_referentiel); } if ($ref_course == $courseid && has_capability('mod/referentiel:comment', $context)) { $s .= '<br /><textarea cols="100" rows="6" name="description_activite_' . $activite_id . '" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\') ">' . $description_activite . '</textarea>' . "\n"; } else { $s .= '<br /><i>' . nl2br($description_activite) . '</i>' . "\n"; } $s .= '</td>'; /* if (isset($approved) && ($approved)){ $s.='<td class="valide" colspan="3">'; } else{ $s.='<td class="invalide" colspan="3">'; } */ $s .= '<td class="ardoise" colspan="3">'; if ($ref_course == $courseid) { $s .= '<b>' . get_string('commentaire', 'referentiel') . '</b><br />' . "\n"; $s .= '<textarea cols="40" rows="7" name="commentaire_activite_' . $activite_id . '" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" >' . $commentaire_activite . '</textarea>' . "\n"; } else { $s .= '<b>' . get_string('commentaire', 'referentiel') . '</b><br /><i>' . nl2br($commentaire_activite) . '</i>' . "\n"; if ($ref_course == $courseid) { $s .= '<input type="hidden" name="commentaire_activite_' . $activite_id . '" value="' . $commentaire_activite . '" />' . "\n"; } } // MODIF 10/2/2010 if ($ref_course == $courseid) { $s .= '<br />' . get_string('notification_activite', 'referentiel') . '<input type="radio" name="mailnow_' . $activite_id . '" value="1" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('yes') . ' <input type="radio" name="mailnow_' . $activite_id . '" value="0" checked="checked" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('no') . ' ' . "\n"; } $s .= '</td>'; $s .= '</tr>' . "\n"; $s .= '<tr valign="top">' . "\n"; $s .= '<td class="yellow" colspan="7" align="center">' . "\n"; if ($s_document != '') { $s .= $s_document; } else { $s .= ' '; } $s .= '</td></tr>' . "\n"; if ($ref_course == $courseid) { $s .= ' <input type="hidden" name="date_creation_' . $activite_id . '" value="' . $date_creation . '" /> <input type="hidden" name="date_modif_' . $activite_id . '" value="' . $date_modif . '" /> <input type="hidden" name="date_modif_student_' . $activite_id . '" value="' . $date_modif_student . '" /> <input type="hidden" name="old_liste_competences_' . $activite_id . '" value="' . $old_liste_competences . '" /> <input type="hidden" name="userid_' . $activite_id . '" value="' . $userid . '" /> <input type="hidden" name="teacherid_' . $activite_id . '" value="' . $teacherid . '" /> <input type="hidden" name="activite_id_' . $activite_id . '" value="' . $activite_id . '" /> <input type="hidden" name="ref_referentiel_' . $activite_id . '" value="' . $ref_referentiel . '" /> <input type="hidden" name="ref_course_' . $activite_id . '" value="' . $ref_course . '" /> <input type="hidden" name="ref_instance_' . $activite_id . '" value="' . $ref_instance . '" />' . "\n\n"; } } return $s; }
/** * This function get all valid competencies in activite and return a competencies list * * @param userid reference user id * @param $ref_referentiel reference a referentiel id (not an instance of it !) * @return bolean * @todo Finish documenting this function * algorithme : cumule pour chaque competences le nombre d'activités où celle ci est validee **/ function referentiel_genere_certificat_liste_competences($userid, $ref_referentiel) { $t_liste_competences_valides = array(); $t_competences_valides = array(); $t_competences_referentiel = array(); // les competences du referentiel $liste_competences_valides = ""; // la liste sous forme de string $jauge_competences = ""; // la juge sous forme CODE_COMP_0:n0/CODE_COMP_1:n1/... // avec 0 si competence valide 0 fois, n>0 sinon if (isset($userid) && $userid > 0 && isset($ref_referentiel) && $ref_referentiel > 0) { // liste des competences definies dans le referentiel $liste_competences_referentiel = referentiel_purge_dernier_separateur(referentiel_get_liste_codes_competence($ref_referentiel), "/"); // DEBUG // echo "<br />DEBUG :: lib.php :: Ligne 7275 ::<br />USERID : $userid :: REFERENTIEL : $ref_referentiel<br />$liste_competences_referentiel\n"; $t_competences_referentiel = explode("/", $liste_competences_referentiel); // creer un tableau dont les indices sont les codes de competence while (list($key, $val) = each($t_competences_referentiel)) { $t_competences_valides[$val] = 0; } // collecter les activites validees $select = " AND approved!=0 AND userid=" . $userid . " "; $order = ' id ASC '; $records_activite = referentiel_get_activites($ref_referentiel, $select, $order); if ($records_activite) { // DEBUG // echo "<br />Debug :: lib.php :: Ligne 7288<br />COMPETENCES REFERENTIEL VALIDES AVANT :<br />\n"; // print_r($t_competences_valides); // echo "<br />Debug :: lib.php :: Ligne 7291 :<br />ACTIVIE<br />\n"; // print_r($records_activite); // collecter les competences foreach ($records_activite as $activite) { $t_liste_competences_valides[] = referentiel_purge_dernier_separateur($activite->competences_activite, "/"); // DEBUG // echo "<br />Debug :: lib.php :: Ligne 7298<br />COMPETENCES ACTIVITE :<br />".$activite->competences_activite."\n"; } // print_r($t_liste_competences_valides); // exit; for ($i = 0; $i < count($t_liste_competences_valides); $i++) { if ($t_liste_competences_valides[$i]) { $tcomp = explode("/", $t_liste_competences_valides[$i]); while (list($key, $val) = each($tcomp)) { // echo "$key => $val\n"; // if (isset($t_competences_valides[$val])) $t_competences_valides[$val]++; } } } } $i = 0; while (list($key, $val) = each($t_competences_valides)) { // echo "$key => $val\n"; if (!is_numeric($key) && $key != "" && $val != "" && $val > 0) { $liste_competences_valides .= $key . "/"; } $jauge_competences .= $key . ":" . trim($val) . "/"; } } // DEBUG // echo "<br />DEBUG :: Ligne 4123 :: $jauge_competences\n"; return $jauge_competences; }
$form->instance = $referentiel->id; } if (!isset($form->ref_referentiel)) { $form->ref_referentiel = $referentiel_referentiel->id; } if (!isset($form->courseid)) { $form->courseid = $course->id; } if (!isset($form->type_activite)) { $form->type_activite = ''; } if (!isset($form->description_activite)) { $form->description_activite = ''; } if (!isset($form->competences_activite)) { $form->competences_activite = referentiel_get_liste_codes_competence($referentiel_referentiel->id); } if (!isset($form->commentaire_activite)) { $form->commentaire_activite = ''; } if (!isset($form->approved)) { $form->approved = 0; } if (!isset($form->userid)) { $form->userid = $USER->id; } if (!isset($form->teacherid)) { $form->teacherid = ''; } if (!isset($form->activite_id)) { if (isset($activite_id)) {