Removing "log.class.php" using monolog in order to debug code

skala
Julio Montoya 13 years ago
parent c4eb71fb2a
commit 6a4477262c
  1. 70
      main/inc/global.inc.php
  2. 6
      main/inc/lib/database.lib.php
  3. 222
      main/inc/lib/log.class.php
  4. 16
      main/inc/lib/mail.lib.inc.php
  5. 30
      main/inc/lib/main_api.lib.php
  6. 90
      main/install/db_main.sql
  7. 32
      main/install/i_database.class.php
  8. 32
      main/install/index.php
  9. 16
      main/install/install.class.php
  10. 9
      main/install/install.lib.php
  11. 9
      main/install/install_db.inc.php
  12. 2
      main/install/update-configuration.inc.php
  13. 2
      main/install/update-db-1.6.x-1.8.0.inc.php
  14. 3
      main/install/update-db-1.8.0-1.8.2.inc.php
  15. 2
      main/install/update-db-1.8.2-1.8.3.inc.php
  16. 2
      main/install/update-db-1.8.3-1.8.4.inc.php
  17. 6
      main/install/update-db-1.8.4-1.8.5.inc.php
  18. 28
      main/install/update-db-1.8.5-1.8.6.inc.php
  19. 35
      main/install/update-db-1.8.6-1.8.6.1.inc.php
  20. 54
      main/install/update-db-1.8.6.1-1.8.6.2.inc.php
  21. 75
      main/install/update-db-1.8.6.2-1.8.7.inc.php
  22. 52
      main/install/update-db-1.8.7-1.8.8.inc.php
  23. 62
      main/install/update-db-1.8.8-1.9.0.inc.php
  24. 10
      main/install/update-db-1.9.0-1.10.0.inc.php
  25. 85
      main/install/update-db-scorm-1.6.x-1.8.0.inc.php
  26. 25
      main/install/update-files-1.6.x-1.8.0.inc.php
  27. 2
      main/install/update-files-1.8.3-1.8.4.inc.php
  28. 8
      main/install/update-files-1.8.4-1.8.5.inc.php
  29. 11
      main/install/update-files-1.8.5-1.8.6.inc.php
  30. 2
      main/install/update-files-1.8.6-1.8.6.1.inc.php
  31. 9
      main/install/update-files-1.8.6.1-1.8.6.2.inc.php
  32. 2
      main/install/update-files-1.8.6.2-1.8.7.inc.php
  33. 2
      main/install/update-files-1.8.7-1.8.8.inc.php
  34. 2
      main/install/update-files-1.8.8-1.9.0.inc.php

