Speed performance: Avoid hitting the DB for a course info

pull/3023/head
Julio Montoya 6 years ago
parent 69a397636b
commit 8f00902c47
  1. 2
      main/forum/forumfunction.inc.php
  2. 2
      main/gradebook/gradebook_display_certificate.php
  3. 4
      main/gradebook/lib/GradebookUtils.php
  4. 2
      main/gradebook/lib/fe/displaygradebook.php
  5. 25
      main/inc/lib/api.lib.php
  6. 7
      main/inc/lib/certificate.lib.php
  7. 4
      main/inc/lib/course.lib.php
  8. 6
      main/inc/lib/document.lib.php
  9. 2
      main/inc/lib/sessionmanager.lib.php
  10. 2
      main/work/work.lib.php
  11. 7
      plugin/bbb/lib/bbb.lib.php
  12. 2
      plugin/bbb/listing.php
  13. 2
      plugin/customcertificate/src/CustomCertificatePlugin.php
  14. 4
      plugin/customcertificate/src/index.php
  15. 4
      plugin/customcertificate/src/print_certificate.php

@ -928,7 +928,7 @@ function store_forum($values, $courseInfo = [], $returnId = false)
$sql = "UPDATE $table_forums SET forum_id = iid WHERE iid = $forumId"; $sql = "UPDATE $table_forums SET forum_id = iid WHERE iid = $forumId";
Database::query($sql); Database::query($sql);
$courseCode = $courseInfo['code']; $courseCode = $courseInfo['code'];
$subscribe = (int) api_get_course_setting('subscribe_users_to_forum_notifications', $courseCode); $subscribe = (int) api_get_course_setting('subscribe_users_to_forum_notifications');
$status = STUDENT; $status = STUDENT;
if (!empty($session_id)) { if (!empty($session_id)) {

@ -81,7 +81,7 @@ $content = '';
$courseCode = api_get_course_id(); $courseCode = api_get_course_id();
$allowExportToZip = api_get_plugin_setting('customcertificate', 'enable_plugin_customcertificate') == 'true' && $allowExportToZip = api_get_plugin_setting('customcertificate', 'enable_plugin_customcertificate') == 'true' &&
api_get_course_setting('customcertificate_course_enable', $courseCode) == 1; api_get_course_setting('customcertificate_course_enable', $courseInfo) == 1;
$tags = Certificate::notificationTags(); $tags = Certificate::notificationTags();

@ -1433,7 +1433,7 @@ class GradebookUtils
foreach ($courses as $course) { foreach ($courses as $course) {
if (!$includeNonPublicCertificates) { if (!$includeNonPublicCertificates) {
$allowPublicCertificates = api_get_course_setting('allow_public_certificates', $course['code']); $allowPublicCertificates = api_get_course_setting('allow_public_certificates', $course);
if (empty($allowPublicCertificates)) { if (empty($allowPublicCertificates)) {
continue; continue;
@ -1505,7 +1505,7 @@ class GradebookUtils
foreach ($sessionCourses as $course) { foreach ($sessionCourses as $course) {
if (!$includeNonPublicCertificates) { if (!$includeNonPublicCertificates) {
$allowPublicCertificates = api_get_course_setting('allow_public_certificates', $course['code']); $allowPublicCertificates = api_get_course_setting('allow_public_certificates');
if (empty($allowPublicCertificates)) { if (empty($allowPublicCertificates)) {
continue; continue;

@ -487,7 +487,7 @@ class DisplayGradebook
Display::return_icon('edit.png', get_lang('Edit'), '', ICON_SIZE_MEDIUM).'</a>'; Display::return_icon('edit.png', get_lang('Edit'), '', ICON_SIZE_MEDIUM).'</a>';
if (api_get_plugin_setting('customcertificate', 'enable_plugin_customcertificate') == 'true' && if (api_get_plugin_setting('customcertificate', 'enable_plugin_customcertificate') == 'true' &&
api_get_course_setting('customcertificate_course_enable', $courseCode) == 1 api_get_course_setting('customcertificate_course_enable') == 1
) { ) {
$actionsRight .= '<a href="'.api_get_path( $actionsRight .= '<a href="'.api_get_path(
WEB_PLUGIN_PATH WEB_PLUGIN_PATH

@ -1905,16 +1905,20 @@ function api_get_course_path($course_code = null)
* Gets a course setting from the current course_setting table. Try always using integer values. * Gets a course setting from the current course_setting table. Try always using integer values.
* *
* @param string $setting_name The name of the setting we want from the table * @param string $setting_name The name of the setting we want from the table
* @param string $course_code * @param array $course_info
* *
* @return mixed The value of that setting in that table. Return -1 if not found. * @return mixed The value of that setting in that table. Return -1 if not found.
*/ */
function api_get_course_setting($setting_name, $course_code = null) function api_get_course_setting($setting_name, $course_info = [])
{ {
$course_info = api_get_course_info($course_code); if (empty($course_info)) {
$table = Database::get_course_table(TABLE_COURSE_SETTING); $course_info = api_get_course_info();
$setting_name = Database::escape_string($setting_name); }
if (!empty($course_info['real_id']) && !empty($setting_name)) {
if (isset($course_info['real_id']) && !empty($course_info['real_id']) && !empty($setting_name)) {
$table = Database::get_course_table(TABLE_COURSE_SETTING);
$setting_name = Database::escape_string($setting_name);
$sql = "SELECT value FROM $table $sql = "SELECT value FROM $table
WHERE c_id = {$course_info['real_id']} AND variable = '$setting_name'"; WHERE c_id = {$course_info['real_id']} AND variable = '$setting_name'";
$res = Database::query($sql); $res = Database::query($sql);
@ -2088,11 +2092,10 @@ function api_remove_in_gradebook()
* particular course, if none given it gets the course info from the session. * particular course, if none given it gets the course info from the session.
* *
* @param string $course_code * @param string $course_code
* @param bool $strict
* *
* @return array * @return array
*/ */
function api_get_course_info($course_code = null, $strict = false) function api_get_course_info($course_code = null)
{ {
if (!empty($course_code)) { if (!empty($course_code)) {
$course_code = Database::escape_string($course_code); $course_code = Database::escape_string($course_code);
@ -5048,7 +5051,7 @@ function api_get_visual_theme()
$course_id = api_get_course_id(); $course_id = api_get_course_id();
if (!empty($course_id)) { if (!empty($course_id)) {
if (api_get_setting('allow_course_theme') == 'true') { if (api_get_setting('allow_course_theme') == 'true') {
$course_theme = api_get_course_setting('course_theme', $course_id); $course_theme = api_get_course_setting('course_theme', api_get_course_info());
if (!empty($course_theme) && $course_theme != -1) { if (!empty($course_theme) && $course_theme != -1) {
if (!empty($course_theme)) { if (!empty($course_theme)) {
@ -7785,8 +7788,8 @@ function api_set_default_visibility(
} }
// Read the portal and course default visibility // Read the portal and course default visibility
if ($tool_id == 'documents') { if ($tool_id === 'documents') {
$visibility = DocumentManager::getDocumentDefaultVisibility($courseCode); $visibility = DocumentManager::getDocumentDefaultVisibility($courseInfo);
} }
api_item_property_update( api_item_property_update(

@ -604,7 +604,12 @@ class Certificate extends Model
return false; return false;
} }
if (api_get_course_setting('allow_public_certificates', $gradeBookInfo['course_code']) == 0) { $setting = api_get_course_setting(
'allow_public_certificates',
api_get_course_info($gradeBookInfo['course_code'])
);
if ($setting == 0) {
// Printing not allowed // Printing not allowed
return false; return false;
} }

@ -715,7 +715,7 @@ class CourseManager
) )
); );
$send = api_get_course_setting('email_alert_to_teacher_on_new_user_in_course', $courseCode); $send = api_get_course_setting('email_alert_to_teacher_on_new_user_in_course', $courseInfo);
if ($send == 1) { if ($send == 1) {
self::email_to_tutor( self::email_to_tutor(
@ -731,7 +731,7 @@ class CourseManager
); );
} }
$subscribe = (int) api_get_course_setting('subscribe_users_to_forum_notifications', $courseCode); $subscribe = (int) api_get_course_setting('subscribe_users_to_forum_notifications', $courseInfo);
if ($subscribe === 1) { if ($subscribe === 1) {
require_once api_get_path(SYS_CODE_PATH).'forum/forumfunction.inc.php'; require_once api_get_path(SYS_CODE_PATH).'forum/forumfunction.inc.php';
$forums = get_forums(0, $courseCode, true, $sessionId); $forums = get_forums(0, $courseCode, true, $sessionId);

@ -4160,11 +4160,11 @@ class DocumentManager
} }
/** /**
* @param string $courseCode * @param array $courseInfo
* *
* @return string 'visible' or 'invisible' string * @return string 'visible' or 'invisible' string
*/ */
public static function getDocumentDefaultVisibility($courseCode) public static function getDocumentDefaultVisibility($courseInfo)
{ {
$settings = api_get_setting('tool_visible_by_default_at_creation'); $settings = api_get_setting('tool_visible_by_default_at_creation');
$defaultVisibility = 'visible'; $defaultVisibility = 'visible';
@ -4179,7 +4179,7 @@ class DocumentManager
} }
if (api_get_setting('documents_default_visibility_defined_in_course') == 'true') { if (api_get_setting('documents_default_visibility_defined_in_course') == 'true') {
$courseVisibility = api_get_course_setting('documents_default_visibility', $courseCode); $courseVisibility = api_get_course_setting('documents_default_visibility', $courseInfo);
if (!empty($courseVisibility) && in_array($courseVisibility, ['visible', 'invisible'])) { if (!empty($courseVisibility) && in_array($courseVisibility, ['visible', 'invisible'])) {
$defaultVisibility = $courseVisibility; $defaultVisibility = $courseVisibility;
} }

@ -2287,7 +2287,7 @@ class SessionManager
$course_code = Database::escape_string($course_code); $course_code = Database::escape_string($course_code);
$courseInfo = api_get_course_info($course_code); $courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id']; $courseId = $courseInfo['real_id'];
$subscribe = (int) api_get_course_setting('subscribe_users_to_forum_notifications', $course_code); $subscribe = (int) api_get_course_setting('subscribe_users_to_forum_notifications', $courseInfo);
$forums = []; $forums = [];
if ($subscribe === 1) { if ($subscribe === 1) {
require_once api_get_path(SYS_CODE_PATH).'forum/forumfunction.inc.php'; require_once api_get_path(SYS_CODE_PATH).'forum/forumfunction.inc.php';

@ -3432,7 +3432,7 @@ function addWorkComment($courseInfo, $userId, $parentWork, $work, $data)
} }
} }
$sendNotification = api_get_course_setting('email_to_teachers_on_new_work_feedback', api_get_course_id()); $sendNotification = api_get_course_setting('email_to_teachers_on_new_work_feedback');
if ($sendNotification != 1) { if ($sendNotification != 1) {
$userIdListToSend = []; $userIdListToSend = [];
} }

@ -92,7 +92,7 @@ class bbb
// Course check // Course check
$courseInfo = api_get_course_info(); $courseInfo = api_get_course_info();
if ($courseInfo) { if ($courseInfo) {
$this->groupSupport = api_get_course_setting('bbb_enable_conference_in_groups', $courseInfo['code']) === '1'; $this->groupSupport = api_get_course_setting('bbb_enable_conference_in_groups', $courseInfo) === '1';
} }
} }
} }
@ -304,7 +304,6 @@ class bbb
*/ */
public function createMeeting($params) public function createMeeting($params)
{ {
$courseCode = api_get_course_id();
$params['c_id'] = api_get_course_int_id(); $params['c_id'] = api_get_course_int_id();
$params['session_id'] = api_get_session_id(); $params['session_id'] = api_get_session_id();
@ -321,8 +320,8 @@ class bbb
$params['moderator_pw'] = isset($params['moderator_pw']) ? $params['moderator_pw'] : $this->getModMeetingPassword(); $params['moderator_pw'] = isset($params['moderator_pw']) ? $params['moderator_pw'] : $this->getModMeetingPassword();
$moderatorPassword = $params['moderator_pw']; $moderatorPassword = $params['moderator_pw'];
$params['record'] = api_get_course_setting('big_blue_button_record_and_store', $courseCode) == 1 ? true : false; $params['record'] = api_get_course_setting('big_blue_button_record_and_store') == 1 ? true : false;
$max = api_get_course_setting('big_blue_button_max_students_allowed', $courseCode); $max = api_get_course_setting('big_blue_button_max_students_allowed');
$max = isset($max) ? $max : -1; $max = isset($max) ? $max : -1;
$params['status'] = 1; $params['status'] = 1;

@ -133,7 +133,7 @@ if ($conferenceManager) {
if ($plugin->get('allow_regenerate_recording') !== 'true') { if ($plugin->get('allow_regenerate_recording') !== 'true') {
api_not_allowed(true); api_not_allowed(true);
} }
$allow = api_get_course_setting('bbb_force_record_generation', $courseCode) == 1 ? true : false; $allow = api_get_course_setting('bbb_force_record_generation', $courseInfo) == 1 ? true : false;
if ($allow) { if ($allow) {
$result = $bbb->getMeetingByRemoteId($_GET['remote_id']); $result = $bbb->getMeetingByRemoteId($_GET['remote_id']);
if (!empty($result)) { if (!empty($result)) {

@ -233,7 +233,7 @@ class CustomCertificatePlugin extends Plugin
$courseCode = $row['course_code']; $courseCode = $row['course_code'];
$sessionId = $row['session_id']; $sessionId = $row['session_id'];
$userId = $row['user_id']; $userId = $row['user_id'];
if (api_get_course_setting('customcertificate_course_enable', $courseCode) == 1) { if (api_get_course_setting('customcertificate_course_enable', api_get_course_info($courseCode)) == 1) {
return [ return [
'course_code' => $courseCode, 'course_code' => $courseCode,
'session_id' => $sessionId, 'session_id' => $sessionId,

@ -32,8 +32,8 @@ if ($isDefault === 1) {
$courseId = api_get_course_int_id(); $courseId = api_get_course_int_id();
$courseCode = api_get_course_id(); $courseCode = api_get_course_id();
$sessionId = api_get_session_id(); $sessionId = api_get_session_id();
$enableCourse = api_get_course_setting('customcertificate_course_enable', $courseCode) == 1 ? true : false; $enableCourse = api_get_course_setting('customcertificate_course_enable', $course_info) == 1 ? true : false;
$useDefault = api_get_course_setting('use_certificate_default', $courseCode) == 1 ? true : false; $useDefault = api_get_course_setting('use_certificate_default', $course_info) == 1 ? true : false;
$defaultCertificate = 0; $defaultCertificate = 0;
$urlParams = '?'.api_get_cidreq(); $urlParams = '?'.api_get_cidreq();
} }

@ -31,8 +31,8 @@ if ($default == 1) {
$courseId = api_get_course_int_id(); $courseId = api_get_course_int_id();
$courseCode = api_get_course_id(); $courseCode = api_get_course_id();
$sessionId = api_get_session_id(); $sessionId = api_get_session_id();
$enableCourse = api_get_course_setting('customcertificate_course_enable', $courseCode) == 1 ? true : false; $enableCourse = api_get_course_setting('customcertificate_course_enable') == 1 ? true : false;
$useDefault = api_get_course_setting('use_certificate_default', $courseCode) == 1 ? true : false; $useDefault = api_get_course_setting('use_certificate_default') == 1 ? true : false;
} }
if (empty($courseCode)) { if (empty($courseCode)) {

Loading…
Cancel
Save