function referentiel_activite_id($context, $mode, $cm, $instance, $activite_id, $bareme, $select_acc = 0, $detail = true)
{
    global $COURSE;
    // Specifique car on a l'id de l'activite
    if ($activite_id) {
        $record_a = referentiel_get_activite($activite_id);
        if (!empty($record_a)) {
            echo '<div align="center">' . get_string('competences_declarees', 'referentiel', '<span class="bold">' . referentiel_get_user_info($record_a->userid) . '</span>') . "\n" . referentiel_print_jauge_activite($record_a->userid, $instance->ref_referentiel) . '</div>' . "\n";
            referentiel_print_activite_detail($bareme, $record_a, $context, true, 0);
            if (!$record_a->approved) {
                echo '<div align="center">' . referentiel_ajout_document($record_a, $mode, $select_acc) . "</div>\n";
            }
            // afficher le menu si on l'activité est affichee dans son propre cours de création
            if ($record_a->ref_course == $COURSE->id) {
                referentiel_menu_activite($cm, $context, $record_a->id, $record_a->userid, $instance->id, $record_a->approved, 0, $detail, $mode);
            } else {
                echo '<div align="center">' . get_string('activite_exterieure', 'referentiel') . '</div>' . "\n";
            }
        }
    }
}
function referentiel_print_activities_task($bareme, $taskid, $referentiel_instance, $mode, $userid_filtre = 0, $gusers = NULL)
{
    // Propose la validation globale
    global $CFG;
    global $OUTPUT;
    global $USER;
    static $istutor = false;
    static $isteacher = false;
    static $isadmin = false;
    static $isstudent = false;
    static $iseditor = false;
    static $referentiel_id = NULL;
    global $DB;
    if (!empty($referentiel_instance)) {
        // contexte
        $cm = get_coursemodule_from_instance('referentiel', $referentiel_instance->id);
        $course = $DB->get_record('course', array("id" => "{$cm->course}"));
        if (empty($cm) or empty($course)) {
            print_error('REFERENTIEL_ERROR 5 :: print_lib_task.php :: You cannot call this script in that way');
        }
        $context = context_module::instance($cm->id);
        $roles = referentiel_roles_in_instance($referentiel_instance->id);
        $iseditor = $roles->is_editor;
        $isadmin = $roles->is_admin;
        $isteacher = $roles->is_teacher;
        $istutor = $roles->is_tutor;
        $isstudent = $roles->is_student;
        $isguest = $roles->is_guest;
        if (isset($referentiel_instance->id) && $referentiel_instance->id > 0) {
            $referentiel_referentiel = referentiel_get_referentiel_referentiel($referentiel_instance->ref_referentiel);
            if (!$referentiel_referentiel) {
                if ($iseditor) {
                    print_error(get_string('creer_referentiel', 'referentiel'), "{$CFG->wwwroot}/mod/referentiel/edit.php?d={$referentiel_instance->id}&amp;mode=editreferentiel&amp;sesskey=" . sesskey());
                } else {
                    print_error(get_string('creer_referentiel', 'referentiel'), "{$CFG->wwwroot}/course/view.php?id={$course->id}&amp;sesskey=" . sesskey());
                }
            }
            // valider les activites
            if (has_capability('mod/referentiel:approve', $context)) {
                $records_activity = referentiel_get_activites_task($taskid);
                // liste des activites associes a cette tache
                if ($records_activity) {
                    // boite pour selectionner les utilisateurs ?
                    $record_id_users = array();
                    foreach ($records_activity as $record_a) {
                        $record_id_users[$record_a->userid] = new stdClass();
                        $record_id_users[$record_a->userid]->userid = $record_a->userid;
                        $record_id_users[$record_a->userid]->afficher = true;
                    }
                    //echo "<br />DEBUG :: 956<br />";
                    //print_r($record_id_users);
                    //exit;
                    if ($isteacher || $iseditor || $istutor || $isadmin) {
                        // tous les users possibles (pour la boite de selection)
                        // Get your userids the normal way
                        if ($gusers && $record_id_users) {
                            // liste des utilisateurs du groupe courant
                            // echo "<br />DEBUG :: print_lib_activite.php :: 740 :: GUSERS<br />\n";
                            // print_object($gusers);
                            // echo "<br />\n";
                            // exit;
                            $record_users = array_intersect($gusers, array_keys($record_id_users));
                            // echo "<br />DEBUG :: print_lib_task.php :: 745 :: RECORD_USERS<br />\n";
                            // print_r($record_users  );
                            // echo "<br />\n";
                            // RAZ
                            for ($i = 0; $i < count($record_id_users); $i++) {
                                $record_id_users[$i] = new stdClass();
                                $record_id_users[$i]->userid = 0;
                                $record_id_users[$i]->afficher = false;
                            }
                            // reinitialiser
                            foreach ($record_users as $record_id) {
                                $record_id_users[$record_id]->userid = $record_id;
                                $record_id_users[$record_id]->afficher = true;
                            }
                        }
                        //echo "<br />DEBUG :: 985<br />";
                        //print_r($record_id_users);
                        //exit;
                    }
                    echo '<div align="center"><h4 align="center"></h4>';
                    if (!referentiel_closed_task($taskid)) {
                        if ($mode == 'approvetask') {
                            $str_approve = get_string('approve_all_activity_task', 'referentiel', $taskid);
                            echo '<a href="' . $CFG->wwwroot . '/mod/referentiel/task.php?d=' . $referentiel_instance->id . '&amp;taskid=' . $taskid . '&amp;mode=approve&amp;sesskey=' . sesskey() . '"><img src="' . $OUTPUT->pix_url('go', 'referentiel') . '" alt="' . $str_approve . '"  title="' . $str_approve . '"/> ' . $str_approve . '</a>' . "\n";
                        } else {
                            $str_approve = get_string('delete_all_activities_task', 'referentiel', $taskid);
                            echo '<a href="' . $CFG->wwwroot . '/mod/referentiel/task.php?d=' . $referentiel_instance->id . '&amp;taskid=' . $taskid . '&amp;mode=deletetaskall&amp;sesskey=' . sesskey() . '"><img src="' . $OUTPUT->pix_url('go', 'referentiel') . '" alt="' . $str_approve . '"  title="' . $str_approve . '"/> ' . $str_approve . '</a>' . "\n";
                        }
                    } else {
                        if ($mode == 'approvetask') {
                            $str_approve = get_string('approve_all_activity_task_closed', 'referentiel', $taskid);
                            echo '<a href="' . $CFG->wwwroot . '/mod/referentiel/task.php?d=' . $referentiel_instance->id . '&amp;taskid=' . $taskid . '&amp;mode=approve&amp;sesskey=' . sesskey() . '"><img src="' . $OUTPUT->pix_url('closed', 'referentiel') . '" alt="' . $str_approve . '" title="' . $str_approve . '" /> ' . $str_approve . '</a>' . "\n";
                        } else {
                            $str_approve = get_string('delete_all_activity_task_closed', 'referentiel', $taskid);
                            echo '<a href="' . $CFG->wwwroot . '/mod/referentiel/task.php?d=' . $referentiel_instance->id . '&amp;taskid=' . $taskid . '&amp;mode=deletetaskall&amp;sesskey=' . sesskey() . '"><img src="' . $OUTPUT->pix_url('closed', 'referentiel') . '" alt="' . $str_approve . '" title="' . $str_approve . '" /> ' . $str_approve . '</a>' . "\n";
                        }
                    }
                    echo '</div><br />' . "\n";
                    // Modif JF 20100118
                    echo '<form name="form" method="post" action="task.php?d=' . $referentiel_instance->id . '&amp;sesskey=' . sesskey() . '">
<center>' . "\n";
                    echo '<table class="activite" width="100%" cellpadding="5" align="center">' . "\n";
                    echo '<tr valign="top"><th class="activite" width="5%">&nbsp;</td><th class="activite" width="95%">';
                    if ($mode == 'approvetask') {
                        print_string('activites_tache', 'referentiel');
                    } else {
                        print_string('activites_tache_delete', 'referentiel');
                    }
                    echo '</td></tr>' . "\n";
                    foreach ($records_activity as $record) {
                        if ($record_id_users[$record->userid]->afficher == true) {
                            if ($record->approved) {
                                echo '<tr valign="top"><td width="5%"><input type="checkbox" name="t_activite[]" value="' . $record->id . '" />' . "\n";
                            } else {
                                echo '<tr valign="top"><td width="5%"><input type="checkbox" name="t_activite[]" value="' . $record->id . '" checked="checked" />' . "\n";
                            }
                            // Afficher l'activite
                            echo '</td><td width="95%">' . "\n";
                            referentiel_print_activite_detail($bareme, $record, $context, true);
                            echo '</td></tr>' . "\n";
                        }
                    }
                    echo '</table>
<input type="hidden" name="ref_referentiel" value="' . $referentiel_instance->ref_referentiel . '" />
<!-- These hidden variables are always the same -->
<input type="hidden" name="taskid"        value="' . $taskid . '" />
<input type="hidden" name="courseid"        value="' . $course->id . '" />
<input type="hidden" name="sesskey"     value="' . sesskey() . '" />
<input type="hidden" name="modulename"    value="referentiel" />
<input type="hidden" name="instance"      value="' . $referentiel_instance->id . '" />' . "\n";
                    if ($mode == 'approvetask') {
                        echo '<input type="hidden" name="mode" value="approve" />
<input type="submit" value="' . get_string('approve', 'referentiel') . '" />' . "\n";
                    } else {
                        echo '<input type="hidden" name="mode" value="deletetaskall" />
<input type="submit" value="' . get_string('delete') . '" />' . "\n";
                    }
                    echo '
<input type="reset" value="' . get_string("restore") . '" />
<input type="submit" value="' . get_string("cancel") . '" />
</center>
</form>

' . "\n";
                    echo '<br /><br />' . "\n";
                }
            }
        }
    }
}
             if (!empty($s_no_activity)) {
                 echo $s_no_activity;
             }
         }
         $first_activity = 0;
     }
     echo '<div align="center">' . get_string('competences_declarees', 'referentiel', '<span class="bold">' . referentiel_get_user_info($record_a->userid) . '</span>') . "\n" . referentiel_print_jauge_activite($record_a->userid, $referentiel_referentiel->id) . '</div>' . "\n";
     if ($modeaff == 2) {
         //
         if ($index_user >= 0 && isset($t_users_count[$index_user]) && $t_users_count[$index_user] > 0) {
             // nb activites
             echo '<div align="center"><i>' . get_string('activitynumber', 'referentiel', $t_users_count[$index_user]) . '</i></div>' . "\n";
         }
     }
 }
 referentiel_print_activite_detail($bareme, $record_a, $context, $modeaff == 1);
 if ($record_a->ref_course == $course->id) {
     referentiel_menu_activite($cm, $context, $record_a->id, $record_a->userid, $referentiel->id, $record_a->approved, $selacc, $modeaff == 1, $mode);
     if (!$record_a->approved) {
         echo '<div align="center">' . referentiel_ajout_document($record_a, $mode, $selacc) . "</div>\n";
     }
 } else {
     echo '<div align="center">' . get_string('activite_exterieure', 'referentiel') . "</div>\n";
 }
 echo '<br />' . "\n";
 $user_nb_activities_displayed++;
 if ($modeaff == 2 && $pagination == 0) {
     if ($user_nb_activities_displayed == $t_users_count[$index_user]) {
         // Afficher les successeurs sans activite
         $k = $index_user + 1;
         // rechercher le successeur sans activite