@ -49,12 +49,13 @@ if (file_exists($main_configuration_file_path)) {
}
//Redirects to the main/install/ page
/*
if (!$already_installed) {
$global_error_code = 2;
// The system has not been installed yet.
require $includePath.'/global_error_message.inc.php';
die();
}
}*/
// Ensure that _configuration is in the global scope before loading
// main_api.lib.php. This is particularly helpful for unit tests
@ -117,6 +118,7 @@ use Silex\Application;
$app = new Application();
$app['configuration_file'] = $main_configuration_file_path;
$app['conf'] = $_configuration;
//require_once __DIR__.'/../../resources/config/prod.php';
require_once __DIR__.'/../../resources/config/dev.php';
@ -187,7 +189,9 @@ $app['twig'] = $app->share($app->extend('twig', function($twig, $app) {
}));
//Setting Doctrine service provider (DBAL)
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
if (isset($_configuration['main_database'])) {
$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => 'pdo_mysql',
'dbname' => $_configuration['main_database'],
@ -195,10 +199,11 @@ $app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'password' => $_configuration['db_password'],
'host' => $_configuration['db_host'],
)
));
));
//Setting Doctrine ORM
$app->register(new Dflydev\Silex\Provider\DoctrineOrm\DoctrineOrmServiceProvider, array(
//Setting Doctrine ORM
$app->register(new Dflydev\Silex\Provider\DoctrineOrm\DoctrineOrmServiceProvider, array(
"orm.proxies_dir" => $app['db.orm.proxies_dir'],
"orm.em.options" => array(
"mappings" => array(
@ -209,36 +214,20 @@ $app->register(new Dflydev\Silex\Provider\DoctrineOrm\DoctrineOrmServiceProvider
)
),
),
));
//Setting Doctrine2 extensions
));
$timestampableListener = new \Gedmo\Timestampable\TimestampableListener();
$app['db.event_manager']->addEventSubscriber($timestampableListener);
$sluggableListener = new \Gedmo\Sluggable\SluggableListener();
$app['db.event_manager']->addEventSubscriber($sluggableListener);
//Setting Doctrine2 extensions
$sortableListener = new \Gedmo\Sortable\SortableListener();
$app['db.event_manager']->addEventSubscriber($sortableListener);
$timestampableListener = new \Gedmo\Timestampable\TimestampableListener();
$app['db.event_manager']->addEventSubscriber($timestampableListener);
$sluggableListener = new \Gedmo\Sluggable\SluggableListener();
$app['db.event_manager']->addEventSubscriber($sluggableListener);
//Testing with another silex service provider
/*
// Register Doctrine ORM
$app->register(new Nutwerk\Provider\DoctrineORMServiceProvider(), array(
'db.orm.proxies_dir' => $app['db.orm.proxies_dir'],
'db.orm.proxies_namespace' => 'DoctrineProxy',
'db.orm.cache' =>
!$app['debug'] && extension_loaded('apc') ? new ApcCache() : new ArrayCache(),
'db.orm.auto_generate_proxies' => true,
'db.orm.entities' => array(array(
'type' => 'annotation', // entity definition
'path' => api_get_path(INCLUDE_PATH).'Entity',
'namespace' => 'Entity', // your classes namespace
)),
));*/
$sortableListener = new \Gedmo\Sortable\SortableListener();
$app['db.event_manager']->addEventSubscriber($sortableListener);
}
//Creating Chamilo service provider
use Silex\ServiceProviderInterface;
@ -257,7 +246,7 @@ class ChamiloServiceProvider implements ServiceProviderInterface {
//Registering Chamilo service provider
$app->register(new ChamiloServiceProvider(), array());
//Controllers
//Controllers as services
$app->register(new Silex\Provider\ServiceControllerServiceProvider());
$app['pages.controller'] = $app->share(function() use ($app) {
@ -265,11 +254,12 @@ $app['pages.controller'] = $app->share(function() use ($app) {
});
//Manage error messages
/*
$app->error(function (\Exception $e, $code) use ($app) {
if ($app['debug']) {
//return;
}
if (isset($code)) {
switch ($code) {
case 404:
@ -289,13 +279,12 @@ $app->error(function (\Exception $e, $code) use ($app) {
$response = $app['template']->render_layout('error.tpl');
return new Response($response);
});
*
*/
/*
use Symfony\Component\HttpKernel\Debug\ErrorHandler;
ErrorHandler::register();
*/
use Symfony\Component\HttpFoundation\RedirectResponse;
//Filters
$app->before(function() use ($app) {
@ -305,7 +294,7 @@ $app->before(function() use ($app) {
}
if (!file_exists($app['configuration_file'])) {
$app->abort(500, "Chamilo has not been installed"); //error 2
return new RedirectResponse(api_get_path(WEB_CODE_PATH).'install');
}
//$app['request']->getSession()->start();
});
@ -349,11 +338,6 @@ require_once $lib_path.'online.inc.php';
/* DATABASE CONNECTION */
// @todo: this shouldn't be done here. It should be stored correctly during installation.
if (empty($_configuration['statistics_database']) && $already_installed) {
$_configuration['statistics_database'] = $_configuration['main_database'];
}
global $database_connection;
// Connect to the server database and select the main chamilo database.
if (!($conn_return = @Database::connect(
@ -363,11 +347,11 @@ if (!($conn_return = @Database::connect(
'password' => $_configuration['db_password'],
'persistent' => $_configuration['db_persistent_connection'] // When $_configuration['db_persistent_connection'] is set, it is expected to be a boolean type.
)))) {
$app->abort(500, "Database is unavailable"); //error 3
//$app->abort(500, "Database is unavailable"); //error 3
}
if (!$_configuration['db_host']) {
$app->abort(500, "Database is unavailable"); //error 3
//$app->abort(500, "Database is unavailable"); //error 3
}
@ -393,7 +377,7 @@ if (!empty($_configuration['multiple_access_urls'])) {
Database::query("set session sql_mode='';");
if (!Database::select_db($_configuration['main_database'], $database_connection)) {
$app->abort(500, "Database is unavailable"); //error 3
//$app->abort(500, "Database is unavailable"); //error 3
}
/* Initialization of the default encodings */

@ -1003,11 +1003,11 @@ class Database {
*/
private static function format_table_name($database, $table) {
global $_configuration;
if ($_configuration['single_database']) {
/*if ($_configuration['single_database']) {
$table_name = '`'.$database.'`.`'.$table.'`';
} else {
} else {*/
$table_name = '`'.$database.$_configuration['db_glue'].$table.'`';
}
//}
return $table_name;
}

@ -1,222 +0,0 @@
<?php
use Monolog\Logger;
/**
* Since static constructors do not exist in php the line below serves as a
* substitute.
*
* Log is used by install which do not use autoload at the moment. If it becomes
* the case then the line below may/should be moved to the main autoloading
* function.
*/
Log::register_autoload();
/**
* Provides access to the main log - i.e. stderr - and allows to register events.
* It is a facade to the monolog library:
*
* Log::error('message');
* Log::warning('message');
* ...
*
*
* Note:
* This class uses a static approach which has the benefit of being simpler but do
* no allow as much freedom as using an object approche. Another approach could be
*
* Chamilo::log()->error('message');
* Chamilo::log()->warning('message');
*
* To somewhat alleviate this issue the user can register a different logger if hew
* wants.
*
* @license see /license.txt
* @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
*/
class Log
{
public static function register_autoload()
{
static $has_run = false;
if ($has_run) {
return true;
}
$directory = api_get_path(SYS_PATH) . 'vendor';
if (!class_exists('Doctrine\Common\ClassLoader', false)) {
require_once $directory . '/doctrine/common/lib/Doctrine/Common/ClassLoader.php';
}
$loader = new Doctrine\Common\ClassLoader('Monolog', $directory);
$loader->register();
$has_run = true;
}
/**
*
* @return \Monolog\Logger
*/
public static function default_logger()
{
$name = 'chamilo';
$result = new Logger($name);
$handler = new Monolog\Handler\StreamHandler('php://stderr');
$handler->setFormatter(new Monolog\Formatter\LineFormatter('[%datetime%] [%level_name%] [%channel%] %message%' . PHP_EOL, 'Y-m-d H:i:s')); //%context% %extra%
$result->pushHandler($handler);
return $result;
}
private static $logger = null;
/**
*
* @return \Monolog\Logger
*/
public static function logger()
{
if (empty(self::$logger)) {
self::$logger = self::default_logger();
}
return self::$logger;
}
public static function set_logger($value)
{
self::$logger = $value;
}
/**
* Returns the
* @param type $index
* @return type
*/
public static function frame($index)
{
$result = debug_backtrace();
return isset($result[$index]) ? $result[$index] : array();
}
public static function write($level, $message, $context = array())
{
/*
* Note that the same could be done with a monolog processor.
*/
if (!isset($context['file'])) {
$trace = debug_backtrace();
$trace = $trace[1];
$context['file'] = $trace['file'];
$context['line'] = $trace['line'];
}
$file = $context['file'];
$root = realpath(api_get_path(SYS_PATH));
$file = str_replace($root, '', $file);
$file = trim($file, DIRECTORY_SEPARATOR);
$line = $context['line'];
$line = str_pad($line, 4, ' ', STR_PAD_LEFT);
$message = "[$file:$line] " . $message;
self::logger()->addRecord($level, $message, $context);
}
/**
* Adds a log record at the DEBUG level.
*
* This method allows to have an easy ZF compatibility.
*
* @param string $message The log message
* @param array $context The log context
* @return Boolean Whether the record has been processed
*/
public static function debug($message, array $context = array())
{
return self::write(Logger::DEBUG, $message, $context);
}
/**
* Adds a log record at the INFO level.
*
* This method allows to have an easy ZF compatibility.
*
* @param string $message The log message
* @param array $context The log context
* @return Boolean Whether the record has been processed
*/
public static function info($message, array $context = array())
{
return self::write(Logger::INFO, self::message($message), $context);
}
/**
* Adds a log record at the INFO level.
*
* This method allows to have an easy ZF compatibility.
*
* @param string $message The log message
* @param array $context The log context
* @return Boolean Whether the record has been processed
*/
public static function notice($message, array $context = array())
{
return self::write(Logger::INFO, $message, $context);
}
/**
* Adds a log record at the WARNING level.
*
* This method allows to have an easy ZF compatibility.
*
* @param string $message The log message
* @param array $context The log context
* @return Boolean Whether the record has been processed
*/
public static function warning($message, array $context = array())
{
return self::write(Logger::WARNING, $message, $context);
}
/**
* Adds a log record at the ERROR level.
*
* This method allows to have an easy ZF compatibility.
*
* @param string $message The log message
* @param array $context The log context
* @return Boolean Whether the record has been processed
*/
public static function error($message, array $context = array())
{
return self::write(Logger::ERROR, $message, $context);
}
/**
* Adds a log record at the CRITICAL level.
*
* This method allows to have an easy ZF compatibility.
*
* @param string $message The log message
* @param array $context The log context
* @return Boolean Whether the record has been processed
*/
public static function crit($message, array $context = array())
{
return self::write(Logger::CRITICAL, $message, $context);
}
/**
* Adds a log record at the ALERT level.
*
* This method allows to have an easy ZF compatibility.
*
* @param string $message The log message
* @param array $context The log context
* @return Boolean Whether the record has been processed
*/
public static function alert($message, array $context = array())
{
return self::write(Logger::ALERT, $message, $context);
}
}

@ -1,16 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
/**
*
* @package chamilo.library
*/
/**
* Code
*/
require_once api_get_path(LIBRARY_PATH).'phpmailer/class.phpmailer.php';
// A regular expression for testing against valid email addresses.
// It should actually be revised for using the complete RFC3696 description:
// http://tools.ietf.org/html/rfc3696#section-3
//$regexp_rfc3696 = "^[0-9a-z_\.+-]+@(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z][0-9a-z-]*[0-9a-z]\.)+[a-z]{2,3})$"; // Deprecated, 13-OCT-2010.

@ -505,10 +505,10 @@ function api_get_path($path_type, $path = null) {
// Always load root_web modifications for multiple url features
global $_configuration;
//default $_configuration['root_web'] configuration
$root_web = $_configuration['root_web'];
$root_web = isset($_configuration['root_web']) ? $_configuration['root_web'] : null;
// Configuration data for already installed system.
$root_sys = $_configuration['root_sys'];
$root_sys = isset($_configuration['root_sys']) ? $_configuration['root_sys'] : realpath(dirname(__FILE__).'/../../../');
$load_new_config = false;
// To avoid that the api_get_access_url() function fails since global.inc.php also calls the main_api.lib.php
@ -520,20 +520,27 @@ function api_get_path($path_type, $path = null) {
$load_new_config = true;
}
}
if (!$is_this_function_initialized) {
global $_configuration;
$root_rel = $_configuration['url_append'];
$code_folder = $_configuration['code_append'];
$course_folder = $_configuration['course_folder'];
$root_rel = isset($_configuration['url_append']) ? $_configuration['url_append'] : null;
//$code_folder = $_configuration['code_append'];
$code_folder = 'main/';
$course_folder = isset($_configuration['course_folder']) ? $_configuration['course_folder'] : null;
// Support for the installation process.
// Developers might use the function api_get_path() directly or indirectly (this is difficult to be traced), at the moment when
// configuration has not been created yet. This is why this function should be upgraded to return correct results in this case.
if (defined('SYSTEM_INSTALLATION') && SYSTEM_INSTALLATION) {
if (($pos = strpos(($requested_page_rel = api_get_self()), 'main/install')) !== false) {
//if (defined('SYSTEM_INSTALLATION') && SYSTEM_INSTALLATION) {
if (empty($root_web)) {
$pos = strpos(($requested_page_rel = api_get_self()), 'index.php');
$pos_install = strpos(($requested_page_rel = api_get_self()), 'main/install');
if ($pos_install) {
$pos = $pos_install;
}
//if (() !== false) {
$root_rel = substr($requested_page_rel, 0, $pos);
// See http://www.mediawiki.org/wiki/Manual:$wgServer
$server_protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';
@ -552,15 +559,18 @@ function api_get_path($path_type, $path = null) {
$root_sys = str_replace('\\', '/', realpath(dirname(__FILE__).'/../../../')).'/';
$code_folder = 'main/';
$course_folder = 'courses/';
}
//}
// Here we give up, so we don't touch anything.
}
// Dealing with trailing slashes.
$root_web = api_add_trailing_slash($root_web);
$root_sys = api_add_trailing_slash($root_sys);
$root_rel = api_add_trailing_slash($root_rel);
$code_folder = api_add_trailing_slash($code_folder);
$course_folder = api_add_trailing_slash($course_folder);
// Web server base and system server base.
@ -578,6 +588,7 @@ function api_get_path($path_type, $path = null) {
$paths[REL_COURSE_PATH] = $root_rel.$course_folder;
$paths[REL_CODE_PATH] = $root_rel.$code_folder;
$paths[WEB_CODE_PATH] = $root_web.$code_folder;
$paths[SYS_CODE_PATH] = $root_sys.$code_folder;
// Now we can switch into api_get_path() "terminology".
@ -6618,7 +6629,6 @@ function api_mail_html($recipient_name, $recipient_email, $subject, $body, $send
$reply_to_mail = $extra_headers['reply_to']['mail'];
$reply_to_name = $extra_headers['reply_to']['name'];
}
//var_dump(array($reply_to_mail => $reply_to_name));
try {
$message = \Swift_Message::newInstance()
->setSubject($subject)

@ -13,11 +13,6 @@
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table user
--
DROP TABLE IF EXISTS user;
CREATE TABLE IF NOT EXISTS user (
user_id int unsigned NOT NULL auto_increment,
@ -52,9 +47,6 @@ CREATE TABLE IF NOT EXISTS user (
);
ALTER TABLE user ADD INDEX (status);
--
-- Dumping data for table user
--
/*!40000 ALTER TABLE user DISABLE KEYS */;
LOCK TABLES user WRITE;
@ -165,11 +157,11 @@ CREATE TABLE IF NOT EXISTS course (
);
ALTER TABLE course ADD INDEX idx_course_category_code (category_code);
ALTER TABLE course ADD INDEX idx_course_directory (directory(10));
--
-- Dumping data for table course
--
/*!40000 ALTER TABLE course DISABLE KEYS */;
LOCK TABLES course WRITE;
UNLOCK TABLES;
@ -489,8 +481,6 @@ CREATE TABLE IF NOT EXISTS session (
ALTER TABLE session ADD INDEX idx_id_coach (id_coach);
ALTER TABLE session ADD INDEX idx_id_session_admin_id (session_admin_id);
-- --------------------------------------------------------
--
-- Table structure for table session_rel_course
--
@ -505,7 +495,7 @@ CREATE TABLE IF NOT EXISTS session_rel_course (
ALTER TABLE session_rel_course ADD INDEX idx_session_rel_course_course_id (course_id);
-- --------------------------------------------------------
--
-- Table structure for table session_rel_course_rel_user
@ -525,7 +515,7 @@ CREATE TABLE IF NOT EXISTS session_rel_course_rel_user (
ALTER TABLE session_rel_course_rel_user ADD INDEX idx_session_rel_course_rel_user_id_user (id_user);
ALTER TABLE session_rel_course_rel_user ADD INDEX idx_session_rel_course_rel_user_course_id (course_id);
-- --------------------------------------------------------
--
-- Table structure for table session_rel_user
@ -1315,11 +1305,6 @@ CREATE TABLE IF NOT EXISTS shared_survey (
UNIQUE KEY id (survey_id)
);
-- --------------------------------------------------------
--
-- Table structure for shared_survey_question
--
DROP TABLE IF EXISTS shared_survey_question;
CREATE TABLE IF NOT EXISTS shared_survey_question (
@ -1335,11 +1320,6 @@ CREATE TABLE IF NOT EXISTS shared_survey_question (
PRIMARY KEY (question_id)
);
-- --------------------------------------------------------
--
-- Table structure for shared_survey_question_option
--
DROP TABLE IF EXISTS shared_survey_question_option;
CREATE TABLE IF NOT EXISTS shared_survey_question_option (
@ -1352,12 +1332,6 @@ CREATE TABLE IF NOT EXISTS shared_survey_question_option (
);
-- --------------------------------------------------------
--
-- Table structure for templates (User's FCKEditor templates)
--
DROP TABLE IF EXISTS templates;
CREATE TABLE IF NOT EXISTS templates (
id int NOT NULL auto_increment,
@ -1370,16 +1344,6 @@ CREATE TABLE IF NOT EXISTS templates (
PRIMARY KEY (id)
);
--
-- --------------------------------------------------------
--
-- Table structure of openid_association (keep info on openid servers)
--
DROP TABLE IF EXISTS openid_association;
CREATE TABLE IF NOT EXISTS openid_association (
id int NOT NULL auto_increment,
@ -1392,11 +1356,8 @@ CREATE TABLE IF NOT EXISTS openid_association (
created bigint NOT NULL,
PRIMARY KEY (id)
);
--
-- --------------------------------------------------------
--
-- Tables for gradebook
--
DROP TABLE IF EXISTS gradebook_category;
CREATE TABLE IF NOT EXISTS gradebook_category (
id int NOT NULL auto_increment,
@ -1570,12 +1531,6 @@ CREATE TABLE IF NOT EXISTS gradebook_linkeval_log (
PRIMARY KEY (id)
);
--
-- --------------------------------------------------------
--
-- Tables for the access URL feature
--
DROP TABLE IF EXISTS access_url;
CREATE TABLE IF NOT EXISTS access_url(
id int unsigned NOT NULL auto_increment,
@ -2409,18 +2364,6 @@ INSERT INTO system_template (title, comment, image, content) VALUES
</body>
');
--
-- --------------------------------------------------------
--
-- Tables for reservation
--
--
-- Table structure for table reservation category
--
DROP TABLE IF EXISTS reservation_category;
CREATE TABLE IF NOT EXISTS reservation_category (
id int unsigned NOT NULL auto_increment,
@ -2429,10 +2372,6 @@ CREATE TABLE IF NOT EXISTS reservation_category (
PRIMARY KEY ( id )
);
--
-- Table structure for table reservation category_rights
--
DROP TABLE IF EXISTS reservation_category_rights;
CREATE TABLE IF NOT EXISTS reservation_category_rights (
id int unsigned NOT NULL auto_increment,
@ -2442,9 +2381,6 @@ CREATE TABLE IF NOT EXISTS reservation_category_rights (
PRIMARY KEY ( id )
);
--
-- Table structure for table item reservation
--
DROP TABLE IF EXISTS reservation_item;
CREATE TABLE IF NOT EXISTS reservation_item (
id int unsigned NOT NULL auto_increment,
@ -2458,7 +2394,7 @@ CREATE TABLE IF NOT EXISTS reservation_item (
PRIMARY KEY ( id )
);
-- --------------------------------------------------------
--
-- Table structure for table reservation item_rights
@ -2475,7 +2411,7 @@ CREATE TABLE IF NOT EXISTS reservation_item_rights (
PRIMARY KEY ( item_id , class_id )
);
-- --------------------------------------------------------
--
-- Table structure for main reservation table
@ -2500,8 +2436,6 @@ CREATE TABLE IF NOT EXISTS reservation_main (
PRIMARY KEY ( id )
);
-- --------------------------------------------------------
--
-- Table structure for reservation subscription table
--
@ -2517,8 +2451,6 @@ CREATE TABLE IF NOT EXISTS reservation_subscription (
PRIMARY KEY ( dummy )
);
-- ---------------------------------------------------------
--
-- Table structure for table user_rel_user
--
@ -2566,15 +2498,15 @@ CREATE TABLE IF NOT EXISTS user_api_key (
);
ALTER TABLE user_api_key ADD INDEX idx_user_api_keys_user (user_id);
--
-- Table structure for table message
--
-- status: 0 read, 1 unread, 3 deleted, 5 pending invitation, 6 accepted invitation, 7 invitation denied
DROP TABLE IF EXISTS message;
CREATE TABLE IF NOT EXISTS message(
id bigint unsigned not null auto_increment,
user_sender_id int unsigned not null,
user_receiver_id int unsigned not null,
msg_status tinyint unsigned not null default 0, -- 0 read, 1 unread, 3 deleted, 5 pending invitation, 6 accepted invitation, 7 invitation denied
msg_status tinyint unsigned not null default 0,
send_date datetime not null default '0000-00-00 00:00:00',
title varchar(255) not null,
content text not null,
@ -2632,8 +2564,6 @@ ALTER TABLE gradebook_certificate ADD INDEX idx_gradebook_certificate_category_i
ALTER TABLE gradebook_certificate ADD INDEX idx_gradebook_certificate_user_id(user_id);
ALTER TABLE gradebook_certificate ADD INDEX idx_gradebook_certificate_category_id_user_id(cat_id,user_id);
--
-- Tables structure for search tool
--

@ -24,19 +24,21 @@ class iDatabase extends Database
static function select_db($database_name, $connection = null)
{
global $app;
if (self::is_logging()) {
Log::notice(__FUNCTION__ . ' ' . $database_name, Log::frame(1));
$app['monolog']->addInfo(__FUNCTION__ . ' ' . $database_name);
}
return parent::select_db($database_name, $connection);
}
static function query($query, $connection = null, $file = null, $line = null)
{
global $app;
if (self::is_logging()) {
$query = str_replace("\n", '', $query);
Log::notice(__FUNCTION__ . ' ' . $query, Log::frame(1));
//$query = str_replace("\n", '', $query);
//$app['monolog']->addInfo(__FUNCTION__ . ' ' . $query);
}
$result = parent::query($query, $connection, $file, $line);
if (empty($result)) {
@ -45,29 +47,9 @@ class iDatabase extends Database
$file = $caller['file'];
$line = $caller['line'];
$message = " sql: $query \n file: $file \n line:$line";
Log::error($message);
$app['monolog']->addError($message);
}
return $result;
}
/**
* Returns true if the table exists in the database, false otherwise.
* @param string $database
* @param string table
* @return boolean
*/
static
function table_exists($database, $table)
{
$tables = mysql_list_tables($db);
while (list ($temp) = mysql_fetch_array($tables)) {
if (strtolower($temp) == strtolower($table)) {
return true;
}
}
return false;
}
}

@ -25,23 +25,9 @@ define('FORM_FIELD_DISPLAY_LENGTH', 40);
define('DATABASE_FORM_FIELD_DISPLAY_LENGTH', 25);
define('MAX_FORM_FIELD_LENGTH', 80);
/* PHP VERSION CHECK */
// Including necessary libraries.
require_once '../inc/lib/main_api.lib.php';
api_check_php_version('../inc/');
/* INITIALIZATION SECTION */
ob_implicit_flush(true);
session_start();
//Composer autoloader
require_once __DIR__.'../../../vendor/autoload.php';
require_once '../inc/global.inc.php';
require_once 'install.lib.php';
require_once 'install.class.php';
require_once 'i_database.class.php';
// This value is use in database::query in order to prompt errors in the error log (course databases)
@ -126,13 +112,13 @@ if (!empty($_POST['old_version'])) {
require_once __DIR__.'/version.php';
// A protection measure for already installed systems.
if (is_already_installed_system()) {
// The system has already been installed, so block re-installation.
$global_error_code = 6;
require '../inc/global_error_message.inc.php';
die();
header("Location: ".api_get_path(WEB_PATH));
exit;
}
/* STEP 1 : INITIALIZES FORM VARIABLES IF IT IS THE FIRST VISIT */
@ -740,12 +726,13 @@ if (@$_POST['step2']) {
<div id="pleasewait" class="warning-message">'.get_lang('PleaseWaitThisCouldTakeAWhile').'</div>
</div>';
// Push the web server to send these strings before we start the real
// installation process
flush();
ob_flush();
$app['monolog']->addInfo("installType: $installType");
if ($installType == 'update') {
require_once api_get_path(LIBRARY_PATH).'fileUpload.lib.php';
@ -762,8 +749,7 @@ if (@$_POST['step2']) {
if (empty($my_old_version)) { $my_old_version = '1.8.6.2'; } //we guess
$_configuration['main_database'] = $dbNameForm;
//$urlAppendPath = get_config_param('urlAppend');
Log::notice('Starting migration process from old version: '.$my_old_version.' ('.time().')');
$app['monolog']->addInfo('Starting migration process from old version: '.$my_old_version.' ('.time().')');
if (isset($userPasswordCrypted)) {
if ($userPasswordCrypted == '1') {
@ -780,7 +766,7 @@ if (@$_POST['step2']) {
$singleDbForm = isset($_configuration['single_database']) ? $_configuration['single_database'] : false;
}
Log::notice("singledbForm: '$singleDbForm'");
$app['monolog']->addInfo("singledbForm: '$singleDbForm'");
Database::query("SET storage_engine = MYISAM;");
@ -791,6 +777,8 @@ if (@$_POST['step2']) {
Database::query("SET NAMES 'utf8';");
}
$app['monolog']->addInfo("my_old_version $my_old_version");
switch ($my_old_version) {
case '1.6':
case '1.6.0':

@ -1,16 +0,0 @@
<?php
/**
* Description of install
*
* @license see /license.txt
* @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
*/
class Install
{
static function message($message)
{
echo '<div>' . $message . '</div>';
}
}

@ -717,11 +717,11 @@ function parse_sql_queries($sql_text) {
//UTF8 fix see #5678
if (strpos(strtolower($this_sql_query), 'create table') === false) {
Database::query($this_sql_query);
iDatabase::query($this_sql_query);
} else {
//$this_sql_query .= substr($this_sql_query, strlen($this_sql_query), strlen($this_sql_query)-1);
$this_sql_query .= ' DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci ';
Database::query($this_sql_query);
iDatabase::query($this_sql_query);
}
}
}
@ -2134,9 +2134,6 @@ function compare_setting_values($current_value, $wanted_value) {
}
/* Executed only before create_course_tables() */
function drop_course_tables() {
$list = CourseManager::get_course_tables();
@ -2146,8 +2143,6 @@ function drop_course_tables() {
}
}
/**
* Creates all the necessary tables for a new course
*/

@ -95,7 +95,7 @@ if (!defined('CLI_INSTALLATION')) {
}
}
Database::select_db($mysqlMainDb) or die(Database::error());
iDatabase::select_db($mysqlMainDb) or die(Database::error());
$installation_settings = array();
$installation_settings['{ORGANISATIONNAME}'] = $institutionForm;
@ -116,18 +116,23 @@ $installation_settings['{HASHFUNCTIONMODE}'] = $encryptPassForm;
load_main_database($installation_settings);
$app['monolog']->addInfo("drop_course_tables");
drop_course_tables();
$app['monolog']->addInfo("create_course_tables");
create_course_tables();
$app['monolog']->addInfo("loading db_stats.sql");
load_database_script('db_stats.sql');
$track_countries_table = "track_c_countries";
$app['monolog']->addInfo("fill_track_countries_table");
fill_track_countries_table($track_countries_table);
load_database_script('db_user.sql');
$app['monolog']->addInfo("locking_settings");
locking_settings();
update_dir_and_files_permissions();

@ -10,7 +10,7 @@
*/
if (defined('SYSTEM_INSTALLATION')) {
Log::notice("Starting " . basename(__FILE__));
$app['monolog']->addInfo("Starting " . basename(__FILE__));
// Edit the configuration file
$file = file(api_get_path(CONFIGURATION_PATH) . 'configuration.php');

@ -18,8 +18,6 @@
* @todo use database library
*/
Log::notice('Entering file');
// Check if we come from index.php or update_courses.php - otherwise display error msg
if (defined('SYSTEM_INSTALLATION')) {

@ -17,7 +17,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
// Check if we come from index.php or update_courses.php - otherwise display error msg
if (defined('SYSTEM_INSTALLATION')) {
@ -186,7 +185,7 @@ if (defined('SYSTEM_INSTALLATION')) {
if (!$singleDbForm) { // otherwise just use the main one
Database::select_db($row_course['db_name']);
}
Log::notice('Course db ' . $row_course['db_name']);
$app['monolog']->addInfo('Course db ' . $row_course['db_name']);
foreach ($c_q_list as $query) {
if ($singleDbForm) {

@ -16,7 +16,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
// Check if we come from index.php or update_courses.php - otherwise display error msg
if (defined('SYSTEM_INSTALLATION')) {
@ -184,7 +183,6 @@ if (defined('SYSTEM_INSTALLATION')) {
if (!$singleDbForm) { //otherwise just use the main one
Database::select_db($row_course['db_name']);
}
Log::notice('Course db ' . $row_course['db_name']);
foreach ($c_q_list as $query) {
if ($singleDbForm) { //otherwise just use the main one

@ -16,7 +16,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
// Check if we come from index.php or update_courses.php - otherwise display error msg
if (defined('SYSTEM_INSTALLATION')) {
@ -184,7 +183,6 @@ if (defined('SYSTEM_INSTALLATION')) {
if (!$singleDbForm) { //otherwise just use the main one
Database::select_db($row_course['db_name']);
}
Log::notice('Course db ' . $row_course['db_name']);
foreach ($c_q_list as $query) {
if ($singleDbForm) {

@ -16,8 +16,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
$old_file_version = '1.8.4';
$new_file_version = '1.8.5';
@ -30,7 +28,7 @@ if (defined('SYSTEM_INSTALLATION')) {
'.get_lang('PleasGoBackToStep1').'.
<p><button type="submit" class="back" name="step1" value="&lt; '.get_lang('Back').'">'.get_lang('Back').'</button></p>
</td></tr></table></form></body></html>';
exit ();
exit();
}
$_configuration['db_glue'] = get_config_param('dbGlu');
@ -191,7 +189,7 @@ if (defined('SYSTEM_INSTALLATION')) {
if (!$singleDbForm) { //otherwise just use the main one
Database::select_db($row_course['db_name']);
}
Log::notice('Course db ' . $row_course['db_name']);
$app['monolog']->addInfo('Course db ' . $row_course['db_name']);
foreach ($c_q_list as $query) {
if ($singleDbForm) {

@ -17,7 +17,7 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
$app['monolog']->addInfo('Entering file');
$old_file_version = '1.8.5';
$new_file_version = '1.8.6';
@ -84,18 +84,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbNameForm) > 40) {
Log::error('Database name ' . $dbNameForm . ' is too long, skipping');
$app['monolog']->addError('Database name ' . $dbNameForm . ' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database ' . $dbNameForm . ' was not found, skipping');
$app['monolog']->addError('Database ' . $dbNameForm . ' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
foreach ($m_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbNameForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbNameForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbNameForm, executed: $query");
$app['monolog']->addInfo("In $dbNameForm, executed: $query");
}
}
}
@ -1023,18 +1023,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbStatsForm) > 40) {
Log::error('Database name ' . $dbStatsForm . ' is too long, skipping');
$app['monolog']->addError('Database name ' . $dbStatsForm . ' is too long, skipping');
} elseif (!in_array($dbStatsForm, $dblist)) {
Log::error('Database ' . $dbStatsForm . ' was not found, skipping');
$app['monolog']->addError('Database ' . $dbStatsForm . ' was not found, skipping');
} else {
iDatabase::select_db($dbStatsForm);
foreach ($s_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbStatsForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbStatsForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbStatsForm, executed: $query");
$app['monolog']->addInfo("In $dbStatsForm, executed: $query");
}
}
}
@ -1049,9 +1049,9 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbUserForm) > 40) {
Log::error('Database name ' . $dbUserForm . ' is too long, skipping');
$app['monolog']->addError('Database name ' . $dbUserForm . ' is too long, skipping');
} elseif (!in_array($dbUserForm, $dblist)) {
Log::error('Database ' . $dbUserForm . ' was not found, skipping');
$app['monolog']->addError('Database ' . $dbUserForm . ' was not found, skipping');
} else {
iDatabase::select_db($dbUserForm);
foreach ($u_q_list as $query) {
@ -1105,7 +1105,7 @@ if (defined('SYSTEM_INSTALLATION')) {
if (!$singleDbForm) { //otherwise just use the main one
iDatabase::select_db($row_course['db_name']);
}
Log::notice('Course db ' . $row_course['db_name']);
$app['monolog']->addInfo('Course db ' . $row_course['db_name']);
foreach ($c_q_list as $query) {
if ($singleDbForm) { //otherwise just use the main one
@ -1113,11 +1113,11 @@ if (defined('SYSTEM_INSTALLATION')) {
}
if ($only_test) {
Log::notice("iDatabase::query(" . $row_course['db_name'] . ",$query)");
$app['monolog']->addInfo("iDatabase::query(" . $row_course['db_name'] . ",$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In " . $row_course['db_name'] . ", executed: $query");
$app['monolog']->addInfo("In " . $row_course['db_name'] . ", executed: $query");
}
}
}

@ -16,7 +16,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
$old_file_version = '1.8.6';
$new_file_version = '1.8.6.1';
@ -83,18 +82,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif (!in_array($dbNameForm,$dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
foreach($m_q_list as $query) {
if ($only_test){
Log::notice("iDatabase::query($dbNameForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbNameForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbNameForm, executed: $query");
$app['monolog']->addInfo("In $dbNameForm, executed: $query");
}
}
}
@ -112,18 +111,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbStatsForm) > 40) {
Log::error('Database name '.$dbStatsForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbStatsForm.' is too long, skipping');
} elseif (!in_array($dbStatsForm,$dblist)) {
Log::error('Database '.$dbStatsForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbStatsForm.' was not found, skipping');
} else {
iDatabase::select_db($dbStatsForm);
foreach ($s_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbStatsForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbStatsForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbStatsForm, executed: $query");
$app['monolog']->addInfo("In $dbStatsForm, executed: $query");
}
}
}
@ -138,15 +137,15 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbUserForm) > 40) {
Log::error('Database name '.$dbUserForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbUserForm.' is too long, skipping');
} elseif (!in_array($dbUserForm, $dblist)) {
Log::error('Database '.$dbUserForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbUserForm.' was not found, skipping');
} else {
iDatabase::select_db($dbUserForm);
foreach ($u_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbUserForm,$query)");
Log::notice("In $dbUserForm, executed: $query");
$app['monolog']->addInfo("iDatabase::query($dbUserForm,$query)");
$app['monolog']->addInfo("In $dbUserForm, executed: $query");
} else {
$res = iDatabase::query($query);
}
@ -167,9 +166,9 @@ if (defined('SYSTEM_INSTALLATION')) {
if (count($c_q_list) > 0) {
// Get the courses list
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
$res = iDatabase::query("SELECT code,db_name,directory,course_language FROM course WHERE target_course_code IS NULL ORDER BY code");
@ -192,7 +191,7 @@ if (defined('SYSTEM_INSTALLATION')) {
if (!$singleDbForm) { //otherwise just use the main one
iDatabase::select_db($row_course['db_name']);
}
Log::notice('Course db ' . $row_course['db_name']);
$app['monolog']->addInfo('Course db ' . $row_course['db_name']);
foreach ($c_q_list as $query) {
if ($singleDbForm) {
@ -200,11 +199,11 @@ if (defined('SYSTEM_INSTALLATION')) {
}
if ($only_test) {
Log::notice("iDatabase::query(".$row_course['db_name'].",$query)");
$app['monolog']->addInfo("iDatabase::query(".$row_course['db_name'].",$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In ".$row_course['db_name'].", executed: $query");
$app['monolog']->addInfo("In ".$row_course['db_name'].", executed: $query");
}
}
}

@ -16,8 +16,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
$old_file_version = '1.8.6.1';
$new_file_version = '1.8.6.2';
@ -83,18 +81,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif (!in_array($dbNameForm,$dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
foreach ($m_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbNameForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbNameForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbNameForm, executed: $query");
$app['monolog']->addInfo("In $dbNameForm, executed: $query");
}
}
}
@ -113,7 +111,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$res = iDatabase::query($sql);
if ($res === false) {
Log::error('Could not query session course coaches table: '.iDatabase::error());
$app['monolog']->addError('Could not query session course coaches table: '.iDatabase::error());
} else {
// For each coach found, add him as a course coach in the
// session_rel_course_rel_user table
@ -135,7 +133,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$rs_coachs = iDatabase::query($sql_ins);
if ($rs_coachs === false) {
Log::error('Could not move course coach to new table: '.iDatabase::error());
$app['monolog']->addError('Could not move course coach to new table: '.iDatabase::error());
}
}
@ -147,7 +145,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$rs_chk_id1 = iDatabase::query($sql);
if ($rs_chk_id1 === false) {
Log::error('Could not query settings_current ids table: '.iDatabase::error());
$app['monolog']->addError('Could not query settings_current ids table: '.iDatabase::error());
} else {
$i = 1;
while ($row_id1 = iDatabase::fetch_array($rs_chk_id1)) {
@ -164,7 +162,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$rs_chk_id2 = iDatabase::query($sql);
if ($rs_chk_id2 === false) {
Log::error('Could not query settings_current ids table: '.iDatabase::error());
$app['monolog']->addError('Could not query settings_current ids table: '.iDatabase::error());
} else {
$i = 1;
while ($row_id2 = iDatabase::fetch_array($rs_chk_id2)) {
@ -188,18 +186,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif (!in_array($dbNameForm,$dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
foreach ($m_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbNameForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbNameForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbNameForm, executed: $query");
$app['monolog']->addInfo("In $dbNameForm, executed: $query");
}
}
}
@ -216,18 +214,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbStatsForm) > 40) {
Log::error('Database name '.$dbStatsForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbStatsForm.' is too long, skipping');
} elseif (!in_array($dbStatsForm, $dblist)) {
Log::error('Database '.$dbStatsForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbStatsForm.' was not found, skipping');
} else {
iDatabase::select_db($dbStatsForm);
foreach ($s_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbStatsForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbStatsForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbStatsForm, executed: $query");
$app['monolog']->addInfo("In $dbStatsForm, executed: $query");
}
}
}
@ -242,15 +240,15 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbUserForm) > 40) {
Log::error('Database name '.$dbUserForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbUserForm.' is too long, skipping');
} elseif (!in_array($dbUserForm,$dblist)) {
Log::error('Database '.$dbUserForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbUserForm.' was not found, skipping');
} else {
iDatabase::select_db($dbUserForm);
foreach ($u_q_list as $query) {
if ($only_test){
Log::notice("iDatabase::query($dbUserForm,$query)");
Log::notice("In $dbUserForm, executed: $query");
$app['monolog']->addInfo("iDatabase::query($dbUserForm,$query)");
$app['monolog']->addInfo("In $dbUserForm, executed: $query");
} else {
$res = iDatabase::query($query);
}
@ -271,9 +269,9 @@ if (defined('SYSTEM_INSTALLATION')) {
if (count($c_q_list) > 0) {
// Get the courses list
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
$res = iDatabase::query("SELECT code,db_name,directory,course_language FROM course WHERE target_course_code IS NULL ORDER BY code");
@ -296,7 +294,7 @@ if (defined('SYSTEM_INSTALLATION')) {
if (!$singleDbForm) { //otherwise just use the main one
iDatabase::select_db($row_course['db_name']);
}
Log::notice('Course db ' . $row_course['db_name']);
$app['monolog']->addInfo('Course db ' . $row_course['db_name']);
foreach ($c_q_list as $query) {
if ($singleDbForm) {
@ -304,11 +302,11 @@ if (defined('SYSTEM_INSTALLATION')) {
}
if ($only_test) {
Log::error("iDatabase::query(".$row_course['db_name'].",$query)");
$app['monolog']->addError("iDatabase::query(".$row_course['db_name'].",$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::error("In ".$row_course['db_name'].", executed: $query");
$app['monolog']->addError("In ".$row_course['db_name'].", executed: $query");
}
}
}
@ -326,7 +324,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$rs_sel = iDatabase::query($sql_sel);
if ($rs_sel === false) {
Log::error('Could not query course_description ids table: '.iDatabase::error());
$app['monolog']->addError('Could not query course_description ids table: '.iDatabase::error());
} else {
if (iDatabase::num_rows($rs_sel) > 0) {
while ($row_ids = iDatabase::fetch_array($rs_sel)) {

@ -17,7 +17,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
$old_file_version = '1.8.6.2';
$new_file_version = '1.8.7';
@ -84,21 +83,21 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbNameForm) > 40) {
Log::error('Database name ' . $dbNameForm . ' is too long, skipping');
$app['monolog']->addError('Database name ' . $dbNameForm . ' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database ' . $dbNameForm . ' was not found, skipping');
$app['monolog']->addError('Database ' . $dbNameForm . ' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
foreach ($m_q_list as $query) {
if ($only_test) {
Log::notice("Database::query($dbNameForm,$query)");
$app['monolog']->addInfo("Database::query($dbNameForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbNameForm, executed: $query");
$app['monolog']->addInfo("In $dbNameForm, executed: $query");
}
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
}
@ -107,13 +106,13 @@ if (defined('SYSTEM_INSTALLATION')) {
$query = "ALTER TABLE `" . $table . "` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;";
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
$query = "ALTER DATABASE `" . $dbNameForm . "` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;";
$res = Database::query($query);
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
}
@ -222,18 +221,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbNameForm) > 40) {
Log::error('Database name ' . $dbNameForm . ' is too long, skipping');
$app['monolog']->addError('Database name ' . $dbNameForm . ' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database ' . $dbNameForm . ' was not found, skipping');
$app['monolog']->addError('Database ' . $dbNameForm . ' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
foreach ($m_q_list as $query) {
if ($only_test) {
Log::notice("Database::query($dbNameForm,$query)");
$app['monolog']->addInfo("Database::query($dbNameForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbNameForm, executed: $query");
$app['monolog']->addInfo("In $dbNameForm, executed: $query");
}
}
}
@ -249,22 +248,22 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbStatsForm) > 40) {
Log::error('Database name ' . $dbStatsForm . ' is too long, skipping');
$app['monolog']->addError('Database name ' . $dbStatsForm . ' is too long, skipping');
} elseif (!in_array($dbStatsForm, $dblist)) {
Log::error('Database ' . $dbStatsForm . ' was not found, skipping');
$app['monolog']->addError('Database ' . $dbStatsForm . ' was not found, skipping');
} else {
iDatabase::select_db($dbStatsForm);
foreach ($s_q_list as $query) {
if ($only_test) {
Log::notice("Database::query($dbStatsForm,$query)");
$app['monolog']->addInfo("Database::query($dbStatsForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbStatsForm, executed: $query");
$app['monolog']->addInfo("In $dbStatsForm, executed: $query");
}
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
}
@ -273,13 +272,13 @@ if (defined('SYSTEM_INSTALLATION')) {
$query = "ALTER TABLE `" . $table . "` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;";
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
$query = "ALTER DATABASE `" . $dbStatsForm . "` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;";
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
@ -339,19 +338,19 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbUserForm) > 40) {
Log::error('Database name ' . $dbUserForm . ' is too long, skipping');
$app['monolog']->addError('Database name ' . $dbUserForm . ' is too long, skipping');
} elseif (!in_array($dbUserForm, $dblist)) {
Log::error('Database ' . $dbUserForm . ' was not found, skipping');
$app['monolog']->addError('Database ' . $dbUserForm . ' was not found, skipping');
} else {
iDatabase::select_db($dbUserForm);
foreach ($u_q_list as $query) {
if ($only_test) {
Log::notice("Database::query($dbUserForm,$query)");
Log::notice("In $dbUserForm, executed: $query");
$app['monolog']->addInfo("Database::query($dbUserForm,$query)");
$app['monolog']->addInfo("In $dbUserForm, executed: $query");
} else {
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
}
@ -360,13 +359,13 @@ if (defined('SYSTEM_INSTALLATION')) {
$query = "ALTER TABLE `" . $table . "` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;";
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
$query = "ALTER DATABASE `" . $dbUserForm . "` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;";
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
}
@ -383,9 +382,9 @@ if (defined('SYSTEM_INSTALLATION')) {
if (count($c_q_list) > 0) {
// Get the courses list
if (strlen($dbNameForm) > 40) {
Log::error('Database name ' . $dbNameForm . ' is too long, skipping');
$app['monolog']->addError('Database name ' . $dbNameForm . ' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database ' . $dbNameForm . ' was not found, skipping');
$app['monolog']->addError('Database ' . $dbNameForm . ' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
$res = iDatabase::query("SELECT code,db_name,directory,course_language FROM course WHERE target_course_code IS NULL ORDER BY code");
@ -417,14 +416,14 @@ if (defined('SYSTEM_INSTALLATION')) {
}
if ($only_test) {
Log::notice("Database::query(" . $row_course['db_name'] . ",$query)");
$app['monolog']->addInfo("Database::query(" . $row_course['db_name'] . ",$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In " . $row_course['db_name'] . ", executed: $query");
$app['monolog']->addInfo("In " . $row_course['db_name'] . ", executed: $query");
}
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
}
@ -435,13 +434,13 @@ if (defined('SYSTEM_INSTALLATION')) {
$query = "ALTER TABLE `" . $table . "` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;";
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
$query = "ALTER DATABASE `" . $row_course['db_name'] . "` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;";
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in ' . $query . ': ' . iDatabase::error());
$app['monolog']->addError('Error in ' . $query . ': ' . iDatabase::error());
}
}
$t_student_publication = $row_course['db_name'] . ".student_publication";
@ -457,7 +456,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$rs_insert_user = iDatabase::query($sql_insert_user);
if ($rs_insert_user === false) {
Log::error('Could not query insert_user_id table: ' . iDatabase::error());
$app['monolog']->addError('Could not query insert_user_id table: ' . iDatabase::error());
} else {
if (iDatabase::num_rows($rs_insert_user) > 0) {
while ($row_ids = iDatabase::fetch_array($rs_insert_user)) {
@ -517,9 +516,9 @@ if (defined('SYSTEM_INSTALLATION')) {
if (count($c_q_list) > 0) {
// Get the courses list
if (strlen($dbNameForm) > 40) {
Log::error('Database name ' . $dbNameForm . ' is too long, skipping');
$app['monolog']->addError('Database name ' . $dbNameForm . ' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database ' . $dbNameForm . ' was not found, skipping');
$app['monolog']->addError('Database ' . $dbNameForm . ' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
$res = iDatabase::query("SELECT code,db_name,directory,course_language FROM course WHERE target_course_code IS NULL");
@ -550,11 +549,11 @@ if (defined('SYSTEM_INSTALLATION')) {
$query = preg_replace('/^(UPDATE|ALTER TABLE|CREATE TABLE|DROP TABLE|INSERT INTO|DELETE FROM)\s+(\w*)(.*)$/', "$1 $prefix$2$3", $query);
}
if ($only_test) {
Log::notice("Database::query(" . $row['db_name'] . ",$query)");
$app['monolog']->addInfo("Database::query(" . $row['db_name'] . ",$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In " . $row['db_name'] . ", executed: $query");
$app['monolog']->addInfo("In " . $row['db_name'] . ", executed: $query");
}
}
}

@ -16,8 +16,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
$old_file_version = '1.8.7';
$new_file_version = '1.8.8';
@ -83,21 +81,21 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
foreach ($m_q_list as $query){
if ($only_test) {
Log::notice("iDatabase::query($dbNameForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbNameForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbNameForm, executed: $query");
$app['monolog']->addInfo("In $dbNameForm, executed: $query");
}
if ($res === false) {
Log::error('Error in '.$query.': '.iDatabase::error());
$app['monolog']->addError('Error in '.$query.': '.iDatabase::error());
}
}
}
@ -140,22 +138,22 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbStatsForm) > 40) {
Log::error('Database name '.$dbStatsForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbStatsForm.' is too long, skipping');
} elseif (!in_array($dbStatsForm, $dblist)){
Log::error('Database '.$dbStatsForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbStatsForm.' was not found, skipping');
} else {
iDatabase::select_db($dbStatsForm);
foreach ($s_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbStatsForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbStatsForm,$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In $dbStatsForm, executed: $query");
$app['monolog']->addInfo("In $dbStatsForm, executed: $query");
}
if ($res === false) {
Log::error('Error in '.$query.': '.iDatabase::error());
$app['monolog']->addError('Error in '.$query.': '.iDatabase::error());
}
}
}
@ -173,19 +171,19 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbUserForm) > 40) {
Log::error('Database name '.$dbUserForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbUserForm.' is too long, skipping');
} elseif (!in_array($dbUserForm,$dblist)) {
Log::error('Database '.$dbUserForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbUserForm.' was not found, skipping');
} else {
iDatabase::select_db($dbUserForm);
foreach ($u_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbUserForm,$query)");
Log::notice("In $dbUserForm, executed: $query");
$app['monolog']->addInfo("iDatabase::query($dbUserForm,$query)");
$app['monolog']->addInfo("In $dbUserForm, executed: $query");
} else {
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in '.$query.': '.iDatabase::error());
$app['monolog']->addError('Error in '.$query.': '.iDatabase::error());
}
}
}
@ -204,9 +202,9 @@ if (defined('SYSTEM_INSTALLATION')) {
if (count($c_q_list) > 0) {
// Get the courses list
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif(!in_array($dbNameForm, $dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
$res = iDatabase::query("SELECT code,db_name,directory,course_language FROM course WHERE target_course_code IS NULL ORDER BY code");
@ -229,7 +227,7 @@ if (defined('SYSTEM_INSTALLATION')) {
if (!$singleDbForm) { // otherwise just use the main one
iDatabase::select_db($row_course['db_name']);
}
Log::notice('Course db ' . $row_course['db_name']);
$app['monolog']->addInfo('Course db ' . $row_course['db_name']);
foreach ($c_q_list as $query) {
if ($singleDbForm) {
@ -237,14 +235,14 @@ if (defined('SYSTEM_INSTALLATION')) {
}
if ($only_test) {
Log::notice("iDatabase::query(".$row_course['db_name'].",$query)");
$app['monolog']->addInfo("iDatabase::query(".$row_course['db_name'].",$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In ".$row_course['db_name'].", executed: $query");
$app['monolog']->addInfo("In ".$row_course['db_name'].", executed: $query");
}
if ($res === false) {
Log::error('Error in '.$query.': '.iDatabase::error());
$app['monolog']->addError('Error in '.$query.': '.iDatabase::error());
}
}
}
@ -362,9 +360,9 @@ if (defined('SYSTEM_INSTALLATION')) {
if (count($c_q_list) > 0) {
// Get the courses list
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
$res = iDatabase::query("SELECT code,db_name,directory,course_language FROM course WHERE target_course_code IS NULL");
@ -391,11 +389,11 @@ if (defined('SYSTEM_INSTALLATION')) {
$query = preg_replace('/^(UPDATE|ALTER TABLE|CREATE TABLE|DROP TABLE|INSERT INTO|DELETE FROM)\s+(\w*)(.*)$/', "$1 $prefix$2$3", $query);
}
if ($only_test) {
Log::notice("iDatabase::query(".$row['db_name'].",$query)");
$app['monolog']->addInfo("iDatabase::query(".$row['db_name'].",$query)");
} else {
$res = iDatabase::query($query);
if ($log) {
Log::notice("In ".$row['db_name'].", executed: $query");
$app['monolog']->addInfo("In ".$row['db_name'].", executed: $query");
}
}
}

@ -16,7 +16,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
$old_file_version = '1.8.8';
$new_file_version = '1.9.0';
@ -83,18 +82,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
foreach ($m_q_list as $query){
if ($only_test) {
Log::notice("iDatabase::query($dbNameForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbNameForm,$query)");
} else {
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in '.$query.': '.iDatabase::error());
$app['monolog']->addError('Error in '.$query.': '.iDatabase::error());
}
}
}
@ -163,7 +162,7 @@ if (defined('SYSTEM_INSTALLATION')) {
}
}
Log::notice("#classes added $classes_added");
$app['monolog']->addInfo("#classes added $classes_added");
}
}
@ -177,19 +176,19 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbStatsForm) > 40) {
Log::error('Database name '.$dbStatsForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbStatsForm.' is too long, skipping');
} elseif (!in_array($dbStatsForm, $dblist)){
Log::error('Database '.$dbStatsForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbStatsForm.' was not found, skipping');
} else {
iDatabase::select_db($dbStatsForm);
foreach ($s_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbStatsForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbStatsForm,$query)");
} else {
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in '.$query.': '.iDatabase::error());
$app['monolog']->addError('Error in '.$query.': '.iDatabase::error());
}
}
}
@ -243,19 +242,19 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbUserForm) > 40) {
Log::error('Database name '.$dbUserForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbUserForm.' is too long, skipping');
} elseif (!in_array($dbUserForm,$dblist)) {
Log::error('Database '.$dbUserForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbUserForm.' was not found, skipping');
} else {
iDatabase::select_db($dbUserForm);
foreach ($u_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbUserForm,$query)");
Log::notice("In $dbUserForm, executed: $query");
$app['monolog']->addInfo("iDatabase::query($dbUserForm,$query)");
$app['monolog']->addInfo("In $dbUserForm, executed: $query");
} else {
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in '.$query.': '.iDatabase::error());
$app['monolog']->addError('Error in '.$query.': '.iDatabase::error());
}
}
}
@ -305,18 +304,18 @@ if (defined('SYSTEM_INSTALLATION')) {
$prefix = get_config_param('table_prefix');
}
Log::notice("Database prefix: '$prefix'");
$app['monolog']->addInfo("Database prefix: '$prefix'");
// Get the courses databases queries list (c_q_list)
$c_q_list = get_sql_file_contents('migrate-db-'.$old_file_version.'-'.$new_file_version.'-pre.sql', 'course');
Log::notice('Starting migration: '.$old_file_version.' - '.$new_file_version);
$app['monolog']->addInfo('Starting migration: '.$old_file_version.' - '.$new_file_version);
if (count($c_q_list) > 0) {
// Get the courses list
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif(!in_array($dbNameForm, $dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
$res = iDatabase::query("SELECT id, code, db_name, directory, course_language, id as real_id FROM course WHERE target_course_code IS NULL ORDER BY code");
@ -337,7 +336,7 @@ if (defined('SYSTEM_INSTALLATION')) {
if (!$singleDbForm) { // otherwise just use the main one
iDatabase::select_db($row_course['db_name']);
}
Log::notice('Course db ' . $row_course['db_name']);
$app['monolog']->addInfo('Course db ' . $row_course['db_name']);
// Now use the $c_q_list
foreach ($c_q_list as $query) {
@ -345,11 +344,11 @@ if (defined('SYSTEM_INSTALLATION')) {
$query = preg_replace('/^(UPDATE|ALTER TABLE|CREATE TABLE|DROP TABLE|INSERT INTO|DELETE FROM)\s+(\w*)(.*)$/', "$1 $prefix{$row_course['db_name']}_$2$3", $query);
}
if ($only_test) {
Log::notice("iDatabase::query(".$row_course['db_name'].",$query)");
$app['monolog']->addInfo("iDatabase::query(".$row_course['db_name'].",$query)");
} else {
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in '.$query.': '.iDatabase::error());
$app['monolog']->addError('Error in '.$query.': '.iDatabase::error());
}
}
}
@ -563,8 +562,7 @@ if (defined('SYSTEM_INSTALLATION')) {
'wiki_mailcue'
);
Log::notice('<<<------- Loading DB course '.$row_course['db_name'].' -------->>');
//Install::message('<<<------- Loading DB course '.$row_course['db_name'].' -------->>');
$app['monolog']->addInfo('<<<------- Loading DB course '.$row_course['db_name'].' -------->>');
$count = $old_count = 0;
foreach ($table_list as $table) {
@ -602,10 +600,10 @@ if (defined('SYSTEM_INSTALLATION')) {
$row = iDatabase::fetch_row($result);
$old_count = $row[0];
} else {
Log::error("Count(*) in table $old_table failed");
$app['monolog']->addError("Count(*) in table $old_table failed");
}
Log::notice("# rows in $old_table: $old_count");
$app['monolog']->addInfo("# rows in $old_table: $old_count");
$sql = "SELECT * FROM $old_table";
$result = iDatabase::query($sql);
@ -624,19 +622,19 @@ if (defined('SYSTEM_INSTALLATION')) {
$errors[$old_table][] = $row;
}
}
Log::notice("#rows inserted in $new_table: $count");
$app['monolog']->addInfo("#rows inserted in $new_table: $count");
if ($old_count != $count) {
Log::error("ERROR count of new and old table doesn't match: $old_count - $new_table");
Log::error("Check the results: ");
Log::error(print_r($errors, 1));
$app['monolog']->addError("ERROR count of new and old table doesn't match: $old_count - $new_table");
$app['monolog']->addError("Check the results: ");
$app['monolog']->addError(print_r($errors, 1));
error_log(print_r($errors, 1));
}
} else {
Log::error("Seems that the table $old_table doesn't exists ");
$app['monolog']->addError("Seems that the table $old_table doesn't exists ");
}
}
Log::notice('<<<------- end -------->>');
$app['monolog']->addInfo('<<<------- end -------->>');
}
}
}

@ -16,8 +16,6 @@
* - reorganise code into functions
* @todo use database library
*/
Log::notice('Entering file');
$old_file_version = '1.9.0';
$new_file_version = '1.10.0';
@ -83,18 +81,18 @@ if (defined('SYSTEM_INSTALLATION')) {
* without a database name
*/
if (strlen($dbNameForm) > 40) {
Log::error('Database name '.$dbNameForm.' is too long, skipping');
$app['monolog']->addError('Database name '.$dbNameForm.' is too long, skipping');
} elseif (!in_array($dbNameForm, $dblist)) {
Log::error('Database '.$dbNameForm.' was not found, skipping');
$app['monolog']->addError('Database '.$dbNameForm.' was not found, skipping');
} else {
iDatabase::select_db($dbNameForm);
foreach ($m_q_list as $query) {
if ($only_test) {
Log::notice("iDatabase::query($dbNameForm,$query)");
$app['monolog']->addInfo("iDatabase::query($dbNameForm,$query)");
} else {
$res = iDatabase::query($query);
if ($res === false) {
Log::error('Error in '.$query.': '.iDatabase::error());
$app['monolog']->addError('Error in '.$query.': '.iDatabase::error());
}
}
}

@ -12,7 +12,6 @@
/**
* Include mandatory libraries
*/
Log::notice('Entering file');
require_once api_get_path(LIBRARY_PATH).'document.lib.php';
require_once api_get_path(LIBRARY_PATH).'fileManage.lib.php'; //check_name_exists()
@ -81,7 +80,7 @@ while ($row = Database::fetch_array($res)) {
$courses_dir_list[$row['code']] = $row['directory'];
}
if ($loglevel > 0) { Log::notice("Tables created/deleted for all courses"); }
if ($loglevel > 0) { $app['monolog']->addInfo("Tables created/deleted for all courses"); }
/**
* The migration needs to take all data from the original learnpath tables and add them to the new
@ -91,12 +90,12 @@ if ($loglevel > 0) { Log::notice("Tables created/deleted for all courses"); }
// Test only one course
foreach ($courses_id_full_table_prefix_list as $course_code => $db) {
if (strlen($courses_id_list[$course_code]) > 40) {
Log::error('Database '.$courses_id_list[$course_code].' is too long, skipping');
$app['monolog']->addError('Database '.$courses_id_list[$course_code].' is too long, skipping');
continue;
}
$incoherences = 0;
if ($loglevel > 0) { Log::notice("Now starting migration of learnpath tables from $db database..."); }
if ($loglevel > 0) { $app['monolog']->addInfo("Now starting migration of learnpath tables from $db database..."); }
$lp_doc = $db.TABLE_DOCUMENT;
$lp_main = $db.TABLE_LEARNPATH_MAIN;
$lp_ids = array();
@ -119,13 +118,13 @@ foreach ($courses_id_full_table_prefix_list as $course_code => $db) {
$sql_test = "SELECT * FROM $my_new_lp";
$res_test = Database::query($sql_test);
$sql_lp = "SELECT * FROM $lp_main";
if ($loglevel > 1) { Log::notice("$sql_lp"); }
if ($loglevel > 1) { $app['monolog']->addInfo("$sql_lp"); }
$res_lp = Database::query($sql_lp);
if (!$res_lp or !$res_test) {
if ($loglevel > 1) {
Log::error("+++Problem querying DB $lp_main+++ skipping (".Database::error().")");
$app['monolog']->addError("+++Problem querying DB $lp_main+++ skipping (".Database::error().")");
if (!$res_test) {
Log::error("This might be due to no existing table in the destination course");
$app['monolog']->addError("This might be due to no existing table in the destination course");
}
}
continue;
@ -280,13 +279,13 @@ foreach ($courses_id_full_table_prefix_list as $course_code => $db) {
case 'c':
// chapter-type prereq
$prereq_id = $lp_chap_items[$row['prereq_id']];
if (empty($prereq_id) && $loglevel > 1) { Log::error("Could not find prereq chapter ".$row['prereq_id']); }
if (empty($prereq_id) && $loglevel > 1) { $app['monolog']->addError("Could not find prereq chapter ".$row['prereq_id']); }
break;
case 'i':
default:
// item type prereq
$prereq_id = $lp_items[$parent_lps[$row['chapter_id']]][$row['prereq_id']];
if (empty($prereq_id) && $loglevel > 1) { Log::error("Could not find prereq item ".$row['prereq_id']); }
if (empty($prereq_id) && $loglevel > 1) { $app['monolog']->addError("Could not find prereq item ".$row['prereq_id']); }
break;
}
}
@ -513,7 +512,7 @@ foreach ($courses_id_full_table_prefix_list as $course_code => $db) {
$sql_tool_upd = "UPDATE $tbl_tool " .
"SET link='newscorm/lp_controller.php?action=view&lp_id=$new_lp_id' " .
"WHERE id = ".$row_tool['id'];
Log::notice('New LP - Migration - Updating tool table: '.$sql_tool_upd);
$app['monolog']->addInfo('New LP - Migration - Updating tool table: '.$sql_tool_upd);
// Make sure there is a way of retrieving which links were updated (to revert)
fwrite($fh,$sql_tool_upd." AND link ='$link'");
fwrite($fh_revert, "UPDATE $tbl_tool SET link='$link' WHERE id=".$row_tool['id']." AND link ='newscorm/lp_controller.php?action=view&lp_id=$new_lp_id';\n");
@ -534,7 +533,7 @@ foreach ($courses_id_full_table_prefix_list as $course_code => $db) {
if (!empty($matches[3]) && (strtolower(substr($matches[3], -15)) == 'imsmanifest.xml') && !is_file(realpath(urldecode($matches[3])))) {
//echo "Removing link $link from tools<br />";
$sql_tool_upd = "DELETE FROM $tbl_tool WHERE id = ".$row_tool['id'];
Log::notice('New LP - Migration - Updating tool table (dead link): '.$sql_tool_upd);
$app['monolog']->addInfo('New LP - Migration - Updating tool table (dead link): '.$sql_tool_upd);
// Make sure there is a way of retrieving which links were updated (to revert)
fwrite($fh, $sql_tool_upd." AND link ='$link'");
fwrite($fh_revert, "INSERT INTO $tbl_tool (link) VALUES ('$link');\n");
@ -579,7 +578,7 @@ foreach ($courses_id_full_table_prefix_list as $course_code => $db) {
}
}
if ($loglevel > 0) { Log::notice("Done!".$msg); }
if ($loglevel > 0) { $app['monolog']->addInfo("Done!".$msg); }
//flush();
//ob_flush();
}
@ -602,7 +601,7 @@ fwrite($fh_res, "-- Recording resulting course homepages links changes for SCORM
* The migration needs to take all data from the scorm.scorm_main and scorm.scorm_sco_data tables
* and add them to the new lp, lp_view, lp_item and lp_item_view tables.
*/
if ($loglevel > 0) { Log::notice("Now starting migration of scorm tables from global SCORM database"); }
if ($loglevel > 0) { $app['monolog']->addInfo("Now starting migration of scorm tables from global SCORM database"); }
$scorm_main = $dbScormForm.'.'.TABLE_SCORM_MAIN;
$scorm_item = $dbScormForm.'.'.TABLE_SCORM_SCO_DATA;
@ -619,7 +618,7 @@ $scorm_lp_paths = array();
Database::select_db($dbNameForm);
$course_main = TABLE_MAIN_COURSE;
$sql_crs = "SELECT * FROM $course_main WHERE target_course_code IS NULL";
if ($loglevel > 0) { Log::notice("$sql_crs"); }
if ($loglevel > 0) { $app['monolog']->addInfo("$sql_crs"); }
$res_crs = Database::query($sql_crs);
$num = Database::num_rows($res_crs);
@ -629,7 +628,7 @@ $course_code_swap = '';
$scormdocuments_lps = array();
while ($course_row = Database::fetch_array($res_crs)) {
if ($loglevel > 0) { Log::notice("Now dealing with course ".$course_row['code']."..."); }
if ($loglevel > 0) { $app['monolog']->addInfo("Now dealing with course ".$course_row['code']."..."); }
// Check the validity of this new course
$my_course_code = $course_row['code'];
@ -637,21 +636,21 @@ while ($course_row = Database::fetch_array($res_crs)) {
//$scormdocuments_lps = array();
$db_name = $courses_id_full_table_prefix_list[$my_course_code];
if (strlen($courses_id_list[$course_code]) > 40) {
Log::notice('Database '.$courses_id_list[$course_code].' is too long, skipping');
$app['monolog']->addInfo('Database '.$courses_id_list[$course_code].' is too long, skipping');
continue;
}
//echo "Now processing database $db_name<br />";
$tblscodoc = $db_name.TABLE_SCORMDOC;
$sql_scodoc = "SELECT path FROM $tblscodoc WHERE path IS NOT NULL AND path != ''";
if ($loglevel > 1) { Log::notice("$sql_scodoc"); }
if ($loglevel > 1) { $app['monolog']->addInfo("$sql_scodoc"); }
$res_scodoc = Database::query($sql_scodoc);
while ($row_scodoc = Database::fetch_array($res_scodoc)) {
// Check if there's more than one slash in total
if (strpos($row_scodoc['path'], '/', 1) === false) {
$tmp_path = $row_scodoc['path'];
if ($loglevel > 1) { Log::notice("++Now opening $tmp_path"); }
if ($loglevel > 1) { $app['monolog']->addInfo("++Now opening $tmp_path"); }
// Add a prefixing slash if there is none
if (substr($tmp_path, 0, 1) != '/') {
@ -672,17 +671,17 @@ while ($course_row = Database::fetch_array($res_crs)) {
// Avoid if contentTitle is not the name of an existing directory
} elseif (!is_file($courses_dir."/imsmanifest.xml")) {
// If the imsmanifest file was not found there
if ($loglevel > 2) { Log::error(" !!imsmanifest.xml not found at scormdocument's $courses_dir/imsmanifest.xml, skipping"); }
if ($loglevel > 2) { $app['monolog']->addError(" !!imsmanifest.xml not found at scormdocument's $courses_dir/imsmanifest.xml, skipping"); }
// Try subdirectories on one level depth
if ($loglevel > 2) { Log::notice(" Trying subdirectories..."); }
if ($loglevel > 2) { $app['monolog']->addInfo(" Trying subdirectories..."); }
$dh = opendir($courses_dir);
while ($entry = readdir($dh)) {
if (substr($entry, 0, 1) != '.') {
if (is_dir($courses_dir."/".$entry)) {
if (is_file($courses_dir."/".$entry."/imsmanifest.xml")) {
if ($loglevel > 2) { Log::notice(". .. and found $courses_dir/$entry/imsmanifest.xml!"); }
if ($loglevel > 2) { $app['monolog']->addInfo(". .. and found $courses_dir/$entry/imsmanifest.xml!"); }
if (!in_array($tmp_path."/".$entry."/imsmanifest.xml",$scormdocuments_lps)) {
if ($loglevel > 2){ Log::notice(" Recording.<br />"); }
if ($loglevel > 2){ $app['monolog']->addInfo(" Recording.<br />"); }
$scormdocuments_lps[] = $tmp_path."/".$entry;
}
}
@ -690,7 +689,7 @@ while ($course_row = Database::fetch_array($res_crs)) {
}
}
} else {
if ($loglevel > 2) { Log::notice(" Found scormdocument $tmp_path in ".$sys_course_path.$courses_dir_list[$my_course_code]."/scorm, treating it."); }
if ($loglevel > 2) { $app['monolog']->addInfo(" Found scormdocument $tmp_path in ".$sys_course_path.$courses_dir_list[$my_course_code]."/scorm, treating it."); }
$scormdocuments_lps[] = $tmp_path;
}
}
@ -736,9 +735,9 @@ while ($course_row = Database::fetch_array($res_crs)) {
//echo "Checking if manifest exists in ".$courses_dir.$entry."/imsmanifest.xml<br />";
if (is_file($courses_dir.$entry."/imsmanifest.xml")) {
//echo "found $courses_dir/$entry/imsmanifest.xml!<br />";
if ($loglevel > 2) { Log::notice(". .. and found $courses_dir/$entry/imsmanifest.xml!"); }
if ($loglevel > 2) { $app['monolog']->addInfo(". .. and found $courses_dir/$entry/imsmanifest.xml!"); }
if (!in_array($entry."/imsmanifest.xml", $scormdocuments_lps)) {
if ($loglevel > 2) { Log::notice(" Recording.<br />"); }
if ($loglevel > 2) { $app['monolog']->addInfo(" Recording.<br />"); }
//echo "Recording $entry<br />";
$scormdocuments_lps[] = $entry;
}
@ -756,7 +755,7 @@ while ($course_row = Database::fetch_array($res_crs)) {
$scorms[$my_course_code] = array();
$sql_paths = "SELECT * FROM $scorm_main WHERE dokeosCourse = '".$my_course_code."'";
if ($loglevel > 0) { Log::notice("$sql_paths"); }
if ($loglevel > 0) { $app['monolog']->addInfo("$sql_paths"); }
$res_paths = Database::query($sql_paths);
$num = Database::num_rows($res_paths);
while ($scorm_row = Database::fetch_array($res_paths)) {
@ -769,16 +768,16 @@ while ($course_row = Database::fetch_array($res_crs)) {
if ($my_path == '/') {
$my_path = '';
}
if ($loglevel > 1) { Log::notice("++++Now opening $my_path"); }
if ($loglevel > 1) { $app['monolog']->addInfo("++++Now opening $my_path"); }
if (!is_dir($courses_dir = $sys_course_path.''.$courses_dir_list[$my_course_code].'/scorm'.$my_path)) {
if ($loglevel > 1) { Log::notice("Path $my_content_id: $my_path doesn't exist in ".$sys_course_path.$courses_dir_list[$my_course_code]."/scorm, skipping"); }
if ($loglevel > 1) { $app['monolog']->addInfo("Path $my_content_id: $my_path doesn't exist in ".$sys_course_path.$courses_dir_list[$my_course_code]."/scorm, skipping"); }
continue;
// Avoid if contentTitle is not the name of an existing directory
} elseif (!is_file($sys_course_path.$courses_dir_list[$my_course_code].'/scorm'.$my_path."/imsmanifest.xml")) {
if ($loglevel > 1) { Log::notice("!!imsmanifest.xml not found at ".$sys_course_path.$courses_dir_list[$my_course_code].'/scorm'.$my_path."/imsmanifest.xml, skipping"); }
if ($loglevel > 1) { $app['monolog']->addInfo("!!imsmanifest.xml not found at ".$sys_course_path.$courses_dir_list[$my_course_code].'/scorm'.$my_path."/imsmanifest.xml, skipping"); }
continue;
} else {
if ($loglevel > 1) { Log::notice("Found $my_path in ".$sys_course_path.$courses_dir_list[$my_course_code]."/scorm".$mypath."/imsmanifest.xml, keeping it."); }
if ($loglevel > 1) { $app['monolog']->addInfo("Found $my_path in ".$sys_course_path.$courses_dir_list[$my_course_code]."/scorm".$mypath."/imsmanifest.xml, keeping it."); }
$scorms[$my_course_code][$my_path] = $my_content_id;
}
}
@ -787,7 +786,7 @@ while ($course_row = Database::fetch_array($res_crs)) {
foreach ($scormdocuments_lps as $path) {
if (!in_array($path,array_keys($scorms[$my_course_code]))) {
// Add it (-1 means no ID)
if ($loglevel > 1) { Log::notice("** Scormdocument path $path wasn't recorded yet. Added."); }
if ($loglevel > 1) { $app['monolog']->addInfo("** Scormdocument path $path wasn't recorded yet. Added."); }
$scorms[$my_course_code][$path] = -1;
}
}
@ -801,7 +800,7 @@ $my_count = 0;
foreach ($scorms as $mycourse => $my_paths) {
$my_count += count($my_paths);
}
if ($loglevel > 0) { Log::notice("---- Scorms array now contains ".$mycount." paths to migrate. Starting migration..."); }
if ($loglevel > 0) { $app['monolog']->addInfo("---- Scorms array now contains ".$mycount." paths to migrate. Starting migration..."); }
/**
* Looping through the SCO_MAIN table for SCORM learnpath attached to courses
@ -813,9 +812,9 @@ foreach ($scorms as $my_course_code => $paths_list) {
$course_lp_done = array();
$db_name = $courses_id_full_table_prefix_list[$my_course_code];
foreach ($paths_list as $my_path => $old_id) {
if ($loglevel > 1) { Log::notice("Migrating lp $my_path from course $my_course_code..."); }
if ($loglevel > 1) { $app['monolog']->addInfo("Migrating lp $my_path from course $my_course_code..."); }
$i_count ++;
//Log::notice('New LP - Migration script - Content '.$i_count.' on '.$num.' (course '.$scorm['dokeosCourse'].')');
//$app['monolog']->addInfo('New LP - Migration script - Content '.$i_count.' on '.$num.' (course '.$scorm['dokeosCourse'].')');
// Check whether there is no embedded learnpaths into other learnpaths (one root-level and another embedded)
$embedded = false;
foreach ($course_lp_done as $tmp_lp) {
@ -826,7 +825,7 @@ foreach ($scorms as $my_course_code => $paths_list) {
// Let it be
} else {
// This lp is embedded inside another lp who's imsmanifest exists, so prevent from parsing
if ($loglevel > 1) { Log::notice("LP $my_path is embedded into $tmp_lp, ignoring..."); }
if ($loglevel > 1) { $app['monolog']->addInfo("LP $my_path is embedded into $tmp_lp, ignoring..."); }
$embedded = true;
continue;
}
@ -840,7 +839,7 @@ foreach ($scorms as $my_course_code => $paths_list) {
$my_path = $my_path;
$my_name = basename($my_path);
if ($loglevel > 1) { Log::notice("Try importing LP $my_path from imsmanifest first as it is more reliable"); }
if ($loglevel > 1) { $app['monolog']->addInfo("Try importing LP $my_path from imsmanifest first as it is more reliable"); }
// Setup the ims path (path to the imsmanifest.xml file)
//echo "Looking for course with code ".$lp_course_code[$my_content_id]." (using $my_content_id)<br />\n";
@ -855,7 +854,7 @@ foreach ($scorms as $my_course_code => $paths_list) {
$oScorm = new scorm();
// Check whether imsmanifest.xml exists at this location. If not, ignore the imsmanifest.
// That should have been done before already, now.
if ($loglevel > 1) { Log::notice("Found imsmanifest ($ims), importing..."); }
if ($loglevel > 1) { $app['monolog']->addInfo("Found imsmanifest ($ims), importing..."); }
if (!empty($sco_middle_path)) { $oScorm->subdir = $sco_middle_path; } //this sets the subdir for the scorm package inside the scorm dir
// Parse manifest file
$manifest = $oScorm->parse_manifest($ims);
@ -864,7 +863,7 @@ foreach ($scorms as $my_course_code => $paths_list) {
//TODO: Add code to update the path in that new lp created, as it probably uses / where
// $sco_path_temp should be used...
$lp_ids[$my_content_id] = $oScorm->lp_id; // Contains the old LP ID => the new LP ID
if ($loglevel > 1) { Log::notice(" @@@ Created scorm lp ".$oScorm->lp_id." from imsmanifest [".$ims."] in course $my_course_code"); }
if ($loglevel > 1) { $app['monolog']->addInfo(" @@@ Created scorm lp ".$oScorm->lp_id." from imsmanifest [".$ims."] in course $my_course_code"); }
$lp_course[$my_content_id] = $courses_id_list[$my_course_code]; // Contains the old learnpath ID => the course DB name
$lp_course_code[$my_content_id] = $my_course_code;
$max_dsp_lp++;
@ -945,7 +944,7 @@ foreach ($scorms as $my_course_code => $paths_list) {
} else {
//echo "Could not find $ims... Proceeding from database...(line ".__LINE__.")<br />";
if ($loglevel > 1) { Log::notice("This is a normal SCORM path"); }
if ($loglevel > 1) { $app['monolog']->addInfo("This is a normal SCORM path"); }
$scorm_lp_paths[$my_content_id]['path'] = $my_path;
//$scorm_lp_paths[$my_content_id]['ims'] = '';
$table_name = $db_name.$new_lp;
@ -972,7 +971,7 @@ foreach ($scorms as $my_course_code => $paths_list) {
"'Unknown'," .
"'scorm_api.php'" .
")";
if ($loglevel > 1) { Log::notice("$sql_ins"); }
if ($loglevel > 1) { $app['monolog']->addInfo("$sql_ins"); }
$sql_res = Database::query($sql_ins);
$in_id = Database::insert_id();
if (!$in_id) die('Could not insert scorm lp: '.$sql_ins);
@ -994,7 +993,7 @@ foreach ($scorms as $my_course_code => $paths_list) {
// Check whether imsmanifest.xml exists at this location. If not, ignore the imsmanifest.
// That should have been done before already, now.
if (!is_file($scorm_lp_paths[$my_content_id]['ims'])) {
if ($loglevel > 1) { Log::notice("!!! imsmanifest file not found at ".$scorm_lp_paths[$my_content_id]['ims'].' for old lp '.$my_content_id.' and new '.$lp_ids[$my_content_id]); }
if ($loglevel > 1) { $app['monolog']->addInfo("!!! imsmanifest file not found at ".$scorm_lp_paths[$my_content_id]['ims'].' for old lp '.$my_content_id.' and new '.$lp_ids[$my_content_id]); }
$manifest = false;
} else {
//echo "Parsing ".$scorm_lp_paths[$my_content_id]['ims']."<br />\n";
@ -1009,7 +1008,7 @@ foreach ($scorms as $my_course_code => $paths_list) {
"SET name = '$my_lp_title', " .
"default_encoding = '".strtoupper($oScorm->manifest_encoding)."' " .
"WHERE id = ".$lp_ids[$my_content_id];
if ($loglevel > 1) { Log::notice("Updating title and encoding: ".$my_sql); }
if ($loglevel > 1) { $app['monolog']->addInfo("Updating title and encoding: ".$my_sql); }
$my_res = Database::query($my_sql);
}
}
@ -1280,5 +1279,5 @@ foreach ($scorms as $my_course_code => $paths_list) {
fclose($fh);
fclose($fh_revert);
fclose($fh_res);
if ($loglevel > 0) { Log::notice("All done!"); }
if ($loglevel > 0) { $app['monolog']->addInfo("All done!"); }
//echo "</body></html>";

@ -18,11 +18,9 @@
*
* @package chamilo.install
*/
Log::notice('Entering file');
function insert_db($db_name, $folder_name, $text)
{
// TODO: The (global?) variable $_course has not been declared/initialized.
$_course['dbName'] = $db_name;
@ -37,7 +35,7 @@ if (defined('SYSTEM_INSTALLATION')) {
Database::select_db($dbNameForm);
$db_name = $dbNameForm;
$sql = "SELECT * FROM course";
Log::notice('Getting courses for files updates: ' . $sql);
$app['monolog']->addInfo('Getting courses for files updates: ' . $sql);
$result = Database::query($sql);
while ($courses_directories = Database::fetch_array($result)) {
@ -47,13 +45,13 @@ if (defined('SYSTEM_INSTALLATION')) {
$origCRS = $updatePath . 'courses/' . $courses_directories["directory"];
if (!is_dir($origCRS)) {
Log::error('Directory ' . $origCRS . ' does not exist. Skipping.');
$app['monolog']->addError('Directory ' . $origCRS . ' does not exist. Skipping.');
continue;
}
// Move everything to the new hierarchy (from old path to new path)
Log::notice('Renaming ' . $origCRS . ' to ' . $sys_course_path . $courses_directories["directory"]);
$app['monolog']->addInfo('Renaming ' . $origCRS . ' to ' . $sys_course_path . $courses_directories["directory"]);
rename($origCRS, $sys_course_path . $courses_directories["directory"]);
Log::notice('Creating dirs in ' . $currentCourseRepositorySys);
$app['monolog']->addInfo('Creating dirs in ' . $currentCourseRepositorySys);
// FOLDER DOCUMENT
// document > audio
@ -116,11 +114,11 @@ if (defined('SYSTEM_INSTALLATION')) {
unlink($currentCourseRepositorySys . 'index.php');
$fp = @ fopen($currentCourseRepositorySys . 'index.php', 'w');
if ($fp) {
Log::error('Writing redirection file in ' . $currentCourseRepositorySys . 'index.php');
$app['monolog']->addError('Writing redirection file in ' . $currentCourseRepositorySys . 'index.php');
fwrite($fp, $content);
fclose($fp);
} else {
Log::error('Could not open file ' . $currentCourseRepositorySys . 'index.php');
$app['monolog']->addError('Could not open file ' . $currentCourseRepositorySys . 'index.php');
}
}
@ -135,17 +133,16 @@ if (defined('SYSTEM_INSTALLATION')) {
copy($updatePath . 'claroline/inc/conf/mail.conf.php', $pathForm . 'main/inc/conf/mail.conf.php');
copy($updatePath . 'claroline/inc/conf/profile.conf.inc.php', $pathForm . 'main/inc/conf/profile.conf.php');
Log::notice('Renaming ' . $updatePath . 'claroline/upload/users to ' . $pathForm . 'main/upload/users');
$app['monolog']->addInfo('Renaming ' . $updatePath . 'claroline/upload/users to ' . $pathForm . 'main/upload/users');
rename($updatePath . 'claroline/upload/users', $pathForm . 'main/upload/users');
Log::notice('Renaming ' . $updatePath . 'claroline/upload/audio to ' . $pathForm . 'main/upload/audio');
$app['monolog']->addInfo('Renaming ' . $updatePath . 'claroline/upload/audio to ' . $pathForm . 'main/upload/audio');
rename($updatePath . 'claroline/upload/audio', $pathForm . 'main/upload/audio');
Log::notice('Renaming ' . $updatePath . 'claroline/upload/images to ' . $pathForm . 'main/upload/images');
$app['monolog']->addInfo('Renaming ' . $updatePath . 'claroline/upload/images to ' . $pathForm . 'main/upload/images');
rename($updatePath . 'claroline/upload/images', $pathForm . 'main/upload/images');
Log::notice('Renaming ' . $updatePath . 'claroline/upload/linked_files to ' . $pathForm . 'main/upload/linked_files');
$app['monolog']->addInfo('Renaming ' . $updatePath . 'claroline/upload/linked_files to ' . $pathForm . 'main/upload/linked_files');
rename($updatePath . 'claroline/upload/linked_files', $pathForm . 'main/upload/linked_files');
Log::notice('Renaming ' . $updatePath . 'claroline/upload/video to ' . $pathForm . 'main/upload/video');
$app['monolog']->addInfo('Renaming ' . $updatePath . 'claroline/upload/video to ' . $pathForm . 'main/upload/video');
rename($updatePath . 'claroline/upload/video', $pathForm . 'main/upload/video');
} else {
echo 'You are not allowed here !' . __FILE__;
}

@ -17,8 +17,6 @@
* @package chamilo.install
*/
Log::notice('Entering file');
if (defined('SYSTEM_INSTALLATION')) {
// Edit the configuration file

@ -16,9 +16,6 @@
* version be available until the end of the installation.
* @package chamilo.install
*/
Log::notice('Entering file');
if (defined('SYSTEM_INSTALLATION')) {
// Edit the configuration file
@ -50,9 +47,6 @@ if (defined('SYSTEM_INSTALLATION')) {
}
fwrite($fh, '?>');
fclose($fh);
} else {
echo 'You are not allowed here !' . __FILE__;
echo 'You are not allowed here !'.__FILE__;
}

@ -18,8 +18,6 @@
* @package chamilo.install
*/
Log::notice('Entering file');
if (defined('SYSTEM_INSTALLATION')) {
// Edit the configuration file
@ -64,7 +62,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$db_name = $dbNameForm;
$sql = "SELECT * FROM $db_name.course";
Log::notice('Getting courses for files updates: ' . $sql);
$app['monolog']->addInfo('Getting courses for files updates: ' . $sql);
$result = iDatabase::query($sql);
while ($courses_directories = iDatabase::fetch_array($result)) {
@ -75,13 +73,13 @@ if (defined('SYSTEM_INSTALLATION')) {
$origCRS = $updatePath . 'courses/' . $courses_directories['directory'];
if (!is_dir($origCRS)) {
Log::error('Directory ' . $origCRS . ' does not exist. Skipping.');
$app['monolog']->addError('Directory ' . $origCRS . ' does not exist. Skipping.');
continue;
}
// Move everything to the new hierarchy (from old path to new path)
Log::notice('Renaming ' . $origCRS . ' to ' . $sys_course_path . $courses_directories['directory']);
$app['monolog']->addInfo('Renaming ' . $origCRS . ' to ' . $sys_course_path . $courses_directories['directory']);
rename($origCRS, $sys_course_path . $courses_directories['directory']);
Log::notice('Creating dirs in ' . $currentCourseRepositorySys);
$app['monolog']->addInfo('Creating dirs in ' . $currentCourseRepositorySys);
// DOCUMENT FOLDER
// document > shared_folder
@ -116,6 +114,5 @@ if (defined('SYSTEM_INSTALLATION')) {
}
}
} else {
echo 'You are not allowed here !' . __FILE__;
}

@ -17,8 +17,6 @@
* @package chamilo.install
*/
Log::notice('Entering file');
if (defined('SYSTEM_INSTALLATION')) {
// Edit the configuration file

@ -12,8 +12,6 @@
* @package chamilo.install
*/
Log::notice('Entering file');
if (defined('SYSTEM_INSTALLATION')) {
// Edit the configuration file
@ -59,7 +57,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$db_name = $dbNameForm;
$sql = "SELECT * FROM $db_name.course";
Log::notice('Getting courses for files updates: ' . $sql);
$app['monolog']->addInfo('Getting courses for files updates: ' . $sql);
$result = iDatabase::query($sql);
if (iDatabase::num_rows($result) > 0) {
@ -71,7 +69,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$success = mkdir($path, $perm, true);
if(!$success){
$course_directory = $courses_directories['directory'];
Log::error("Failed to create dir path: $path, course directory: $course_directory, sys course path: $sys_course_path, perm: , perm: $perm");
$app['monolog']->addError("Failed to create dir path: $path, course directory: $course_directory, sys course path: $sys_course_path, perm: , perm: $perm");
}
}
@ -81,7 +79,7 @@ if (defined('SYSTEM_INSTALLATION')) {
$success = mkdir($path, $perm, true);
if(!$success){
$course_directory = $courses_directories['directory'];
Log::error("Failed to create dir path: $path, course directory: $course_directory, sys course path: $sys_course_path, perm: $perm");
$app['monolog']->addError("Failed to create dir path: $path, course directory: $course_directory, sys course path: $sys_course_path, perm: $perm");
}
}
}
@ -93,6 +91,5 @@ if (defined('SYSTEM_INSTALLATION')) {
mkdir($pathForm . 'home/default_platform_document/template_thumb', $perm);
}
} else {
echo 'You are not allowed here !' . __FILE__;
}

@ -11,8 +11,6 @@
* @package chamilo.install
*/
Log::notice('Entering file');
if (defined('SYSTEM_INSTALLATION')) {
// Edit the configuration file

@ -11,8 +11,6 @@
* @package chamilo.install
*/
Log::notice('Entering file');
if (defined('SYSTEM_INSTALLATION')) {
// Edit the configuration file

@ -11,8 +11,6 @@
* current configuration file.
* @package chamilo.install
*/
Log::notice('Entering file');
if (defined('SYSTEM_INSTALLATION')) {
$conf_dir = api_get_path(CONFIGURATION_PATH);

Loading…
Cancel
Save