update-files-1.6.x-1.8.0.inc.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Chamilo LMS
  5. *
  6. * Updates the Dokeos files from version 1.6.x to version 1.8.0
  7. * IMPORTANT: This script has to be included by install/index.php or
  8. * update_courses.php (deprecated)
  9. *
  10. * SYSTEM_INSTALLATION is defined in the install/index.php (means that we are in
  11. * the regular upgrade process)
  12. *
  13. * When SYSTEM_INSTALLATION is defined, do for every course:
  14. * - create a new set of directories that reflect the new tools offered by 1.8
  15. * - record an item_property for each directory added
  16. *
  17. * @package chamilo.install
  18. */
  19. function insert_db($db_name, $folder_name, $text) {
  20. // TODO: The (global?) variable $_course has not been declared/initialized.
  21. $_course['dbName'] = $db_name;
  22. $doc_id = add_document_180($_course, '/'.$folder_name, 'folder', 0, api_ucfirst($text));
  23. api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'invisible', 1);
  24. }
  25. if (defined('SYSTEM_INSTALLATION')) {
  26. $sys_course_path = $pathForm.'courses/';
  27. //$tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
  28. Database::select_db($dbNameForm);
  29. $db_name = $dbNameForm;
  30. $sql = "SELECT * FROM course";
  31. error_log('Getting courses for files updates: '.$sql, 0);
  32. $result = Database::query($sql);
  33. while ($courses_directories = Database::fetch_array($result)) {
  34. $currentCourseRepositorySys = $sys_course_path.$courses_directories["directory"]."/";
  35. $db_name = $courses_directories["db_name"];
  36. $origCRS = $updatePath.'courses/'.$courses_directories["directory"];
  37. if (!is_dir($origCRS)) {
  38. error_log('Directory '.$origCRS.' does not exist. Skipping.', 0);
  39. continue;
  40. }
  41. // Move everything to the new hierarchy (from old path to new path)
  42. error_log('Renaming '.$origCRS.' to '.$sys_course_path.$courses_directories["directory"], 0);
  43. rename($origCRS,$sys_course_path.$courses_directories["directory"]);
  44. error_log('Creating dirs in '.$currentCourseRepositorySys, 0);
  45. // FOLDER DOCUMENT
  46. // document > audio
  47. if (!is_dir($currentCourseRepositorySys."document/audio")) {
  48. mkdir($currentCourseRepositorySys."document/audio", $perm);
  49. insert_db($db_name, "audio", get_lang('Audio'));
  50. }
  51. // document > flash
  52. if (!is_dir($currentCourseRepositorySys."document/flash")) {
  53. mkdir($currentCourseRepositorySys."document/flash", $perm);
  54. insert_db($db_name,"flash",get_lang('Flash'));
  55. }
  56. // document > images
  57. if (!is_dir($currentCourseRepositorySys."document/images")) {
  58. mkdir($currentCourseRepositorySys."document/images", $perm);
  59. insert_db($db_name,"images",get_lang('Images'));
  60. }
  61. // document > video
  62. if (!is_dir($currentCourseRepositorySys."document/video")) {
  63. mkdir($currentCourseRepositorySys."document/video", $perm);
  64. insert_db($db_name,"video",get_lang('Video'));
  65. }
  66. // document > video > flv
  67. if (!is_dir($currentCourseRepositorySys."document/video/flv")) {
  68. mkdir($currentCourseRepositorySys."document/video/flv", $perm);
  69. insert_db($db_name,"video",get_lang('Video')." (flv)");
  70. }
  71. // FOLDER UPLOAD
  72. // upload
  73. if (!is_dir($currentCourseRepositorySys."upload")) {
  74. mkdir($currentCourseRepositorySys."upload", $perm);
  75. }
  76. // upload > blog
  77. if (!is_dir($currentCourseRepositorySys."upload/blog")) {
  78. mkdir($currentCourseRepositorySys."upload/blog", $perm);
  79. }
  80. // upload > forum
  81. if (!is_dir($currentCourseRepositorySys."upload/forum")) {
  82. mkdir($currentCourseRepositorySys."upload/forum", $perm);
  83. }
  84. // upload > test
  85. if (!is_dir($currentCourseRepositorySys."upload/test")) {
  86. mkdir($currentCourseRepositorySys."upload/test", $perm);
  87. }
  88. // Updating index file in courses directories to change claroline/ into main/
  89. $content = '<?php'."\n".
  90. '$cidReq="'.$courses_directories['code'].'";'."\n" .
  91. '$dbname="'.$courses_directories['db_name'].'";'."\n" .
  92. 'include("../../main/course_home/course_home.php");'."\n" .
  93. '?>';
  94. unlink($currentCourseRepositorySys.'index.php');
  95. $fp = @ fopen($currentCourseRepositorySys.'index.php', 'w');
  96. if ($fp) {
  97. error_log('Writing redirection file in '.$currentCourseRepositorySys.'index.php', 0);
  98. fwrite($fp, $content);
  99. fclose($fp);
  100. } else {
  101. error_log('Could not open file '.$currentCourseRepositorySys.'index.php', 0);
  102. }
  103. }
  104. // Write the config file
  105. write_system_config_file(api_get_path(CONFIGURATION_PATH).'configuration.php');
  106. // Write a distribution file with the config as a backup for the admin
  107. write_system_config_file(api_get_path(CONFIGURATION_PATH).'configuration.dist.php');
  108. // Write a .htaccess file in the course repository
  109. write_courses_htaccess_file($urlAppendPath);
  110. copy($updatePath.'claroline/inc/conf/add_course.conf.php', $pathForm.'main/inc/conf/add_course.conf.php');
  111. copy($updatePath.'claroline/inc/conf/course_info.conf.php', $pathForm.'main/inc/conf/course_info.conf.php');
  112. copy($updatePath.'claroline/inc/conf/mail.conf.php', $pathForm.'main/inc/conf/mail.conf.php');
  113. copy($updatePath.'claroline/inc/conf/profile.conf.inc.php', $pathForm.'main/inc/conf/profile.conf.php');
  114. error_log('Renaming '.$updatePath.'claroline/upload/users to '.$pathForm.'main/upload/users', 0);
  115. rename($updatePath.'claroline/upload/users', $pathForm.'main/upload/users');
  116. error_log('Renaming '.$updatePath.'claroline/upload/audio to '.$pathForm.'main/upload/audio', 0);
  117. rename($updatePath.'claroline/upload/audio', $pathForm.'main/upload/audio');
  118. error_log('Renaming '.$updatePath.'claroline/upload/images to '.$pathForm.'main/upload/images', 0);
  119. rename($updatePath.'claroline/upload/images', $pathForm.'main/upload/images');
  120. error_log('Renaming '.$updatePath.'claroline/upload/linked_files to '.$pathForm.'main/upload/linked_files', 0);
  121. rename($updatePath.'claroline/upload/linked_files', $pathForm.'main/upload/linked_files');
  122. error_log('Renaming '.$updatePath.'claroline/upload/video to '.$pathForm.'main/upload/video', 0);
  123. rename($updatePath.'claroline/upload/video', $pathForm.'main/upload/video');
  124. } else {
  125. echo 'You are not allowed here !';
  126. }