From 8bbfdefd52e72613161801a3a4549aadb0582e1b Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Fri, 24 Jun 2011 16:05:41 +0200 Subject: [PATCH] Adding grade, course code and course title in gradebook certificates see BT#2725 --- main/gradebook/gradebook_statistics.php | 13 +++--- .../gradebook/lib/fe/gradebooktable.class.php | 10 ++--- main/img/icons/22/month.png | Bin 0 -> 931 bytes main/inc/lib/document.lib.php | 38 ++++++++++++++---- main/inc/lib/usermanager.lib.php | 21 ++++++++-- 5 files changed, 62 insertions(+), 20 deletions(-) create mode 100644 main/img/icons/22/month.png diff --git a/main/gradebook/gradebook_statistics.php b/main/gradebook/gradebook_statistics.php index 4d897d84ab..ebf70cde70 100755 --- a/main/gradebook/gradebook_statistics.php +++ b/main/gradebook/gradebook_statistics.php @@ -1,8 +1,11 @@ -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]; } } diff --git a/main/gradebook/lib/fe/gradebooktable.class.php b/main/gradebook/lib/fe/gradebooktable.class.php index 8d6adc9278..8c3cd7bea9 100755 --- a/main/gradebook/lib/fe/gradebooktable.class.php +++ b/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('',$content_html); diff --git a/main/img/icons/22/month.png b/main/img/icons/22/month.png new file mode 100644 index 0000000000000000000000000000000000000000..5053a0e83b11cac4ff492b06c841461e244a9982 GIT binary patch literal 931 zcmV;U16=%xP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipc1 z2{|F-{A%|A00SdQL_t(I%hi?3ZXHDshQF$wV>`+PFbPqJ!wMpyNJ!*CSRk?G#n__= zAs&Q95IYPCB7hTP#le>xpE)yK^|R>l@yYE07-`g(s;RE}s=CI$dGP&qpWPM(8DI%= z!xGF4T(rlgQL91Ibj+Z*V`ikV%O(2m=B=G?Ke~PA{&K8YGpH$|R%(bEL1dDdL?i%S zoMMg_qjSg1xqbaA^M0U)*qjxAy1)Np=Wg!~^Wz)iSV6)Jii9U@AcV*Q__^PKSztIO zFd0XO17?N+io({$?454r#>YE1(d-IX3)rlgFl#S>xvgNFD>`-#rtKOq%z3!`h|axm zWqTX@?n{_mLKDrGK9JD)0c&$!(Y0|weDwo{(`gde#*F;@2CBlIoWY$dC<5H@-%iO- zu7bdSJwf;0Lql!rgPy#32^{?A{VB1cTXT$3&tM1?LD7O(j#x27(hX;jLJGQE5X)hO z#)ml=NEdOg3`?S(jZ;EIJzioCN+>m{L&c^XE>C)F3f1~Vqa%m1=H$w-g(#246}fU8 z>y%%Xt>#mbPhw@`b&tD3+`k2p_}&Y0=W4qFZj{~U#NBN`l-+-cd+)=TAmRIGT#Vw`VgJT78l48zHQxuFEF zA_lb@$C~V%@iI_t{lMSG*#79-A`F}BqC-^29#69B7kZN}^RXRz&e-i0#-Hs#2;Vy) zZ(p0@G`e4&5qGZxqT78&eEI=IV_cq|5+7cJV%WpS?VA)GQVR*OIX*|r#&`o7M>k}_ z#`18*c#ESZQ@h8dKYTl5Bx(<&V@k%;N-Jc;Y9+_1v@pigfb@xRMYU@;^fkr?Eazyi zPDO8M&_%ylINEF8wE5|(L9BEQST38s8=WN7_tY;QteW}y)d0w;(`Zd**2;Wcw*uBL zK}Hu5fBpXC;QCM_Gm}UW)0mlrgi=JdUhQU-Qiu#3C|)RD*qn8ki_XpaVX@c!bMWNr zKMxLzC2Re-c`j?Ui>5t+P%|8{`cX;edkxo?4VC}h^B;lc^*vy2FV_G7002ovPDHLk FV1gFTwh90M literal 0 HcmV?d00001 diff --git a/main/inc/lib/document.lib.php b/main/inc/lib/document.lib.php index 8a0cf96342..ce5a1b648e 100755 --- a/main/inc/lib/document.lib.php +++ b/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).'))'; diff --git a/main/inc/lib/usermanager.lib.php b/main/inc/lib/usermanager.lib.php index 3d1496b46e..ae58a35326 100755 --- a/main/inc/lib/usermanager.lib.php +++ b/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;