function referentiel_print_protocole($mode, $referentiel_instance, $select_acc = 0)
{
    global $DB;
    global $CFG;
    global $USER;
    static $istutor = false;
    static $isteacher = false;
    static $isadmin = false;
    static $iseditor = false;
    static $referentiel_id = NULL;
    // 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_protocole.php :: 46 :: 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;
    /*
    // DEBUG
    if ($isadmin) echo "Admin ";
    if ($isteacher) echo "Teacher ";
    if ($istutor) echo "Tutor ";
    if ($isstudent) echo "Student ";
    */
    if (!empty($referentiel_instance->ref_referentiel)) {
        $referentiel_referentiel = referentiel_get_referentiel_referentiel($referentiel_instance->ref_referentiel);
        if (!$referentiel_referentiel) {
            if ($iseditor) {
                print_error(get_string('creer_referentiel', 'referentiel'), "edit.php?d={$referentiel_instance->id}&mode=editreferentiel&sesskey=" . sesskey());
            } else {
                print_error(get_string('creer_referentiel', 'referentiel'), "../../course/view.php?id={$course->id}&sesskey=" . sesskey());
            }
        }
        echo referentiel_affiche_protocole($referentiel_referentiel->id);
    }
    echo '<br /><br />' . "\n";
    return true;
}
                            }
                        }
                    } else {
                        // form didn't validate or this is the first display
                        echo $OUTPUT->header();
                        $pass_form->display();
                        echo $OUTPUT->footer();
                        die;
                    }
                }
            }
        }
        echo $OUTPUT->header();
        $occurrence_object->tabs($mode, $currenttab);
        echo '<div align="center"><h2><img src="' . $icon . '" border="0" title="" alt="" /> ' . get_string('protocole', 'block_referentiel') . ' ' . $OUTPUT->help_icon('protocolereferentielh', 'referentiel') . '</h2></div>' . "\n";
        echo $OUTPUT->box_start('generalbox  boxaligncenter');
        echo referentiel_select_protocole($blockid, $courseid, $occurrence_object->referentiel, $mode, $pass);
        echo $OUTPUT->box_end();
        echo $OUTPUT->footer();
        die;
    } else {
        echo $OUTPUT->header();
        $occurrence_object->tabs($mode, $currenttab);
        echo '<div align="center"><h2><img src="' . $icon . '" border="0" title="" alt="" /> ' . get_string('protocole', 'block_referentiel') . ' ' . $OUTPUT->help_icon('protocolereferentielh', 'referentiel') . '</h2></div>' . "\n";
        echo $OUTPUT->box_start('generalbox  boxaligncenter');
        echo referentiel_affiche_protocole($blockid, $courseid, $occurrence_object->referentiel, $mode);
        echo $OUTPUT->box_end();
        echo $OUTPUT->footer();
        die;
    }
}