sesskey) AND !isset($formdata->savevalues) AND !isset($formdata->gonextpage) AND !isset($formdata->gopreviouspage)) { $gopage = $formdata->lastpage; } if(isset($formdata->savevalues)) { $savevalues = true; }else { $savevalues = false; } if($gopage < 0 AND !$savevalues) { if(isset($formdata->gonextpage)){ $gopage = $lastpage + 1; $gonextpage = true; $gopreviouspage = false; }else if(isset($formdata->gopreviouspage)){ $gopage = $lastpage - 1; $gonextpage = false; $gopreviouspage = true; }else { error('parameter (gopage) required'); } }else { $gonextpage = $gopreviouspage = false; } if ($id) { if (! $cm = get_coursemodule_from_id('feedback', $id)) { error("Course Module ID was incorrect"); } if (! $course = $DB->get_record("course", array("id"=>$cm->course))) { error("Course is misconfigured"); } if (! $feedback = $DB->get_record("feedback", array("id"=>$cm->instance))) { error("Course module is incorrect"); } } $capabilities = feedback_load_capabilities($cm->id); if($feedback->anonymous == FEEDBACK_ANONYMOUS_YES) { $capabilities->complete = true; } //check whether the feedback is located and! started from the mainsite if($course->id == SITEID AND !$courseid) { $courseid = SITEID; } // if($feedback->anonymous != FEEDBACK_ANONYMOUS_YES) { require_login($course->id, true, $cm); if(isguestuser()) { error(get_string('guestsno'), $CFG->wwwroot); exit; } // } else { // require_course_login($course, true, $cm); // } if($courseid AND $courseid != SITEID) { $course2 = $DB->get_record('course', array('id'=>$courseid)); require_course_login($course2); //this overwrites the object $course :-( $course = $DB->get_record("course", array("id"=>$cm->course)); // the workaround } if(!$capabilities->complete) { error(get_string('error')); } /// Print the page header $strfeedbacks = get_string("modulenameplural", "feedback"); $strfeedback = get_string("modulename", "feedback"); $buttontext = update_module_button($cm->id, $course->id, $strfeedback); $navlinks = array(); $navlinks[] = array('name' => $strfeedbacks, 'link' => "index.php?id=$course->id", 'type' => 'activity'); $navlinks[] = array('name' => format_string($feedback->name), 'link' => "", 'type' => 'activityinstance'); $navigation = build_navigation($navlinks); print_header_simple(format_string($feedback->name), "", $navigation, "", "", true, $buttontext, navmenu($course, $cm)); //ishidden check. if ((empty($cm->visible) and !$capabilities->viewhiddenactivities) AND $course->id != SITEID) { notice(get_string("activityiscurrentlyhidden")); } feedback_print_errors(); //check, if the feedback is open (timeopen, timeclose) $checktime = time(); if(($feedback->timeopen > $checktime) OR ($feedback->timeclose < $checktime AND $feedback->timeclose > 0)) { // print_simple_box_start('center'); print_box_start('generalbox boxaligncenter'); echo '

'.get_string('feedback_is_not_open', 'feedback').'

