2009-09-24 06:11:39 +00:00
< ? php
2008-04-23 09:33:54 +00:00
/**
2009-09-24 06:11:39 +00:00
* print the single entries
*
* @ author Andreas Grabs
* @ license http :// www . gnu . org / copyleft / gpl . html GNU Public License
* @ package feedback
*/
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
require_once ( " ../../config.php " );
require_once ( " lib.php " );
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
////////////////////////////////////////////////////////
//get the params
////////////////////////////////////////////////////////
$id = required_param ( 'id' , PARAM_INT );
$userid = optional_param ( 'userid' , false , PARAM_INT );
$do_show = required_param ( 'do_show' , PARAM_ALPHA );
// $SESSION->feedback->current_tab = $do_show;
$current_tab = $do_show ;
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
////////////////////////////////////////////////////////
//get the objects
////////////////////////////////////////////////////////
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
if ( $userid ) {
$formdata -> userid = intval ( $userid );
}
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
if ( $id ) {
if ( ! $cm = get_coursemodule_from_id ( 'feedback' , $id )) {
print_error ( 'invalidcoursemodule' );
}
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
if ( ! $course = $DB -> get_record ( " course " , array ( " id " => $cm -> course ))) {
print_error ( 'coursemisconf' );
}
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
if ( ! $feedback = $DB -> get_record ( " feedback " , array ( " id " => $cm -> instance ))) {
print_error ( 'invalidcoursemodule' );
2008-04-23 09:33:54 +00:00
}
2009-09-24 06:11:39 +00:00
}
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
$PAGE -> set_url ( new moodle_url ( $CFG -> wwwroot . '/mod/feedback/show_entries.php' , array ( 'id' => $cm -> id , 'do_show' => $do_show )));
2009-09-11 02:04:38 +00:00
2009-09-24 06:11:39 +00:00
$capabilities = feedback_load_capabilities ( $cm -> id );
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
require_login ( $course -> id , true , $cm );
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
if (( $formdata = data_submitted ()) AND ! confirm_sesskey ()) {
print_error ( 'invalidsesskey' );
}
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
if ( ! $capabilities -> viewreports ){
print_error ( 'error' );
}
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
////////////////////////////////////////////////////////
//get the responses of given user
////////////////////////////////////////////////////////
if ( $do_show == 'showoneentry' ) {
//get the feedbackitems
$feedbackitems = $DB -> get_records ( 'feedback_item' , array ( 'feedback' => $feedback -> id ), 'position' );
$feedbackcompleted = $DB -> get_record ( 'feedback_completed' , array ( 'feedback' => $feedback -> id , 'userid' => $formdata -> userid , 'anonymous_response' => FEEDBACK_ANONYMOUS_NO )); //arb
}
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
/// Print the page header
$strfeedbacks = get_string ( " modulenameplural " , " feedback " );
$strfeedback = get_string ( " modulename " , " feedback " );
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
$PAGE -> navbar -> add ( get_string ( 'show_entries' , 'feedback' ));
$PAGE -> set_title ( format_string ( $feedback -> name ));
$PAGE -> set_button ( $OUTPUT -> update_module_button ( $cm -> id , 'feedback' ));
echo $OUTPUT -> header ();
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
include ( 'tabs.php' );
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
/// Print the main part of the page
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
////////////////////////////////////////////////////////
/// Print the links to get responses and analysis
////////////////////////////////////////////////////////
if ( $do_show == 'showentries' ){
//print the link to analysis
if ( $capabilities -> viewreports ) {
//get the effective groupmode of this course and module
if ( isset ( $cm -> groupmode ) && empty ( $course -> groupmodeforce )) {
$groupmode = $cm -> groupmode ;
} else {
$groupmode = $course -> groupmode ;
}
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
$groupselect = groups_print_activity_menu ( $cm , 'show_entries.php?id=' . $cm -> id . '&do_show=showentries' , true );
$mygroupid = groups_get_activity_group ( $cm );
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
//get students in conjunction with groupmode
if ( $groupmode > 0 ) {
2009-06-13 14:17:00 +00:00
2009-09-24 06:11:39 +00:00
if ( $mygroupid > 0 ) {
$students = feedback_get_complete_users ( $cm , $mygroupid );
} else {
2009-05-25 19:48:33 +00:00
$students = feedback_get_complete_users ( $cm );
2008-04-23 09:33:54 +00:00
}
2009-09-24 06:11:39 +00:00
} else {
$students = feedback_get_complete_users ( $cm );
}
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
$completedFeedbackCount = feedback_get_completeds_group_count ( $feedback , $mygroupid );
if ( $feedback -> course == SITEID ){
echo '<div class="mdl-align"><a href="' . htmlspecialchars ( 'analysis_course.php?id=' . $id . '&courseid=' . $courseid ) . '">' ;
echo get_string ( 'course' ) . ' ' . get_string ( 'analysis' , 'feedback' ) . ' (' . get_string ( 'completed_feedbacks' , 'feedback' ) . ': ' . intval ( $completedFeedbackCount ) . ')</a>' ;
echo $OUTPUT -> help_icon ( moodle_help_icon :: make ( 'viewcompleted' , '' , 'feedback' , true ));
echo '</div>' ;
} else {
echo '<div class="mdl-align"><a href="' . htmlspecialchars ( 'analysis.php?id=' . $id . '&courseid=' . $courseid ) . '">' ;
echo get_string ( 'analysis' , 'feedback' ) . ' (' . get_string ( 'completed_feedbacks' , 'feedback' ) . ': ' . intval ( $completedFeedbackCount ) . ')</a>' ;
echo '</div>' ;
2008-04-23 09:33:54 +00:00
}
2009-09-24 06:11:39 +00:00
}
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
//####### viewreports-start
if ( $capabilities -> viewreports ) {
//print the list of students
echo $OUTPUT -> box_start ( 'generalbox boxaligncenter boxwidthwide' );
echo isset ( $groupselect ) ? $groupselect : '' ;
echo '<div class="clearer"></div>' ;
echo '<div class="mdl-align"><table><tr><td width="400">' ;
if ( ! $students ) {
if ( $courseid != SITEID ){
echo $OUTPUT -> notification ( get_string ( 'noexistingstudents' ));
}
} else {
echo print_string ( 'non_anonymous_entries' , 'feedback' );
echo ' (' . count ( $students ) . ')<hr />' ;
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
foreach ( $students as $student ){
$completedCount = $DB -> count_records ( 'feedback_completed' , array ( 'userid' => $student -> id , 'feedback' => $feedback -> id , 'anonymous_response' => FEEDBACK_ANONYMOUS_NO ));
if ( $completedCount > 0 ) {
// Are we assuming that there is only one response per user? Should westep through a feedbackcompleteds? I added the addition anonymous check to the select so that only non-anonymous submissions are retrieved.
$feedbackcompleted = $DB -> get_record ( 'feedback_completed' , array ( 'feedback' => $feedback -> id , ' userid' => $student -> id , 'anonymous_response' => FEEDBACK_ANONYMOUS_NO ));
?>
< table width = " 100% " >
< tr >
< td align = " left " >
< ? php echo $OUTPUT -> user_picture ( moodle_user_picture :: make ( $student , $course -> id )); ?>
</ td >
< td align = " left " >
< ? php echo fullname ( $student ); ?>
</ td >
< td align = " right " >
< ? php
$show_button_link = $ME ;
$show_button_options = array ( 'sesskey' => sesskey (), 'userid' => $student -> id , 'do_show' => 'showoneentry' , 'id' => $id );
$show_button_label = get_string ( 'show_entries' , 'feedback' );
echo $OUTPUT -> button ( html_form :: make_button ( $show_button_link , $show_button_options , $show_button_label ));
?>
</ td >
< ? php
if ( $capabilities -> deletesubmissions ) {
?>
< td align = " right " >
< ? php
$delete_button_link = 'delete_completed.php' ;
$delete_button_options = array ( 'sesskey' => sesskey (), 'completedid' => $feedbackcompleted -> id , 'do_show' => 'showoneentry' , 'id' => $id );
$delete_button_label = get_string ( 'delete_entry' , 'feedback' );
echo $OUTPUT -> button ( html_form :: make_button ( $delete_button_link , $delete_button_options , $delete_button_label ));
?>
</ td >
< ? php
2008-04-23 09:33:54 +00:00
}
2009-09-24 06:11:39 +00:00
?>
</ tr >
</ table >
< ? php
2008-04-23 09:33:54 +00:00
}
}
}
2009-09-24 06:11:39 +00:00
?>
< hr />
< table width = " 100% " >
< tr >
< td align = " left " colspan = " 2 " >
< ? php print_string ( 'anonymous_entries' , 'feedback' ); ?> (<?php echo $DB->count_records('feedback_completed', array('feedback'=>$feedback->id, 'anonymous_response'=>FEEDBACK_ANONYMOUS_YES));?>)
</ td >
< td align = " right " >
< ? php
$show_anon_button_link = 'show_entries_anonym.php' ;
$show_anon_button_options = array ( 'sesskey' => sesskey (), 'userid' => 0 , 'do_show' => 'showoneentry' , 'id' => $id );
$show_anon_button_label = get_string ( 'show_entries' , 'feedback' );
echo $OUTPUT -> button ( html_form :: make_button ( $show_anon_button_link , $show_anon_button_options , $show_anon_button_label ));
?>
</ td >
</ tr >
</ table >
< ? php
echo '</td></tr></table></div>' ;
echo $OUTPUT -> box_end ();
2008-04-23 09:33:54 +00:00
}
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
}
////////////////////////////////////////////////////////
/// Print the responses of the given user
////////////////////////////////////////////////////////
if ( $do_show == 'showoneentry' ) {
echo $OUTPUT -> heading ( format_text ( $feedback -> name ));
//print the items
if ( is_array ( $feedbackitems )){
$usr = $DB -> get_record ( 'user' , array ( 'id' => $formdata -> userid ));
if ( $feedbackcompleted ) {
echo '<p align="center">' . UserDate ( $feedbackcompleted -> timemodified ) . '<br />(' . fullname ( $usr ) . ')</p>' ;
} else {
echo '<p align="center">' . get_string ( 'not_completed_yet' , 'feedback' ) . '</p>' ;
}
echo $OUTPUT -> box_start ( 'generalbox boxaligncenter boxwidthnormal' );
echo '<form>' ;
echo '<input type="hidden" name="sesskey" value="' . sesskey () . '" />' ;
echo '<table width="100%">' ;
$itemnr = 0 ;
foreach ( $feedbackitems as $feedbackitem ){
//get the values
$value = $DB -> get_record ( 'feedback_value' , array ( 'completed' => $feedbackcompleted -> id , 'item' => $feedbackitem -> id ));
echo '<tr>' ;
if ( $feedbackitem -> hasvalue == 1 AND $feedback -> autonumbering ) {
$itemnr ++ ;
echo '<td valign="top">' . $itemnr . '. </td>' ;
2008-04-23 09:33:54 +00:00
} else {
2009-09-24 06:11:39 +00:00
echo '<td> </td>' ;
2008-04-23 09:33:54 +00:00
}
2009-08-10 04:59:26 +00:00
2009-09-24 06:11:39 +00:00
if ( $feedbackitem -> typ != 'pagebreak' ) {
if ( isset ( $value -> value )) {
feedback_print_item ( $feedbackitem , $value -> value , true );
2008-04-23 09:33:54 +00:00
} else {
2009-09-24 06:11:39 +00:00
feedback_print_item ( $feedbackitem , false , true );
2008-04-23 09:33:54 +00:00
}
2009-09-24 06:11:39 +00:00
} else {
echo '<td><hr /></td>' ;
2008-04-23 09:33:54 +00:00
}
2009-09-24 06:11:39 +00:00
echo '</tr>' ;
2008-04-23 09:33:54 +00:00
}
2009-09-24 06:11:39 +00:00
echo '<tr><td colspan="2" align="center">' ;
echo '</td></tr>' ;
echo '</table>' ;
echo '</form>' ;
echo $OUTPUT -> box_end ();
2008-04-23 09:33:54 +00:00
}
2009-09-24 06:11:39 +00:00
echo $OUTPUT -> continue_button ( htmlspecialchars ( 'show_entries.php?id=' . $id . '&do_show=showentries' ));
}
/// Finish the page
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
echo $OUTPUT -> footer ();
2008-04-23 09:33:54 +00:00
2009-09-24 06:11:39 +00:00
?>