Improving performace: loading user info once in local.inc. Moving requires in global.inc instead of adding the requires in other files in inc/lib (internationalization)

skala
Julio Montoya 13 years ago
parent ec524c8723
commit f6beb2420f
  1. 20
      main/inc/global.inc.php
  2. 2
      main/inc/lib/chamilo_session.class.php
  3. 6
      main/inc/lib/course.lib.php
  4. 6
      main/inc/lib/internationalization.lib.php
  5. 8
      main/inc/lib/main_api.lib.php
  6. 5
      main/inc/lib/template.lib.php
  7. 55
      main/inc/local.inc.php

@ -105,10 +105,19 @@ if ($alreadyInstalled) {
// Include the main Chamilo platform library file.
require_once $includePath.'/lib/main_api.lib.php';
/** Inclusion of internationalization libraries */
require_once $includePath.'/lib/internationalization.lib.php';
/**
* Functions for internal use behind this API
*/
require_once $includePath.'/lib/internationalization_internal.lib.php';
// Do not over-use this variable. It is only for this script's local use.
$libPath = $includePath.'/lib/';
/*
$settingsFile = __DIR__."/../../app/config/settings.yml";
$app->register(new Igorw\Silex\ConfigServiceProvider($settingsFile, array(
@ -143,8 +152,8 @@ $app['configuration'] = $_configuration;
$app['languages_file'] = array();
$app['installed'] = $alreadyInstalled;
//require_once __DIR__.'/../../src/ChamiloLMS/Resources/config/prod.php';
require_once __DIR__.'/../../src/ChamiloLMS/Resources/config/dev.php';
require_once __DIR__.'/../../src/ChamiloLMS/Resources/config/prod.php';
//require_once __DIR__.'/../../src/ChamiloLMS/Resources/config/dev.php';
//Setting HttpCacheService provider in order to use do: $app['http_cache']->run();
/*
@ -623,6 +632,7 @@ require $includePath.'/local.inc.php';
//Adding web profiler
if (is_writable($app['cache.path'])) {
//if ($app['debug']) {
if (api_get_setting('allow_web_profiler') == 'true') {
$app->register($p = new Silex\Provider\WebProfilerServiceProvider(), array(
'profiler.cache_dir' => $app['profiler.cache_dir'],
@ -677,8 +687,6 @@ if ($alreadyInstalled) {
// to use it within the function get_lang(...).
$language_interface_initial_value = $language_interface;
//load_translations($app);
$langPath = api_get_path(SYS_LANG_PATH);
$this_script = $app['this_script'];
@ -978,7 +986,7 @@ $app->get('/index', 'index.controller:indexAction')->bind('index');
$app->get('/userportal', 'userportal.controller:indexAction');
//Logout page
$app->get('/logout', 'index.controller:logoutAction');
$app->get('/logout', 'index.controller:logoutAction')->bind('logout');
$app->match('/courses/{courseCode}/index.php', 'course_home.controller:indexAction', 'GET|POST');

@ -76,8 +76,6 @@ class ChamiloSession extends System\Session
*/
static function start($alreadyInstalled = true)
{
global $_configuration;
/* Causes too many problems and is not configurable dynamically.
if ($alreadyInstalled) {
$session_lifetime = 360000;

@ -3405,7 +3405,7 @@ class CourseManager {
* @param int number of hottest courses
*/
public static function return_hot_courses($days = 30, $limit = 5) {
global $_configuration;
$urlId = api_get_current_access_url_id();
$limit = intval($limit);
//Getting my courses
@ -3441,7 +3441,7 @@ class CourseManager {
$sql = "SELECT COUNT(course_access_id) course_count, a.course_code, visibility ".
"FROM $table_course c INNER JOIN $table_course_access a ".
" ON (c.code = a.course_code) INNER JOIN $table_course_url u ON u.course_code = a.course_code ".
" WHERE u.access_url_id = ".$_configuration['access_url']." AND".
" WHERE u.access_url_id = ".$urlId." AND".
" login_course_date <= now() AND ".
" login_course_date > DATE_SUB(now(), INTERVAL $days DAY) AND".
" visibility <> '".COURSE_VISIBILITY_CLOSED."'".
@ -4718,4 +4718,4 @@ class CourseManager {
rmdir($tmp_dir_name);
return $course_properties;
}
} //end class CourseManager
} //end class CourseManager

@ -4032,9 +4032,3 @@ function setting_gettext()
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
}
/**
* Functions for internal use behind this API
*/
require_once dirname(__FILE__).'/internationalization_internal.lib.php';

@ -368,14 +368,6 @@ define('TEACHER_HTML', 3);
define('STUDENT_HTML_FULLPAGE', 4);
define('TEACHER_HTML_FULLPAGE', 5);
/**
* Inclusion of internationalization libraries
*/
require_once dirname(__FILE__).'/internationalization.lib.php';
/* PATHS & FILES - ROUTINES */
/**

@ -257,7 +257,7 @@ class Template
$this->user_is_logged_in = false;
if (api_user_is_login()) {
$user_info = api_get_user_info(api_get_user_id());
$user_info = $this->app['current_user'];
$user_info['logged'] = 1;
$user_info['is_admin'] = 0;
@ -746,7 +746,8 @@ class Template
$lang = null; //el for "Edit Language"
$user_language_choice = isset($_SESSION['user_language_choice']) ? $_SESSION['user_language_choice'] : null;
$user_info = api_get_user_id() ? api_get_user_info() : null;
$user_info = $this->app['current_user'];
if (!empty($user_language_choice)) {
$lang = $user_language_choice;

@ -144,7 +144,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
//Lookup the user in the main database
$user_table = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT user_id, username, password, auth_source, active, expiration_date, status FROM $user_table
$sql = "SELECT * FROM $user_table
WHERE username = '".Database::escape_string($login)."'";
$result = Database::query($sql);
@ -157,13 +157,16 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
$password = api_get_encrypted_password(trim(stripslashes($password)));
// Check the user's password
if ( ($password == $uData['password'] OR $cas_login) AND (trim($login) == $uData['username'])) {
if (($password == $uData['password'] OR $cas_login) AND (trim($login) == $uData['username'])) {
$update_type = UserManager::get_extra_user_data_by_field($uData['user_id'], 'update_type');
$update_type= $update_type['update_type'];
if (!empty($extAuthSource[$update_type]['updateUser']) && file_exists($extAuthSource[$update_type]['updateUser'])) {
include_once $extAuthSource[$update_type]['updateUser'];
}
unset($uData['password']);
// Check if the account is active (not locked)
if ($uData['active'] == '1') {
@ -184,14 +187,11 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
if ($my_user_is_admin === false) {
if (is_array($my_url_list) && count($my_url_list)>0 ) {
if (is_array($my_url_list) && count($my_url_list) > 0 ) {
// the user have the permissions to enter at this site
if (in_array($current_access_url_id, $my_url_list)) {
ConditionalLogin::check_conditions($uData);
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user',$_user);
Session::write('_user', $uData);
event_login();
$logging_in = true;
} else {
@ -209,16 +209,12 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
} else { //Only admins of the "main" (first) Chamilo portal can login wherever they want
if (in_array(1, $my_url_list)) { //Check if this admin have the access_url_id = 1 which means the principal
ConditionalLogin::check_conditions($uData);
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user',$_user);
Session::write('_user', $uData);
event_login();
} else {
//This means a secondary admin wants to login so we check as he's a normal user
if (in_array($current_access_url_id, $my_url_list)) {
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user',$_user);
Session::write('_user', $uData);
event_login();
} else {
$loginFailed = true;
@ -229,12 +225,8 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
}
}
} else {
//error_log('Loggedin');
ConditionalLogin::check_conditions($uData);
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user',$_user);
Session::write('_user', $uData);
event_login();
$logging_in = true;
}
@ -450,15 +442,8 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
$use_anonymous = false;
}
}
// else {} => continue as anonymous user
$uidReset = true;
// $cidReset = true;
// $gidReset = true;
} // end else
} // end
//Now check for anonymous user mode
if (isset($use_anonymous) && $use_anonymous) {
@ -484,6 +469,11 @@ if (!empty($cidReq) && (!isset($_SESSION['_cid']) or (isset($_SESSION['_cid']) &
$gidReset = true; // As groups depend from courses, group id is reset
}
//Setting app user variable
$_user = Session::read('_user');
$app['current_user'] = $_user;
/* USER INIT */
if (isset($uidReset) && $uidReset) { // session data refresh requested
unset($_SESSION['_user']['uidReset']);
@ -511,7 +501,7 @@ if (isset($uidReset) && $uidReset) { // session data refresh requested
// Extracting the user data
$uData = Database::fetch_array($result);
$_user = _api_format_user($uData, false);
$_user = _api_format_user($uData, false);
$_user['lastLogin'] = api_strtotime($uData['login_date'], 'UTC');
$is_platformAdmin = (bool) (! is_null( $uData['is_admin']));
@ -521,26 +511,25 @@ if (isset($uidReset) && $uidReset) { // session data refresh requested
Session::write('_user', $_user);
UserManager::update_extra_field_value($_user['user_id'], 'already_logged_in', 'true');
Session::write('is_platformAdmin',$is_platformAdmin);
Session::write('is_allowedCreateCourse',$is_allowedCreateCourse);
Session::write('is_platformAdmin', $is_platformAdmin);
Session::write('is_allowedCreateCourse', $is_allowedCreateCourse);
} else {
header('location:'.api_get_path(WEB_PATH));
//exit("WARNING UNDEFINED UID !! ");
exit;
}
} else { // no uid => logout or Anonymous
Session::erase('_user');
Session::erase('_uid');
}
Session::write('is_platformAdmin',$is_platformAdmin);
Session::write('is_allowedCreateCourse',$is_allowedCreateCourse);
Session::write('is_platformAdmin', $is_platformAdmin);
Session::write('is_allowedCreateCourse', $is_allowedCreateCourse);
} else { // continue with the previous values
$_user = $_SESSION['_user'];
$is_platformAdmin = isset($_SESSION['is_platformAdmin']) ? $_SESSION['is_platformAdmin'] : false;
$is_allowedCreateCourse = isset($_SESSION['is_allowedCreateCourse']) ? $_SESSION['is_allowedCreateCourse'] : false;
}
/* COURSE INIT */
if (isset($cidReset) && $cidReset) {

Loading…
Cancel
Save