'; print_continue($CFG->wwwroot.'/course/view.php?id='.$course->id); // print_simple_box_end(); print_box_end(); print_footer($course); exit; } //additional check for multiple-submit (prevent browsers back-button). the main-check is in view.php $feedback_can_submit = true; if($feedback->multiple_submit == 0 ) { if(feedback_is_already_submitted($feedback->id, $courseid)) { $feedback_can_submit = false; } } if($feedback_can_submit) { //preserving the items if($preservevalues == 1){ if(!$SESSION->feedback->is_started == true)error('error', $CFG->wwwroot.'/course/view.php?id='.$course->id); //checken, ob alle required items einen wert haben if(feedback_check_values($_POST, $startitempos, $lastitempos)) { $userid = $USER->id; //arb if($completedid = feedback_save_values($_POST, $USER->id, true)){ if($userid > 0) { add_to_log($course->id, 'feedback', 'startcomplete', 'view.php?id='.$cm->id, $feedback->id, $cm->id, $userid); } if(!$gonextpage AND !$gopreviouspage) $preservevalues = false;//es kann gespeichert werden }else { $savereturn = 'failed'; if(isset($lastpage)) { $gopage = $lastpage; }else { error('parameter failed'); } } }else { $savereturn = 'missing'; $highlightrequired = true; if(isset($lastpage)) { $gopage = $lastpage; }else { error('parameter failed'); } } } //saving the items if($savevalues AND !$preservevalues){ //exists there any pagebreak, so there are values in the feedback_valuetmp $userid = $USER->id; //arb if($feedback->anonymous == FEEDBACK_ANONYMOUS_NO) { $feedbackcompleted = feedback_get_current_completed($feedback->id, false, $courseid); }else{ $feedbackcompleted = false; } $feedbackcompletedtmp = $DB->get_record('feedback_completedtmp', array('id'=>$completedid)); //fake saving for switchrole $is_switchrole = feedback_check_is_switchrole(); if($is_switchrole) { $savereturn = 'saved'; feedback_delete_completedtmp($completedid); }else if($new_completed_id = feedback_save_tmp_values($feedbackcompletedtmp, $feedbackcompleted, $userid)) { $savereturn = 'saved'; if($feedback->anonymous == FEEDBACK_ANONYMOUS_NO) { add_to_log($course->id, 'feedback', 'submit', 'view.php?id='.$cm->id, $feedback->id, $cm->id, $userid); feedback_send_email($cm, $feedback, $course, $userid); }else { feedback_send_email_anonym($cm, $feedback, $course, $userid); } //tracking the submit $tracking = new object(); $tracking->userid = $USER->id; $tracking->feedback = $feedback->id; $tracking->completed = $new_completed_id; $DB->insert_record('feedback_tracking', $tracking); unset($SESSION->feedback->is_started); }else { $savereturn = 'failed'; } } if($allbreaks = feedback_get_all_break_positions($feedback->id)){ if($gopage <= 0) { $startposition = 0; }else { $startposition = $allbreaks[$gopage - 1]; } $ispagebreak = true; }else { $startposition = 0; $newpage = 0; $ispagebreak = false; } //get the feedbackitems after the last shown pagebreak $feedbackitems = $DB->get_records_select('feedback_item', 'feedback = ? AND position > ?', array($feedback->id, $startposition), 'position'); //get the first pagebreak if($pagebreaks = $DB->get_records('feedback_item', array('feedback'=>$feedback->id, 'typ'=>'pagebreak'), 'position')) { $pagebreaks = array_values($pagebreaks); $firstpagebreak = $pagebreaks[0]; }else { $firstpagebreak = false; } $maxitemcount = $DB->count_records('feedback_item', array('feedback'=>$feedback->id)); //get the values of completeds before done. Anonymous user can not get these values. if((!isset($SESSION->feedback->is_started)) AND (!isset($savereturn)) AND ($feedback->anonymous == FEEDBACK_ANONYMOUS_NO)) { if(!$feedbackcompletedtmp = feedback_get_current_completed($feedback->id, true, $courseid)) { if($feedbackcompleted = feedback_get_current_completed($feedback->id, false, $courseid)) { //copy the values to feedback_valuetmp create a completedtmp $feedbackcompletedtmp = feedback_set_tmp_values($feedbackcompleted); } } }else { $feedbackcompletedtmp = feedback_get_current_completed($feedback->id, true, $courseid); } /// Print the main part of the page /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// print_heading(format_text($feedback->name)); if( (intval($feedback->publish_stats) == 1) AND ( $capabilities->viewanalysepage) AND !( $capabilities->viewreports) ) { if($multiple_count = $DB->count_records('feedback_tracking', array('userid'=>$USER->id, 'feedback'=>$feedback->id))) { echo '
'; echo get_string('completed_feedbacks', 'feedback').''; echo '
'; } } if(isset($savereturn) && $savereturn == 'saved') { if($feedback->page_after_submit) { // print_simple_box_start('center', '75%'); print_box_start('generalbox boxaligncenter boxwidthwide'); echo format_text($feedback->page_after_submit); // print_simple_box_end(); print_box_end(); } else { echo '

