rating MDL-21657 changes based on Petr's feedback
authorAndrew Davis <andrew@affinitysoftware.net>
Wed, 17 Mar 2010 03:39:54 +0000 (03:39 +0000)
committerAndrew Davis <andrew@affinitysoftware.net>
Wed, 17 Mar 2010 03:39:54 +0000 (03:39 +0000)
lib/outputrenderers.php
rating/index.php
rating/rate.php
rating/ratinglib.php

index 043eda9..9e5d2b9 100644 (file)
@@ -1235,7 +1235,6 @@ class core_renderer extends renderer_base {
     */
     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) ) {
@@ -1243,11 +1242,8 @@ class core_renderer extends renderer_base {
             $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) {
@@ -1327,7 +1323,7 @@ END;
             $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()
 
index 88a2ce7..a44331d 100644 (file)
 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);
 }
index 4f07d08..7b553d3 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 require_once('../config.php');
+require_once('ratinglib.php');
 
 $contextid = required_param('contextid', PARAM_INT);
 $itemid = required_param('itemid', PARAM_INT);
@@ -36,22 +37,20 @@ $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();
@@ -76,10 +75,6 @@ $PAGE->set_url('/lib/rate.php', array(
         '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) {
index 3bc5cbc..1022d26 100644 (file)
@@ -152,13 +152,12 @@ class rating implements renderable {
         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;