parent
a3a563ba78
commit
0276f33f9d
Before Width: | Height: | Size: 8.7 KiB |
@ -1,26 +0,0 @@ |
|||||||
# Change this file to fit your configuration and save it as .htaccess in the courses folder # |
|
||||||
# Chamilo mod rewrite |
|
||||||
# Comment lines start with # and are not processed |
|
||||||
|
|
||||||
<IfModule mod_rewrite.c> |
|
||||||
RewriteEngine On |
|
||||||
|
|
||||||
# Rewrite base is the dir chamilo is installed in with trailing slash |
|
||||||
RewriteBase {CHAMILO_URL_APPEND_PATH}/courses/ |
|
||||||
|
|
||||||
# Do not rewrite on the main dir |
|
||||||
# Change this path to the path of your main folder |
|
||||||
RewriteCond %{REQUEST_URI} !^{CHAMILO_URL_APPEND_PATH}/main/ |
|
||||||
|
|
||||||
#replace nasty ampersands by 3 slashes, we change these back in download.php |
|
||||||
RewriteRule ([^/]+)/document/(.*)&(.*)$ $1/document/$2///$3 [N] |
|
||||||
|
|
||||||
# Rewrite everything in the scorm folder of a course to the download script |
|
||||||
RewriteRule ([^/]+)/scorm/(.*)$ {CHAMILO_URL_APPEND_PATH}/main/document/download_scorm.php?doc_url=/$2&cDir=$1 [QSA,L] |
|
||||||
|
|
||||||
# Rewrite everything in the document folder of a course to the download script |
|
||||||
RewriteRule ([^/]+)/document/(.*)$ {CHAMILO_URL_APPEND_PATH}/main/document/download.php?doc_url=/$2&cDir=$1 [QSA,L] |
|
||||||
|
|
||||||
# Rewrite everything in the work folder |
|
||||||
RewriteRule ([^/]+)/work/(.*)$ {CHAMILO_URL_APPEND_PATH}/main/work/download.php?file=work/$2&cDir=$1 [QSA,L] |
|
||||||
</IfModule> |
|
@ -1,67 +0,0 @@ |
|||||||
<?php |
|
||||||
/* For licensing terms, see /license.txt */ |
|
||||||
|
|
||||||
/** |
|
||||||
* Chamilo LMS. |
|
||||||
* |
|
||||||
* Updates the Chamilo files from version 1.10.0 to version 1.11.0 |
|
||||||
* This script operates only in the case of an update, and only to change the |
|
||||||
* active version number (and other things that might need a change) in the |
|
||||||
* current configuration file. |
|
||||||
* |
|
||||||
* @package chamilo.install |
|
||||||
*/ |
|
||||||
error_log("Starting ".basename(__FILE__)); |
|
||||||
|
|
||||||
global $debug; |
|
||||||
|
|
||||||
if (defined('SYSTEM_INSTALLATION')) { |
|
||||||
// Changes for 1.11.x |
|
||||||
// Delete directories and files that are not necessary anymore |
|
||||||
|
|
||||||
// The main/exercice path was moved to main/exercise, so the code from 1.11 |
|
||||||
// should just create the new directory, and we should delete the previous |
|
||||||
// one to avoid the web server to use the old |
|
||||||
$exercisePath = api_get_path(SYS_CODE_PATH).'exercice'; |
|
||||||
if (is_dir($exercisePath)) { |
|
||||||
@rrmdir($exercisePath); |
|
||||||
} |
|
||||||
// Same with main/newscorm, renamed main/lp |
|
||||||
$lpPath = api_get_path(SYS_CODE_PATH).'newscorm'; |
|
||||||
if (is_dir($lpPath)) { |
|
||||||
@rrmdir($lpPath); |
|
||||||
} |
|
||||||
// The ticket plugin has been moved to core in 1.11 |
|
||||||
$ticketPluginPath = api_get_path(SYS_PLUGIN_PATH).'ticket'; |
|
||||||
if (is_dir($ticketPluginPath)) { |
|
||||||
@rrmdir($ticketPluginPath); |
|
||||||
} |
|
||||||
// The Skype plugin has been moved to core in 1.11 |
|
||||||
$skypePluginPath = api_get_path(SYS_PLUGIN_PATH).'skype'; |
|
||||||
if (is_dir($skypePluginPath)) { |
|
||||||
@rrmdir($skypePluginPath); |
|
||||||
} |
|
||||||
|
|
||||||
// Some entities have been removed in 1.11. Delete the corresponding files |
|
||||||
$entitiesToRemove = [ |
|
||||||
api_get_path(SYS_PATH).'src/Chamilo/CoreBundle/Entity/Groups.php', |
|
||||||
api_get_path(SYS_PATH).'src/Chamilo/CoreBundle/Entity/GroupRelGroup.php', |
|
||||||
api_get_path(SYS_PATH).'src/Chamilo/CoreBundle/Entity/GroupRelTag.php', |
|
||||||
api_get_path(SYS_PATH).'src/Chamilo/CoreBundle/Entity/GroupRelUser.php', |
|
||||||
]; |
|
||||||
foreach ($entitiesToRemove as $entity) { |
|
||||||
if (file_exists($entity)) { |
|
||||||
$success = unlink($entity); |
|
||||||
if (!$success) { |
|
||||||
error_log('Could not delete '.$entity.', probably due to permissions. Please delete manually to avoid entities inconsistencies'); |
|
||||||
} |
|
||||||
} else { |
|
||||||
error_log('Could not delete. It seems the file '.$entity.' does not exists.'); |
|
||||||
} |
|
||||||
} |
|
||||||
if ($debug) { |
|
||||||
error_log('Folders cleaned up'); |
|
||||||
} |
|
||||||
} else { |
|
||||||
echo 'You are not allowed here !'.__FILE__; |
|
||||||
} |
|
@ -1,250 +0,0 @@ |
|||||||
<?php |
|
||||||
/* For licensing terms, see /license.txt */ |
|
||||||
|
|
||||||
use Symfony\Component\Filesystem\Exception\IOException; |
|
||||||
use Symfony\Component\Filesystem\Filesystem; |
|
||||||
use Symfony\Component\Finder\Finder; |
|
||||||
|
|
||||||
/** |
|
||||||
* Chamilo LMS. |
|
||||||
* |
|
||||||
* Updates the Chamilo files from version 1.9.0 to version 1.10.0 |
|
||||||
* This script operates only in the case of an update, and only to change the |
|
||||||
* active version number (and other things that might need a change) in the |
|
||||||
* current configuration file. |
|
||||||
* |
|
||||||
* @package chamilo.install |
|
||||||
*/ |
|
||||||
error_log("Starting ".basename(__FILE__)); |
|
||||||
|
|
||||||
global $debug; |
|
||||||
|
|
||||||
if (defined('SYSTEM_INSTALLATION')) { |
|
||||||
// Changes for 1.10.x |
|
||||||
// Delete directories and files that are not necessary anymore |
|
||||||
// pChart (1) lib, etc |
|
||||||
|
|
||||||
// Delete the "chat" file in all language directories, as variables have been moved to the trad4all file |
|
||||||
$langPath = api_get_path(SYS_CODE_PATH).'lang/'; |
|
||||||
// Only erase files from Chamilo languages (not sublanguages defined by the users) |
|
||||||
$officialLanguages = [ |
|
||||||
'arabic', |
|
||||||
'asturian', |
|
||||||
'basque', |
|
||||||
'bengali', |
|
||||||
'bosnian', |
|
||||||
'brazilian', |
|
||||||
'bulgarian', |
|
||||||
'catalan', |
|
||||||
'croatian', |
|
||||||
'czech', |
|
||||||
'danish', |
|
||||||
'dari', |
|
||||||
'dutch', |
|
||||||
'english', |
|
||||||
'esperanto', |
|
||||||
'faroese', |
|
||||||
'finnish', |
|
||||||
'french', |
|
||||||
'friulian', |
|
||||||
'galician', |
|
||||||
'georgian', |
|
||||||
'german', |
|
||||||
'greek', |
|
||||||
'hebrew', |
|
||||||
'hindi', |
|
||||||
'hungarian', |
|
||||||
'indonesian', |
|
||||||
'italian', |
|
||||||
'japanese', |
|
||||||
'korean', |
|
||||||
'latvian', |
|
||||||
'lithuanian', |
|
||||||
'macedonian', |
|
||||||
'malay', |
|
||||||
'norwegian', |
|
||||||
'occitan', |
|
||||||
'pashto', |
|
||||||
'persian', |
|
||||||
'polish', |
|
||||||
'portuguese', |
|
||||||
'quechua_cusco', |
|
||||||
'romanian', |
|
||||||
'russian', |
|
||||||
'serbian', |
|
||||||
'simpl_chinese', |
|
||||||
'slovak', |
|
||||||
'slovenian', |
|
||||||
'somali', |
|
||||||
'spanish', |
|
||||||
'spanish_latin', |
|
||||||
'swahili', |
|
||||||
'swedish', |
|
||||||
'tagalog', |
|
||||||
'thai', |
|
||||||
'tibetan', |
|
||||||
'trad_chinese', |
|
||||||
'turkish', |
|
||||||
'ukrainian', |
|
||||||
'vietnamese', |
|
||||||
'xhosa', |
|
||||||
'yoruba', |
|
||||||
]; |
|
||||||
|
|
||||||
$filesToDelete = [ |
|
||||||
'accessibility', |
|
||||||
'admin', |
|
||||||
'agenda', |
|
||||||
'announcements', |
|
||||||
'blog', |
|
||||||
'chat', |
|
||||||
'coursebackup', |
|
||||||
'course_description', |
|
||||||
'course_home', |
|
||||||
'course_info', |
|
||||||
'courses', |
|
||||||
'create_course', |
|
||||||
'document', |
|
||||||
'dropbox', |
|
||||||
'exercice', |
|
||||||
'external_module', |
|
||||||
'forum', |
|
||||||
'glossary', |
|
||||||
'gradebook', |
|
||||||
'group', |
|
||||||
'help', |
|
||||||
'import', |
|
||||||
'index', |
|
||||||
'install', |
|
||||||
'learnpath', |
|
||||||
'link', |
|
||||||
'md_document', |
|
||||||
'md_link', |
|
||||||
'md_mix', |
|
||||||
'md_scorm', |
|
||||||
'messages', |
|
||||||
'myagenda', |
|
||||||
'notebook', |
|
||||||
'notification', |
|
||||||
'registration', |
|
||||||
'reservation', |
|
||||||
'pedaSuggest', |
|
||||||
'resourcelinker', |
|
||||||
'scorm', |
|
||||||
'scormbuilder', |
|
||||||
'scormdocument', |
|
||||||
'slideshow', |
|
||||||
'survey', |
|
||||||
'tracking', |
|
||||||
'userInfo', |
|
||||||
'videoconf', |
|
||||||
'wiki', |
|
||||||
'work', |
|
||||||
]; |
|
||||||
|
|
||||||
$list = scandir($langPath); |
|
||||||
foreach ($list as $entry) { |
|
||||||
if (is_dir($langPath.$entry) && |
|
||||||
in_array($entry, $officialLanguages) |
|
||||||
) { |
|
||||||
foreach ($filesToDelete as $file) { |
|
||||||
if (is_file($langPath.$entry.'/'.$file.'.inc.php')) { |
|
||||||
unlink($langPath.$entry.'/'.$file.'.inc.php'); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
if ($debug) { |
|
||||||
error_log('Cleaning folders'); |
|
||||||
} |
|
||||||
|
|
||||||
// Remove the "main/conference/" directory that wasn't used since years long |
|
||||||
// past - see rrmdir function declared below |
|
||||||
@rrmdir(api_get_path(SYS_CODE_PATH).'conference'); |
|
||||||
// Other files that we renamed |
|
||||||
// events.lib.inc.php has been renamed to events.lib.php |
|
||||||
if (is_file(api_get_path(LIBRARY_PATH).'events.lib.inc.php')) { |
|
||||||
@unlink(api_get_path(LIBRARY_PATH).'events.lib.inc.php'); |
|
||||||
} |
|
||||||
|
|
||||||
if (is_file(api_get_path(SYS_PATH).'courses/.htaccess')) { |
|
||||||
unlink(api_get_path(SYS_PATH).'courses/.htaccess'); |
|
||||||
} |
|
||||||
|
|
||||||
// Move dirs into new structures. |
|
||||||
$movePathList = [ |
|
||||||
api_get_path(SYS_CODE_PATH).'upload/users/groups' => api_get_path(SYS_UPLOAD_PATH).'groups', |
|
||||||
api_get_path(SYS_CODE_PATH).'upload/users' => api_get_path(SYS_UPLOAD_PATH).'users', |
|
||||||
api_get_path(SYS_CODE_PATH).'upload/badges' => api_get_path(SYS_UPLOAD_PATH).'badges', |
|
||||||
api_get_path(SYS_PATH).'courses' => api_get_path(SYS_APP_PATH).'courses', |
|
||||||
api_get_path(SYS_PATH).'searchdb' => api_get_path(SYS_UPLOAD_PATH).'plugins/xapian/', |
|
||||||
api_get_path(SYS_PATH).'home' => api_get_path(SYS_APP_PATH).'home', |
|
||||||
]; |
|
||||||
|
|
||||||
if ($debug) { |
|
||||||
error_log('Moving folders'); |
|
||||||
} |
|
||||||
|
|
||||||
$fs = new Filesystem(); |
|
||||||
|
|
||||||
foreach ($movePathList as $origin => $destination) { |
|
||||||
if (is_dir($origin)) { |
|
||||||
$fs->mirror($origin, $destination); |
|
||||||
|
|
||||||
if ($debug) { |
|
||||||
error_log("Renaming: '$origin' to '$destination'"); |
|
||||||
} |
|
||||||
|
|
||||||
try { |
|
||||||
$fs->remove($origin); |
|
||||||
} catch (IOException $e) { |
|
||||||
// If removing the directory doesn't work, just log an error and continue |
|
||||||
error_log('Could not move '.$origin.' to '.$destination.'('.$e->getMessage().'). Please move it manually.'); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
// Delete all "courses/ABC/index.php" files. |
|
||||||
if ($debug) { |
|
||||||
error_log('Deleting old courses/ABC/index.php files'); |
|
||||||
} |
|
||||||
$finder = new Finder(); |
|
||||||
|
|
||||||
$courseDir = api_get_path(SYS_APP_PATH).'courses'; |
|
||||||
if (is_dir($courseDir)) { |
|
||||||
$dirs = $finder->directories()->in($courseDir); |
|
||||||
/** @var Symfony\Component\Finder\SplFileInfo $dir */ |
|
||||||
foreach ($dirs as $dir) { |
|
||||||
$indexFile = $dir->getPath().'/index.php'; |
|
||||||
if ($debug) { |
|
||||||
error_log('Deleting: '.$indexFile); |
|
||||||
} |
|
||||||
if ($fs->exists($indexFile)) { |
|
||||||
$fs->remove($indexFile); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
// Remove old "courses" folder if empty |
|
||||||
$originalCourseDir = api_get_path(SYS_PATH).'courses'; |
|
||||||
|
|
||||||
if (is_dir($originalCourseDir)) { |
|
||||||
$dirs = $finder->directories()->in($originalCourseDir); |
|
||||||
$files = $finder->directories()->in($originalCourseDir); |
|
||||||
$dirCount = $dirs->count(); |
|
||||||
$fileCount = $dirs->count(); |
|
||||||
if ($fileCount == 0 && $dirCount == 0) { |
|
||||||
@rrmdir(api_get_path(SYS_PATH).'courses'); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
if ($debug) { |
|
||||||
error_log('Remove archive folder'); |
|
||||||
} |
|
||||||
|
|
||||||
// Remove archive |
|
||||||
@rrmdir(api_get_path(SYS_PATH).'archive'); |
|
||||||
} else { |
|
||||||
echo 'You are not allowed here !'.__FILE__; |
|
||||||
} |
|
Loading…
Reference in new issue