Skip to content

Commit

Permalink
rating MDL-21657 changes based on Petr's feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Davis committed Mar 17, 2010
1 parent 6aee047 commit f1f6a75
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 31 deletions.
10 changes: 3 additions & 7 deletions lib/outputrenderers.php
Original file line number Diff line number Diff line change
Expand Up @@ -1235,19 +1235,15 @@ protected function render_pix_icon(pix_icon $icon) {
*/
function render_rating(rating $rating) {
global $CFG, $USER, $PAGE;
static $strrate;//holds the string "rate". Its static so we only fetch it once.
static $havesetupjavascript = false;

if( !$havesetupjavascript && !empty($CFG->enableajax) ) {
$PAGE->requires->js_init_call('M.core_ratings.init');
$havesetupjavascript = true;
}

if (empty($strrate)) {
$strrate = get_string("rate", "rating");
}

$strratings = '';
$strrate = get_string("rate", "rating");
$strratings = ''; //the string we'll return

if($rating->settings->permissions[RATING_VIEW] || $rating->settings->permissions[RATING_VIEW_ALL]) {
switch ($rating->settings->aggregationmethod) {
Expand Down Expand Up @@ -1327,7 +1323,7 @@ function render_rating(rating $rating) {
$strratings .= html_writer::select($scalearray, 'rating'.$rating->itemid, $rating->rating, false, array('class'=>'postratingmenu ratinginput'));

//output submit button
$strratings .= '<span class="ratingsubmit"><input type="submit" class="postratingmenusubmit" id="postratingsubmit'.$rating->itemid.'" value="'.get_string('rate', 'forum').'" />';
$strratings .= '<span class="ratingsubmit"><input type="submit" class="postratingmenusubmit" id="postratingsubmit'.$rating->itemid.'" value="'.s(get_string('rate', 'rating')).'" />';

//ajax code is included by rating::load_ratings()

Expand Down
11 changes: 4 additions & 7 deletions rating/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,15 @@
require_once("../config.php");
require_once("ratinglib.php");

$itemcontextid = required_param('contextid', PARAM_INT);
$contextid = required_param('contextid', PARAM_INT);
$itemid = required_param('itemid', PARAM_INT);
$scaleid = required_param('scaleid', PARAM_INT);
$sort = optional_param('sort', '', PARAM_ALPHA);

$context = get_context_instance_by_id($itemcontextid);
$cm = get_coursemodule_from_id('', $context->instanceid, 0, false, MUST_EXIST);
$courseid = $cm->course;
//$course = get_course_from_path($context->path);
require_login($courseid, false, $cm);
list($context, $course, $cm) = get_context_info_array($contextid);
require_login($course, false, $cm);

$url = new moodle_url('/rating/index.php', array('contextid'=>$itemcontextid,'itemid'=>$itemid));
$url = new moodle_url('/rating/index.php', array('contextid'=>$contextid,'itemid'=>$itemid));
if ($sort !== 0) {
$url->param('sort', $sort);
}
Expand Down
15 changes: 5 additions & 10 deletions rating/rate.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,29 +29,28 @@
*/

require_once('../config.php');
require_once('ratinglib.php');

$contextid = required_param('contextid', PARAM_INT);
$itemid = required_param('itemid', PARAM_INT);
$scaleid = required_param('scaleid', PARAM_INT);
$userrating = required_param('rating'.$itemid, PARAM_INT);
$returnurl = optional_param('returnurl', null, PARAM_LOCALURL);//will only be supplied for non-ajax requests

require_once('ratinglib.php');

$result = new stdClass;

if( !isloggedin() ){ //session has expired
if( !isloggedin() && !$returnurl ){ //session has expired and its an ajax request
$result->error = get_string('sessionexpired', 'ratings');
echo json_encode($result);
die();
}

$context = get_context_instance_by_id($contextid);
list($context, $course, $cm) = get_context_info_array($contextid);
require_login($course, false, $cm);

$permissions = rating::get_rating_permissions($context);
if( !$permissions[RATING_POST] ) {
//check if its a non-ajax request
if( $returnurl ) {
if( $returnurl ) { //if its a non-ajax request
echo $OUTPUT->header();
echo get_string('ratepermissiondenied', 'ratings');
echo $OUTPUT->footer();
Expand All @@ -76,10 +75,6 @@
'returnurl'=>$returnurl,
));

if( $returnurl ) {
//
}

//todo how can we validate the forum post,glossary entry or whatever id?
//how do we know where to look for the item? how we we work from module to forum_posts, glossary_entries etc?
//if ($rating_context->contextlevel == CONTEXT_COURSE) {
Expand Down
13 changes: 6 additions & 7 deletions rating/ratinglib.php
Original file line number Diff line number Diff line change
Expand Up @@ -152,13 +152,12 @@ public static function load_ratings_for_item($context, $itemid, $sort) {
global $DB;

$sql = "SELECT r.id, r.rating, r.itemid, r.userid, r.timemodified,
u.firstname, u.lastname, u.imagealt, u.picture
FROM {rating} r
LEFT JOIN {user} u ON r.userid = u.id
WHERE
r.contextid = :contextid AND
r.itemid = :itemid
$sort";
u.firstname, u.lastname, u.imagealt, u.picture
FROM {rating} r
LEFT JOIN {user} u ON r.userid = u.id
WHERE r.contextid = :contextid AND
r.itemid = :itemid
$sort";

$params['contextid'] = $context->id;
$params['itemid'] = $itemid;
Expand Down

0 comments on commit f1f6a75

Please sign in to comment.