Browse Source

Adding grade, course code and course title in gradebook certificates see BT#2725

Julio Montoya 13 years ago
parent
commit
8bbfdefd52

+ 8 - 5
main/gradebook/gradebook_statistics.php

@@ -1,8 +1,11 @@
-<?php // $Id: $
+<?php
 /* For licensing terms, see /license.txt */
+
 $language_file= 'gradebook';
 //$cidReset= true;
+
 require_once '../inc/global.inc.php';
+
 require_once 'lib/be.inc.php';
 require_once 'lib/gradebook_functions.inc.php';
 require_once 'lib/fe/dataform.class.php';
@@ -10,7 +13,7 @@ require_once 'lib/scoredisplay.class.php';
 require_once 'lib/fe/displaygradebook.php';
 api_block_anonymous_users();
 $eval= Evaluation :: load($_GET['selecteval']);
-if ($eval[0]->get_category_id() < 0) {
+if ($eval[0]->get_category_id() < 0) { 
 	// if category id is negative, then the evaluation's origin is a link
 	$link= LinkFactory :: get_evaluation_link($eval[0]->get_id());
 	$currentcat= Category :: load($link->get_category_id());
@@ -57,9 +60,9 @@ if (!$displayscore->is_custom()) {
 	// find the region with the most scores, this is 100% of the bar
 
 	$highest_ratio = 0;
-	foreach ($keys as $key) {
-		if ($nr_items[$key] > $highest_ratio){
-		$highest_ratio = $nr_items[$key];
+	foreach($keys as $key) {
+		if ($nr_items[$key] > $highest_ratio) {
+		    $highest_ratio = $nr_items[$key];
 		}
 	}
 

+ 5 - 5
main/gradebook/lib/fe/gradebooktable.class.php

@@ -116,10 +116,10 @@ class GradebookTable extends SortableTable
 			$sorting |= GradebookDataGenerator :: GDG_SORT_ASC;
 		}
 		//status of user in course
-	    $user_id=api_get_user_id();
-		$course_code=api_get_course_id();
-		$status_user=api_get_status_of_user_in_course ($user_id,$course_code);
-		$data_array = $this->datagen->get_data($sorting, $from, $this->per_page);
+	    $user_id     = api_get_user_id();
+		$course_code = api_get_course_id();
+		$status_user = api_get_status_of_user_in_course ($user_id,$course_code);
+		$data_array  = $this->datagen->get_data($sorting, $from, $this->per_page);
 
 		// generate the data to display
 		$sortable_data = array();
@@ -248,7 +248,7 @@ class GradebookTable extends SortableTable
 					Display::display_warning_message($warning_message,false);
 				}
 
-				$content_html=DocumentManager::replace_user_info_into_html(api_get_user_id(), $course_code);
+				$content_html = DocumentManager::replace_user_info_into_html(api_get_user_id(), $course_code);
 
 				$new_content=explode('</head>',$content_html);
 

BIN
main/img/icons/22/month.png


+ 31 - 7
main/inc/lib/document.lib.php

@@ -1203,8 +1203,8 @@ return 'application/octet-stream';
     function replace_user_info_into_html($user_id, $course_id, $is_preview = false) {
         $user_id = intval($user_id);
         $course_info = api_get_course_info($course_id);
-        $tbl_document=Database::get_course_table(TABLE_DOCUMENT, $course_info['dbName']);
-        $document_id=self::get_default_certificate_id($course_id);
+        $tbl_document = Database::get_course_table(TABLE_DOCUMENT, $course_info['dbName']);
+        $document_id = self::get_default_certificate_id($course_id);
 
         $sql = 'SELECT path FROM '.$tbl_document.' WHERE id="'.Database::escape_string($document_id).'" ';
 
@@ -1217,7 +1217,7 @@ return 'application/octet-stream';
             if (is_file($filepath)) {
                 $my_content_html=file_get_contents($filepath);
             }
-            $all_user_info=self::get_all_info_to_certificate($user_id, $is_preview);
+            $all_user_info = self::get_all_info_to_certificate($user_id, $is_preview);
             $info_to_be_replaced_in_content_html=$all_user_info[0];
             $info_to_replace_in_content_html=$all_user_info[1];
             $new_content=str_replace($info_to_be_replaced_in_content_html,$info_to_replace_in_content_html, $my_content_html);
@@ -1232,6 +1232,8 @@ return 'application/octet-stream';
         $info_list	= array();
         $user_id	= intval($user_id);
         $course_id	= api_get_course_id();
+        
+        $course_info = api_get_course_info($course_id);
 
         //info portal
         $organization_name = api_get_setting('Institution');
@@ -1254,7 +1256,7 @@ return 'application/octet-stream';
 
         // info gradebook certificate
         $info_grade_certificate = UserManager::get_info_gradebook_certificate($course_id, $user_id);
-
+    
         $date_certificate = $info_grade_certificate['created_at'];
         $date_long_certificate = '';
         if (!empty($date_certificate)) {
@@ -1266,9 +1268,31 @@ return 'application/octet-stream';
         }
 
         //replace content
-        $info_to_replace_in_content_html = array($first_name,$last_name,$organization_name,$portal_name,$teacher_first_name,$teacher_last_name, $official_code, $date_long_certificate);
-        $info_to_be_replaced_in_content_html= array('((user_firstname))','((user_lastname))','((gradebook_institution))',
-                                                    '((gradebook_sitename))','((teacher_firstname))','((teacher_lastname))','((official_code))','((date_certificate))');
+        $info_to_replace_in_content_html     = array($first_name, 
+                                                     $last_name,
+                                                     $organization_name,
+                                                     $portal_name, 
+                                                     $teacher_first_name, 
+                                                     $teacher_last_name, 
+                                                     $official_code, 
+                                                     $date_long_certificate,
+                                                     $course_id,
+                                                     $course_info['name'],
+                                                     $info_grade_certificate['grade'], 
+                                                    );
+        $info_to_be_replaced_in_content_html = array('((user_firstname))',
+        											 '((user_lastname))',
+        											 '((gradebook_institution))',
+                                                     '((gradebook_sitename))',
+                                                     '((teacher_firstname))',
+                                                     '((teacher_lastname))',
+                                                     '((official_code))',
+                                                     '((date_certificate))',
+        											 '((course_code))',
+                									 '((course_title))',
+        											 '((gradebook_grade))',
+                                            );
+                                            
         if (!empty($extra_user_info_data)) {
             foreach ($extra_user_info_data as $key_extra=>$value_extra) {
                 $info_to_be_replaced_in_content_html[]='(('.strtolower($key_extra).'))';

+ 18 - 3
main/inc/lib/usermanager.lib.php

@@ -3231,12 +3231,27 @@ class UserManager
 	  	if (empty($session_id)) {
 	  	    $session_condition = ' AND (session_id = "" OR session_id = 0 OR session_id IS NULL )';
 	  	} else {
-	  	    $session_condition = " AND session_id = $session_condition";
+	  	    $session_condition = " AND session_id = $session_id";
 	  	}	  	
-	  	$sql='SELECT * FROM '.$tbl_grade_certificate.' WHERE cat_id= (SELECT id FROM '.$tbl_grade_category.' WHERE course_code = "'.Database::escape_string($course_code).'" '.$session_condition.' LIMIT 1 ) AND user_id='.Database::escape_string($user_id);
-	  	$rs = Database::query($sql);	  		  		  	
+	  	//Getting gradebook score
+	  	require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/be.inc.php';
+	  	require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/scoredisplay.class.php';
+	  
+	  	$sql = 'SELECT * FROM '.$tbl_grade_certificate.' WHERE cat_id = (SELECT id FROM '.$tbl_grade_category.' WHERE course_code = "'.Database::escape_string($course_code).'" '.$session_condition.' LIMIT 1 ) AND user_id='.Database::escape_string($user_id);
+	  		
+	  	$rs  = Database::query($sql);	  		  		  	
 	  	if (Database::num_rows($rs) > 0) {
 	  	    $row = Database::fetch_array($rs,'ASSOC');	  	
+	  	    $score = $row['score_certificate'];
+	  	    $category_id = $row['cat_id'];
+	  	    $eval         = Evaluation::load(null, null, $course_code, $category_id);	  		  	
+	  	    $displayscore = ScoreDisplay::instance();
+	  	
+	  	    $grade = '';
+	  	    if (isset($eval) && $displayscore->is_custom()) {
+                $grade = $displayscore->display_score(array($score, $eval[0]->get_max()), SCORE_DIV | SCORE_IGNORE_SPLIT, SCORE_ONLY_CUSTOM);			
+    	  	}
+	  	    $row['grade'] = $grade;
 	  		return $row;
         }
 	  	return false;