'.get_string('entries_saved','feedback').'

'; if( intval($feedback->publish_stats) == 1) { echo '

'; echo get_string('completed_feedbacks', 'feedback').''; echo '

'; } } if($feedback->site_after_submit) { print_continue(feedback_encode_target_url($feedback->site_after_submit)); }else { if($courseid) { print_continue($CFG->wwwroot.'/course/view.php?id='.$courseid); }else { if($course->id == SITEID) { print_continue($CFG->wwwroot); } else { print_continue($CFG->wwwroot.'/course/view.php?id='.$course->id); } } } }else { if(isset($savereturn) && $savereturn == 'failed') { echo '

'.get_string('saving_failed','feedback').'

'; } if(isset($savereturn) && $savereturn == 'missing') { echo '

'.get_string('saving_failed_because_missing_or_false_values','feedback').'

'; } //print the items if(is_array($feedbackitems)){ // print_simple_box_start('center', '75%'); print_box_start('generalbox boxaligncenter boxwidthwide'); echo '
'; echo ''; echo ''; switch ($feedback->anonymous) { case FEEDBACK_ANONYMOUS_YES: echo ''; //arb break; case FEEDBACK_ANONYMOUS_NO: echo ''; //arb break; } //check, if there exists required-elements $countreq = $DB->count_records('feedback_item', array('feedback'=>$feedback->id, 'required'=>1)); if($countreq > 0) { echo ''; } unset($startitem); $itemnr = $DB->count_records_select('feedback_item', 'feedback = ? AND hasvalue = 1 AND position < ?', array($feedback->id, $startposition)); foreach($feedbackitems as $feedbackitem){ if(!isset($startitem)) { //avoid showing double pagebreaks if($feedbackitem->typ == 'pagebreak') continue; $startitem = $feedbackitem; } $value = ''; //get the value $frmvaluename = $feedbackitem->typ . '_'. $feedbackitem->id; if(isset($savereturn)) { $value = isset($formdata->{$frmvaluename})?$formdata->{$frmvaluename}:NULL; }else { if(isset($feedbackcompletedtmp->id)) { $value = feedback_get_item_value($feedbackcompletedtmp->id, $feedbackitem->id, true); } } echo ''; if($feedbackitem->hasvalue == 1 AND $feedback->autonumbering) { $itemnr++; echo ''; } else { echo ''; } if($feedbackitem->typ != 'pagebreak') { feedback_print_item($feedbackitem, $value, false, false, $highlightrequired); } echo ''; echo ''; $lastbreakposition = $feedbackitem->position; //last item-pos (item or pagebreak) if($feedbackitem->typ == 'pagebreak'){ break; }else { $lastitem = $feedbackitem; } } echo '
'.get_string('mode', 'feedback').': '.get_string('anonymous', 'feedback').'
'.get_string('mode', 'feedback').': '.get_string('non_anonymous', 'feedback').' 
(*)' . get_string('items_are_required', 'feedback') . '
' . $itemnr . '.  
 
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; if(isset($startitem)) { echo ''; echo ''; } if( $ispagebreak AND $lastbreakposition > $firstpagebreak->position) { echo ''; } if($lastbreakposition < $maxitemcount){ echo ''; } if($lastbreakposition >= $maxitemcount) { //last page echo ''; } echo '
'; if($courseid) { echo '
'; }else{ if($course->id == SITEID) { echo ''; } else { echo ''; } } echo ''; echo ''; echo ''; echo '
'; echo '
'; $SESSION->feedback->is_started = true; // print_simple_box_end(); print_box_end(); } } }else { // print_simple_box_start('center'); print_box_start('generalbox boxaligncenter'); echo '

'.get_string('this_feedback_is_already_submitted', 'feedback').'

'; print_continue($CFG->wwwroot.'/course/view.php?id='.$course->id); // print_simple_box_end(); print_box_end(); } /// Finish the page /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// print_footer($course); ?>