From: agrabs Date: Tue, 22 Jul 2008 22:28:35 +0000 (+0000) Subject: MDL-15787 Using hidden feedbacks on front page X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=da32999653f4ff30d2d5eeb2621032c6b4e33a35;p=moodle.git MDL-15787 Using hidden feedbacks on front page --- diff --git a/mod/feedback/complete.php b/mod/feedback/complete.php index 6cccb2b82a..0b1505cea8 100644 --- a/mod/feedback/complete.php +++ b/mod/feedback/complete.php @@ -74,25 +74,48 @@ if($feedback->anonymous == FEEDBACK_ANONYMOUS_YES) { $capabilities->complete = true; } + + //check whether the feedback is mapped to the given courseid + if($course->id == SITEID AND !$capabilities->edititems) { + if($DB->get_records('feedback_sitecourse_map', array('feedbackid'=>$feedback->id))) { + if(!$DB->get_record('feedback_sitecourse_map', array('feedbackid'=>$feedback->id, 'courseid'=>$courseid))){ + error("this feedback is not available"); + } + } + } + //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) { + if($feedback->anonymous != FEEDBACK_ANONYMOUS_YES) { require_login($course->id, true, $cm); - if(isguestuser()) { - error(get_string('guestsno'), $CFG->wwwroot); - exit; + } else { + if($course->id == SITEID) { + require_course_login($course, true); + }else { + require_course_login($course, true, $cm); } + } + // 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); // } + //check whether the given courseid exists 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($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 + }else { + error("courseid is not correct"); + } } if(!$capabilities->complete) { @@ -114,10 +137,17 @@ $navigation, "", "", true, $buttontext, navmenu($course, $cm)); //ishidden check. + //feedback in courses if ((empty($cm->visible) and !$capabilities->viewhiddenactivities) AND $course->id != SITEID) { notice(get_string("activityiscurrentlyhidden")); } + //ishidden check. + //feedback on mainsite + if ((empty($cm->visible) and !$capabilities->viewhiddenactivities) AND $courseid == SITEID) { + notice(get_string("activityiscurrentlyhidden")); + } + feedback_print_errors(); //check, if the feedback is open (timeopen, timeclose) diff --git a/mod/feedback/version.php b/mod/feedback/version.php index e85427a113..1fc5c1d1c5 100644 --- a/mod/feedback/version.php +++ b/mod/feedback/version.php @@ -10,7 +10,7 @@ */ - $module->version = 2008052208; // The current module version (Date: YYYYMMDDXX) + $module->version = 2008052209; // The current module version (Date: YYYYMMDDXX) $module->requires = 2007101503; // Requires this Moodle version $feedback_version_intern = 1; //this version is used for restore older backups $module->cron = 0; // Period for cron to check this module (secs) diff --git a/mod/feedback/view.php b/mod/feedback/view.php index 2680b2f01e..d0fef324ad 100644 --- a/mod/feedback/view.php +++ b/mod/feedback/view.php @@ -36,6 +36,15 @@ $capabilities->complete = true; } + //check whether the feedback is mapped to the given courseid + if($course->id == SITEID AND !$capabilities->edititems) { + if($DB->get_records('feedback_sitecourse_map', array('feedbackid'=>$feedback->id))) { + if(!$DB->get_record('feedback_sitecourse_map', array('feedbackid'=>$feedback->id, 'courseid'=>$courseid))){ + error("this feedback is not available"); + } + } + } + //check whether the feedback is located and! started from the mainsite if($course->id == SITEID AND !$courseid) { $courseid = SITEID; @@ -44,7 +53,21 @@ if($feedback->anonymous != FEEDBACK_ANONYMOUS_YES) { require_login($course->id, true, $cm); } else { - require_course_login($course, true, $cm); + if($course->id == SITEID) { + require_course_login($course, true); + }else { + require_course_login($course, true, $cm); + } + } + + //check whether the given courseid exists + if($courseid AND $courseid != SITEID) { + if($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 + }else { + error("courseid is not correct"); + } } if($feedback->anonymous == FEEDBACK_ANONYMOUS_NO) { @@ -66,10 +89,17 @@ $navigation, "", "", true, $buttontext, navmenu($course, $cm)); //ishidden check. + //feedback in courses if ((empty($cm->visible) and !$capabilities->viewhiddenactivities) AND $course->id != SITEID) { notice(get_string("activityiscurrentlyhidden")); } + //ishidden check. + //feedback on mainsite + if ((empty($cm->visible) and !$capabilities->viewhiddenactivities) AND $courseid == SITEID) { + notice(get_string("activityiscurrentlyhidden")); + } + /// Print the main part of the page /////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////