Exemplo n.º 1
0
/**
 * 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;
}
Exemplo n.º 2
0
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 .= '&nbsp; <a href="' . $CFG->wwwroot . '/mod/referentiel/activite.php?id=' . $cmid . '&amp;activite_id=' . $activite_id . '&amp;userid=' . $userid . '&amp;mode=modifactivity&amp;old_mode=' . $mode . '&amp;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 .= '&nbsp; <a href="' . $CFG->wwwroot . '/mod/referentiel/activite.php?id=' . $cmid . '&amp;activite_id=' . $activite_id . '&amp;userid=' . $userid . '&amp;mode=deleteactivity&amp;old_mode=' . $mode . '&amp;sesskey=' . sesskey() . '"><img src="' . $OUTPUT->pix_url('delete', 'referentiel') . '" alt="' . get_string('delete') . '" title="' . get_string('delete') . '" /></a>' . "\n";
                }
            }
        } else {
            $s_menu .= '&nbsp; ' . 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) . ' &nbsp; &nbsp; ';
                        $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) . ' &nbsp; &nbsp; ';
                        $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') . ' &nbsp; <input type="radio" name="approved_' . $activite_id . '" id="approved" value="0"  onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('no') . ' &nbsp; &nbsp; ' . "\n";
            } else {
                $s .= '<input type="radio" name="approved_' . $activite_id . '"  id="approved" value="1" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('yes') . ' &nbsp; <input type="radio" name="approved_' . $activite_id . '"  id="approved" value="0" checked="checked"  onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('no') . ' &nbsp; &nbsp; ' . "\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') . ' &nbsp; <input type="radio" name="mailnow_' . $activite_id . '" value="0" checked="checked" onchange="return validerCheckBox(\'tactivite_id_' . $activite_id . '\')" />' . get_string('no') . ' &nbsp; &nbsp; ' . "\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 .= '&nbsp;';
        }
        $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;
}
Exemplo n.º 5
0
/**
 * 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;
}
Exemplo n.º 6
0
     $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)) {